mysql常用命令

常见的MySQL使用命令:  

  • 启动MySQL服务:net start mysql
  • 停止MySQL服务:net stop mysql
  • 登录MySQL数据库:mysql –h hostname –u username –p
  • 退出服务器:exit
  • 查看状态信息:status;
  • 查看数据库:show databases;
  • 查看数据库存放系统目录:show variable like 'datadir';
  • 切换数据库:use 数据库名;
  • 查看MySQL支持的字符集:SHOW CHARACTER SET;
  • 查看uft8相关字符集的校对规则:SHOW COLLATION LIKE 'utf8%' ;
  • 查看各字符集变量:SHOW VARIABLES LIKE 'character%' ;
  • 修改字符集:SET character_set_client = utf8 ;                      客户端
  • SET character_set_connection = utf8 ;           连接器

    SET character_set_database = utf8 ;               数据库

    SET character_set_results = utf8 ;                   结果

    SET character_set_server = utf8 ;                    服务器

  • 创建数据库: create database 数据库名;
  • 创建数据库: create database 数据库名 character set 字符编码
  • 查看数据库mysql服务器中所有的数据库: show databases;
  • 查看某个数据库的定义的信息: show create database 数据库名
  • 删除数据库:drop database 数据库名
  • 使用数据库:use 数据库名;
  • 查看正在使用的数据库:select database ();
  • 创建数据表:create table 表名(

                                 id 类型(长度)primary key,(主键约束),

                                 字段名 类型(长度)约束(无)(约束 not null 不为空 default xxx 默认值为xxx)

                                 );

字段类型表:

 数值类型:

 

 

 

Enum('XX','XX')表示单选二者其一

Set(.........)表示集合,里面所有值可多选

二进制类型

按字节为单位进行存储

  • 删除主键:alter table 表名 drop primary key;
  • 主键自动增长:主键字段后加auto_increment (一般不用加);
  • 查看数据库中所有表:show tables;
  • 查看表结构:desc 表名;explain 表名;show create table 表名;
  • 删除表:drop table 表名;
  • 表中添加两个主键:alter table 表名 add primary key(字段1,字段2);
  • 修改表结构添加列:alter table 表名 add 列名 类型(长度)约束;
  • 修改列的长度类型及约束:alter table 表名 modify 列名 类型(长度) 约束;
  • 修改列名:alter table 表名 change 就列名 新列名 类型(长度) 约束;
  • 修改列顺序:alter table 表名 modify 字段名1 数据类型 first | after 字段名2;
  • 删除列: alter table 表名 drop 列名;
  • 修改表名: rename table 表名 to 新表名;
  • 复制表部分字段到另外一个表:create table 新表名 as(select 字段1,、、,from 源表名); 
  • 复制表结构到新表:create table 新表 select*from 旧表;
  • 修改表的编码:alter table 表名 character set 字符集;
  • 修改unique属性(约束又称唯一性):alter table 表名 add unique key(字段);
  • 创建外键约束:alter table 从表 add foreign key(字段1) references 主表(字段1);
  • 删除外键约束:alter table 从表名 drop foreign key 字段;
  • 添加外键列:alter table 从表名 add 字段 类型;
  • 增加外键约束的级联更新和级联删除:alter table 从表名 add constraint 字段 foreign key (字段) references 主表(字段) on delete cascade;
  • 删除表数据:DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]

 

 

  • 插入表记录: insert into 表 (列名1,列名2,列名3)value(值1,值2,值3);
  • 插入所有列: insert into 表 value (值1, 值2,值3);
  • 更新表记录:update 表名 set 字段=值,字段名=值;    

    update 表名 set 字段名=值,字段名=值 where 条件;   

      注意:

  • 列名的类型与修改的值要一致. 

  • 修改值得时候不能超过最大长度.

  •   值如果是字符串或者日期需要加’’.

    例如:

    #1,将指定的sname字段中的值 修改成 日用品

    UPDATE sort SET sname='日用品';

    #2, 将sid为s002的记录中的sname改成 日用品

    UPDATE sort SET sname='日用品' WHERE sid='s002';

    UPDATE sort SET sname='日用品' WHERE sid='s003';

  • 删除表记录:delete from 表名 [where 条件 ] ; truncate table 表名
  • 查看数据表状态:show table status like '表名';
  • 修改该数据库编码:alter database 数据库名称  default character set uft8;
  • 客户端编码修改为gbk:

    set character_set_results=gbk; / set names gbk;

  • 查询指定字段信息:select 字段1,字段2 from 表名;
  • 查询表中所有字段:select *from 表名;
  • 查询表中信息:select (查询字段列表) from 表名 where 条件;
  • 删除重复记录:select distinct 字段 from 表名;
  • 别名查询,使用的as关键字,as可以省略的.

    别名可以给表中的字段,表设置别名。:select*from 表名 as 别名;

  • 条件查询: 

    比较运算符

    >  <  <=   >=   =  <>

    大于、小于、大于(小于)等于、不等于

    BETWEEN  ...AND...

    显示在某一区间的值(含头含尾)

    IN(set)

    显示在in列表中的值,例:in(100,200)

    LIKE 通配符

    模糊查询,Like语句中有两个通配符:

    % 用来匹配多个字符;例first_name like ‘a%’;

    _ 用来匹配一个字符。例first_name like ‘a_’;

    IS NULL

    判断是否为空

    is null; 判断为空

    is not null; 判断不为空

    逻辑运算符

    and

    多个条件同时成立

    or

    多个条件任一成立

    not

    不成立,例:where not(salary>100);

1、查看表状态

SHOW TABLE STATUS LIKE 'corr_alert';

 

   Engine:引擎类型(旧版为type);

    Row_format:行的格式。可选值Dynamic、Fixed或Compressed;

    Dynamic行长度可变,一般包含可变长度字段,varchar或Bolb

    Fixed:长度固定

    Compressed:只在压缩表中存在

    collation:默认字符集和字符列排序规则;

    checkSum:如果启用,保存的整个表的实时校验和;

    Comment:注释或表空间剩余信息;视图则为VIEW文本字样;

 

2、修改表引擎

目前有三种方式进行切换:

1)ALTER TABLE语句:

ALTER TABLE corr_alert_copy ENGINE=INNODB;

优点:高效,按行复制表记录到新表中

缺点:可能消耗系统所有I/O,原表加锁

2)手工导入与导出

       使用MYSQL自带工具mysqldump导出到文件,修改文件中的CREATE TABLE引擎语句,同时修改表名,且默认在create table前加上drop table语句

3)创建与查询

CREATE TABLE corr_alert_copy LIKE corr_alert;

ALTER TABLE corr_alert_copy ENGINE=INNODB;

INSERT INTO corr_alert_copy SELECT * FROM corr_alert;

数据量不大,工作很好;数据量大,分批处理,每一段数据一个事务,避免大事务产生的undo操作;

START TRANSACTION

INSERT INTO corr_alert_copy select * from corr_alert WHERE id BETWEEN x AND y;

COMMIT;

优点:原表还在,可在执行过程中对原表加锁,确保数据一致,操作简单;


————————————————
版权声明:本文为CSDN博主「jerry-89」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/eagle89/article/details/81743954

 

posted @ 2019-10-28 20:30  漫步花海下的oldman  阅读(221)  评论(0编辑  收藏  举报