DDL,DML,DQL,DCL
一、DDL-数据库操作
1.查询数据库
#查询所有数据库 SHOW DATABASES; #查询当前数据库 SELECT DATABASE();
2.创建数据库
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];
3.删除数据库
DROP DATABASE [IF EXISTS] 数据库名;
4.使用数据库
USE 数据库名;
二、DDL-表操作
1.查询表
#查询当前数据库所有表 SHOW TABLES; #查询表结构 DESC 表名; #查询指定表的建表语句 SHOW CREATE TABLE 表名;
2.创建表
CREATE TABLE 表名( 字段1 类型 [COMMENT 注释], 字段2 类型 [COMMENT 注释], ... 字段N 类型 [COMMENT 注释] )[COMMENT 表注释]
3.修改表名
ALTER TABLE 表名 RENAME TO 新表名;
4.删除表
DROP TABLE [IF EXISTS] 表名; #删除表并重新创建该表 TRUNCATE TABLE 表名;
5.修改字段
#修改数据类型 ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度); #修改字段名和字段类型 ALTER TABLE CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
6.删除字段
ALTER TABLE 表名 DROP 字段名;
三、DML-添加/修改/删除数据
1.添加数据
#单条数据 #指定字段 INSERT INTO 表名 (字段名1,字段名2,...) VALUES(值1,值2,...); #全部字段 INSERT INTO 表名 VALUES(值1,值2,...); #批量 #指定字段 INSERT INTO 表名 (字段名1,字段名2,...) VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...); #全部字段 INSERT INTO 表名 VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...);
2.修改数据
UPDATE 表名 SET 字段名1=值1,字段名2=值2,...[WHERE 条件]
3.删除数据
DELETE FROM 表名 [WHERE 条件]
四、DQL-查询数据
语法
SELECT 字段 FROM 表名 WHERE 条件 GROUP BY 分组字段 HAVING 分组后条件 ORDER BY 排序字段 LIMIT 分页参数
五、DCL-用户管理
用来管理数据库用户,控制数据库的访问权限。即控制哪些用户可以访问数据库和每一个用户的权限。
下面说的主机名是mysql.user表的Host字段,任意主机用%表示
管理用户
#1.查询用户 USE mysql; SELECT * FROM `user`; #2.创建用户 CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码'; #3.修改用户密码 ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码'; #4.删除用户 DROP USER '用户名'@'主机名';
权限控制
常用的权限如下几种:
权限 | 说明 |
ALL.ALL PRIVIEGES | 所有权限 |
SELECT | 查询数据 |
INSERT | 插入数据 |
UPDATE | 修改数据 |
DELETE | 删除数据 |
ALTER | 修改表 |
DROP | 删除数据库/表/视图 |
CREATE | 创建数据库/表 |
#1.查询权限 SHOW GRANTS FOR '用户名'@'主机名'; #2.授予权限 GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名;' #3.撤销权限 REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名'; 权限列表即上表的权限,多个权限逗号分隔,如授予所有权限可以: GRANT ALL ON .... 数据库名表名: 某数据库的所有表一>数据库名.* 所有数据库->*.*