目录
MySQL 是一种关系型数据库管理系统,其语法主要包括数据定义语言(Data Definition Language)、数据操作语言(Data Manipulation Language)、数据查询语言(Data Query Language)和数据控制语言(Data Control Language)。
以下是这些语言的基础语法:
一、数据定义语言(DDL)
DDL 用于定义和管理数据库对象,如表、索引、视图等。
1. 创建数据库
-- 创建数据库
CREATE DATABASE 数据库名;
2. 删除数据库
-- 删除数据库
DROP DATABASE 数据库名;
3. 创建表
-- 创建表
CREATE TABLE 表名 (
列名1 数据类型 [约束],
列名2 数据类型 [约束],
...
PRIMARY KEY (列名) -- 主键
);
4. 删除表
-- 删除表
DROP TABLE 表名;
5. 查看表结构
DESCRIBE 表名;
-- 或
SHOW COLUMNS FROM 表名;
6. 修改表结构
-- 添加列
ALTER TABLE 表名 ADD 列名 数据类型;
-- 修改列数据类型
ALTER TABLE 表名 MODIFY 列名 新数据类型;
-- 删除列
ALTER TABLE 表名 DROP COLUMN 列名;
-- 重命名表
ALTER TABLE 旧表名 RENAME TO 新表名;
二、数据操作语言(DML)
DML 用于操作数据库中的数据,如插入、更新、删除数据(增、删、改)。
1. 插入数据
-- 插入单条记录
INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);
-- 插入多条记录
INSERT INTO 表名 (列1, 列2) VALUES
(值1, 值2),
(值3, 值4);
2. 更新数据
UPDATE 表名 SET 列1 = 新值1, 列2 = 新值2 WHERE 条件;
3. 删除数据
DELETE FROM 表名 WHERE 条件;
-- 删除所有数据(谨慎操作)
DELETE FROM 表名;
-- 或清空表(更高效)
TRUNCATE TABLE 表名;
三、数据查询语言(DQL)
DQL 用于从数据库中查询数据,核心是 SELECT
语句。
1. 查询数据
-- 查询所有列
SELECT * FROM 表名;
-- 查询指定列
SELECT 列1, 列2 FROM 表名;
-- 条件查询
SELECT * FROM 表名 WHERE 条件;
-- 排序
SELECT * FROM 表名 ORDER BY 列名 ASC|DESC;
-- 分页
SELECT * FROM 表名 LIMIT 每页条数 OFFSET 偏移量;
-- 或
SELECT * FROM 表名 LIMIT 偏移量, 每页条数;
2. 聚合函数
-- 统计总数
SELECT COUNT(*) FROM 表名;
-- 求和
SELECT SUM(列名) FROM 表名;
-- 平均值
SELECT AVG(列名) FROM 表名;
3. 分组查询
-- 分组
SELECT 列名, 聚合函数(列名)
FROM 表名
GROUP BY 列名;
-- 筛选分组结果
SELECT 列名, 聚合函数(列名)
FROM 表名
GROUP BY 列名
HAVING 聚合条件;
4. 连接查询
-- 内连接
SELECT 表1.列名, 表2.列名
FROM 表1
INNER JOIN 表2 ON 表1.列名 = 表2.列名;
-- 左连接
SELECT 表1.列名, 表2.列名
FROM 表1
LEFT JOIN 表2 ON 表1.列名 = 表2.列名;
四、数据控制语言(DCL)
DCL 用于控制数据库访问权限和用户管理。
1. 创建用户
CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
2. 授予权限
GRANT 权限类型 ON 数据库名.表名 TO '用户名'@'主机';
3. 撤销权限
REVOKE 权限类型 ON 数据库名.表名 FROM '用户名'@'主机';
4. 删除用户
DROP USER '用户名'@'主机';
5. 提交事务
COMMIT;
6. 回滚事务
ROLLBACK;
五、对比与总结
分类 | 作用 | 常用语句 |
---|---|---|
DDL | 定义和管理数据库结构 | CREATE , ALTER , DROP |
DML | 操作表中的数据 | INSERT , UPDATE , DELETE |
DQL | 查询数据 | SELECT |
DCL | 控制数据库访问权限 | CREATE USER , GRANT , REVOKE |