用户建立连接后可以查询状态:
show processlist;
exit;
显示警告:
show warnings;
查看MySQL帮助文档支持的目录列表:
help contents;
查看字符集编码:
show variables like 'character_set%';
查看字符集校对规则:
show collation;
创建数据库:
create database xxx; # xxx为所要创建的数据库名字
查看已存在的数据库:
show databases;
查看数据的创建语句:
show create database xxx;
修改已存在的数据库选项:
alter database xxx 选项;
在以前Mysql版本中创建一个数据库时,在data文件夹会生成一个跟库名一样的文件夹,此文件夹里有一个db.opt文件,文件内容如下:
default-character-set=utf8 # 默认字符集编码
default-collation=utf8_general_ci # 默认字符集校对规则
但是我在Mysql8.0上测试发现并没有dd.opt文件,生成的文件夹是空的。但不影响该命令的使用:
选择已知存在的数据库作为默认库:
USE xxx; # xxx为要选择的数据库名字
【注意】
使用之后默认不能对其他数据库以及其他的数据中的数据表操作,只能对自身数据库操作。但可以使用 show databases 返回到根目录下进行对其他数据库的操作。当然也可以在创建表时强制加相关数据库,这是不影响的。
删除已知存在的数据库:
drop database xxx; # xxx为要删除数据库的名字
删除不知是否存在的数据库:
drop database if exists xxx; # xxx如果存在将删除该数据库,否则不作任何操作
在进行表操作时一定要指定当前的默认数据库。
创建表:
create table yyy.xxx( # yyy为库名,xxx为表名
字段名 数据类型,
字段名 数据类型,
.
.
.
字段名 数据类型
);
【注意】以逗号相隔,但是最后一个没有逗号 。 对于表名的命名来说,为了区分相同逻辑表名的不同应用,可以加给逻辑增加表名前缀或后缀,形成真实表名。
查看当前数据库下所有表:
show tables;
查看当前数据库中满足某种规则的表名:
show tables like 'pattern'; # 'pattern'表示某种规则
其中%为通配符,就是可以和任意字符匹配。
查看表的定义信息:
describe xxx ; # xxx为已存在的表名
或者
desc xxx; # xxx为已存在的表名
查看表的详细信息:
show create table xxx; # xxx为已存在的表名
show create table xxx\G # '\G'作为结束符,使输出更美观
删除表:
drop table [if exists] xxx ; # xxx为表名
修改表名:
alter table old_name rename new_name; # old_name为已存在的表名,new_name为新名字
或者:
rename table old_name to new_name;
后一个命令可以同时修改多个表,如下:
在表的最后一个位置增加字段:
alter table xxx add 属性名 数据类型;
在表的第一个位置增加字段:
alter table xxx add 属性名 数据类型 first;
给表的某个字段增加默认值:
alter table xxx modify 属性名 数据类型 default yy;
在表的某个位置增加字段:
alter table xxx add 属性名 数据类型 after 表中已存在属性名;
删除表中某个字段:
alter table xxx drop 属性名;
修改某个字段数据类型:
alter table xxx modify 属性名 修改后的数据类型;
修改某个字段的名字:
alter table xxx change 旧属性名 新属性名 旧数据类型;
同时修改某个字段的名字和数据类型:
alter table xxx change 旧属性名 新属性名 新数据类型;
修改表选项:
alter table xxx 表选项;
alter table xxx modify 属性 数据类型 first;
修改字段顺序到任意位置:
alter table xxx 属性1 数据类型 after 属性2; # 此命令将属性1这个字段放到属性2下一个位置
not null # 约束字段的值不能为空
default 默认值 # 设置字段的默认值
NNIQUE KEY /UNIQUE # 设置字段的值是唯一
primary key # 约束字段为主键
auto_increment # 设置字段值自动增加
插入一条部分数据记录:
insert into 表名(字段列表)values (值列表) # 值列表与字段列表一一对应
insert into 表名 values (值列表);
插入多条部分数据记录:
insert into 表名(字段列表)
values(值列表),
(值列表),
......;
插入多条完整数据记录:
insert into 表名
values(字段列表),
(字段列表),
......;
查询插入数据结果:
select 字段列表 from 表名; # 字段列表不加()
select * from 表名; # *表示全部字段
select * from 表名 where 条件
update table_name
set 字段名1 = value1,
字段名2 = value2 # 无逗号
where 条件;
更新全部数据记录:
update table_name
set 字段名1 = value1,
字段名2 = value2;
删除部分数据记录:
delete from table_name where 条件;
删除全部数据记录:
delect from table_name where 1; # 删除要谨慎
或者
delect from table_name;
简单避免重复数据查询:
select distinct 字段名1,字段名2 from table_name;