目录
DDL语句
DDL语句(Data Definition Language)数据定义语言,用来定义数据库对象(数据库,表,字段)
查询所有数据库
sql
SHOW DATABASES;
查询当前数据库
sql
SELECT DATABASE();
切换数据库
sql
USE 数据库名;
创建数据库
sql
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];
创建表
sql
CREATE TABLE 表名(
字段1 字段1类型[COMMENT '字段1的注释'],
字段2 字段2类型[COMMENT '字段2的注释'],
......
字段n 字段n类型[COMMENT '字段n的注释']#此处无','
)[COMMENT 表注释];
删除表
sql
DROP DATABASE[IF EXISTS] 数据库名;
查询当前数据库所有表
sql
SHOW TABLES;
查询表结构
sql
DESC 表名;
查询指定表的键表语句
sql
SHOW CREATE TABLE 表名;
123.45 精度:5 标度:2
age tinyint unsigned#无符号
score double(4,1)#长度为4,小数点后1位
定长字符串char(10)#满不满都是10B的空间,不满的用空格补位 性能较高
变长字符串varchar(10)#依据内容计算空间
记录birthday可以用date数据类型
添加字段
sql
ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];
修改数据类型
sql
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
修改字段名和字段类型
sql
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
删除字段
sql
ALTER TABLE 表名 DROP 字段名;
修改表名
sql
ALTER TABLE 表名 RENAME TO 新表名;
删除表
sql
DROP TABLE [IF EXISTS] 表名;
删除指定表,并重新创建该表
sql
TRUNCATE TABLE 表名;
DML语句
DML语句(Data Manipulation Language)数据操作语言,用来对数据库表中的数据进行增删改
给指定字段添加数据
sql
INSERT INTO 表名(字段名1,字段名2,...)VALUES (值1,值2,...);
给全部字段添加数据
sql
INSERT INTO 表名 VALUES (值1,值2,...);#需要注意一一对应
批量添加数据
sql
INSERT INTO 表名(字段名1,字段名2,...) VALUES (值1,值2...),(值1,值2,...),(值1,值2...);
sql
INSERT INTO 表名 VALUES(值1,值2...)(值1,值2...)(值1,值2,...);
sql
UPDATE 表名 SET 字段名1=值1,字段名2=值2,...[WHERE 条件];#没写条件就代表要修改整张表的数据
sql
DELETE FROM 表名 [WHERE 条件];#不加条件会删除整张表的所有数据
DQL语句
DQL语句(Data Query Language)数据查询语言,用来查询数据库中表的记录
查询多个字段
sql
SELECT 字段1,字段2,字段3... FROM 表名;
sql
SELECT * FROM 表名;
设置别名
sql
SELECT 字段1 [AS 别名1] 字段2 [AS 别名2]...FROM 表名;#AS可以省略
去重
sql
SELECT DISTINCT 字段列表 FROM 表名;
查询特定数据
sql
SELECT 字段列表 FROM 表名 WHERE 条件列表;
like 模糊匹配
'_'匹配单个字符
'%'匹配任意个字符
查询两个emp表中name两个字的人的信息
sql
select * from emp where name like '__';
排序
sql
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;
排序方式:ASC 升序(默认值) DESC 降序
分页查询
sql
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;
起始索引从0开始,起始索引等于(查询页码 - 1)* 每页显示记录数;
如果是第一页数据,起始索引可以省略不写
分组查询
sql
SELECT 字段列表 FROM 表名列表 WHERE 条件列表 GROUP BY 分组字段列表 HAVING [分组后过滤条件];
where在分组之前进行过滤,不满足where不参与分组
having是分组之后对结果进行过滤
where不能对聚合函数进行判断,而having可以
where > 聚合函数 > having
DCL语句
DCL语句(Data Control Language)数据控制语言,用来创建数据库用户,控制数据库的访问权限
查询用户
sql
use mysql;
select * from user;
创建用户
sql
CREATE USER '用户名' @'用户名主机' IDENTIFIED BY '密码';
修改用户密码
sql
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
删除用户
sql
DROP USER '用户名'@'主机名';
查询权限
sql
SHOW GRANTS FOR '用户名'@'主机名' ;
授予权限
sql
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
撤销权限
sql
REVOKE 权限列表 ON 数据库.表名 FROM '用户名'@'主机名'