MySQL数据库常用语法(8.0.13)

用户建立连接后可以查询状态:

show processlist;

eg:
MySQL数据库常用语法(8.0.13)_第1张图片
退出(服务器仍开启)

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文件,生成的文件夹是空的。但不影响该命令的使用:
MySQL数据库常用语法(8.0.13)_第2张图片
选择已知存在的数据库作为默认库:

 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'表示某种规则

MySQL数据库常用语法(8.0.13)_第3张图片
其中%为通配符,就是可以和任意字符匹配。
查看表的定义信息:

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;

MySQL数据库常用语法(8.0.13)_第4张图片
后一个命令可以同时修改多个表,如下:
MySQL数据库常用语法(8.0.13)_第5张图片
在表的最后一个位置增加字段:

 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 表选项;

MySQL数据库常用语法(8.0.13)_第6张图片
修改字段的顺序到第一个:

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 (值列表)   # 值列表与字段列表一一对应

MySQL数据库常用语法(8.0.13)_第7张图片
插入一条完整数据记录:

insert into 表名 values (值列表);

插入多条部分数据记录:

 insert into 表名(字段列表)  
     values(值列表),
           (值列表),
            ......;

插入多条完整数据记录:

insert into 表名
        values(字段列表),
              (字段列表),
               ......;

查询插入数据结果:

select  字段列表 from 表名;     # 字段列表不加()
select * from 表名;            # *表示全部字段
select * from 表名 where 条件

MySQL数据库常用语法(8.0.13)_第8张图片
更新部分数据记录:

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;

你可能感兴趣的:(MySQL8.0)