一直在用AI做后端,经常看到数据库的语句,但是不知道有多少种语句,于是就问了AI,这样以后有点印象。数据库常用语句包括数据定义语言(DDL)、数据操作语言(DML)、数据查询语言(DQL)等。
一、数据定义语言(DDL)
数据库操作:
创建数据库:CREATE DATABASE 库名;
判断数据库是否存在并创建:CREATE DATABASE IF NOT EXISTS 库名;
查看所有数据库:SHOW DATABASES;
使用数据库:USE 库名;
查看数据库结构定义信息:SHOW CREATE DATABASE 库名;
删除数据库:DROP DATABASE 库名;
修改数据库字符集:ALTER DATABASE 库名 CHARACTER SET utf8;
表操作:
创建表:CREATE TABLE 表名(字段1 类型1,字段2 类型2,...);
查看表结构:DESC 表名;
查看创建表的SQL语句:SHOW CREATE TABLE 表名;
修改表名:ALTER TABLE 表名 RENAME TO 新的表名;
添加字段:ALTER TABLE 表名 ADD 字段名 字段类型;
修改字段名:ALTER TABLE 表名 RENAME COLUMN 字段名 TO 新的字段名;
修改字段类型:ALTER TABLE 表名 MODIFY COLUMN 字段名 新的字段类型;
删除字段:ALTER TABLE 表名 DROP 字段名;
删除表:DROP TABLE 表名;
判断表是否存在并删除:DROP TABLE IF EXISTS 表名;
二、数据操作语言(DML)
插入数据:
指定所有字段插入:INSERT INTO 表名(字段1,字段2,...) VALUES(值1,值2,...);
不指定字段插入(按表结构顺序):INSERT INTO 表名 VALUES(值1,值2,...);
删除数据:
删除指定条件的数据:DELETE FROM 表名 WHERE 字段 = 值;
删除表中所有数据:DELETE FROM 表名; 或 DELETE * FROM 表名;
快速删除表中所有数据(先删表再重建空表):TRUNCATE TABLE 表名;
修改数据:UPDATE 表名 SET 字段 = 值 WHERE 条件;
三、数据查询语言(DQL)
无条件查询:SELECT * FROM 表名;
条件查询:
单个条件:SELECT * FROM 表名 WHERE 字段 = 值;
多个条件:SELECT * FROM 表名 WHERE 条件1 AND 条件2;
范围查询:
使用BETWEEN:SELECT * FROM 表名 WHERE 字段 BETWEEN 值1 AND 值2;
使用IN:SELECT * FROM 表名 WHERE 字段 IN (值1,值2,...);
模糊查询:
查询以某个字符开头:SELECT * FROM 表名 WHERE 字段 LIKE '字符%';
查询包含某个字符:SELECT * FROM 表名 WHERE 字段 LIKE '%字符%';
去除重复记录查询:SELECT DISTINCT 字段 FROM 表名;
排序查询:
升序:SELECT * FROM 表名 ORDER BY 字段;
降序:SELECT * FROM 表名 ORDER BY 字段 DESC;
聚合函数查询:
计数:SELECT COUNT(字段) FROM 表名;
求和:SELECT SUM(字段) FROM 表名;
求平均值:SELECT AVG(字段) FROM 表名;
求最大值:SELECT MAX(字段) FROM 表名;
求最小值:SELECT MIN(字段) FROM 表名;
分组查询:SELECT 字段1,聚合函数(字段2) FROM 表名 GROUP BY 字段1;
连接查询:
内连接:SELECT * FROM 表1 INNER JOIN 表2 ON 表1.关联字段 = 表2.关联字段;
左连接:SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.关联字段 = 表2.关联字段;
右连接:SELECT * FROM 表1 RIGHT JOIN 表2 ON 表1.关联字段 = 表2.关联字段;
四、数据控制语言(DCL)
用户管理:
添加用户:CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
删除用户:DROP USER '用户名'@'主机';
权限管理:
授予权限:GRANT 权限 ON 数据库.表 TO '用户名'@'主机';
撤销权限:REVOKE 权限 ON 数据库.表 FROM '用户名'@'主机';