常见的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