Loading... # MySQL基础篇-SQL > **简介:** > > 本文详细介绍了MySQL中的SQL语法,包括数据定义`(DDL)`、数据操作`(DML)`、数据查询`(DQL)`和数据控制`(DCL)`四个主要部分。内容涵盖了创建、修改和删除数据库、表以及表字段的操作,以及通过图形化工具DataGrip进行数据库管理和查询。此外,还讲解了数据的`增、删、改、查`操作,以及查询语句的`条件`、`聚合函数`、`分组`、`排序`和`分页`等知识点。 ## 一、SQL通用语法 `sql`结构化查询语言。操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准。 在学习具体的SQL语句之前,先来了解一下SQL语言的同于语法。 1. SQL语句可以单行或多行书写,以分号结尾。 2. SQL语句可以使用空格/缩进来增强语句的可读性。 3. MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。 4. 注释: * 单行注释:`-- 注释内容` 或 `# 注释内容` * 多行注释:`/* 注释内容 */` ## 二、SQL分类 `SQL`语句,根据其功能,主要分为四类:`DDL`、`DML`、`DQL`、`DCL`。 | **分类** | **全称** | **说明** | | -------- | ------------------------------ | ---------------------------------------------------------- | | **DDL** | **Data Definition Language** | **数据定义语言,用来定义数据库对象(数据库,表,字段)** | | **DML** | **Data Manipulation Language** | **数据操作语言,用来对数据库表中的数据进行增删改** | | **DQL** | **Data Query Language** | **数据查询语言,用来查询数据库中表的记录** | | **DCL** | **Data Control Language** | **数据控制语言,用来创建数据库用户、控制数据库的访问权限** | ## 三、练习数据表准备 ```sql CREATE TABLE `emp` ( `id` int COMMENT '编号', `workno` varchar(10) COMMENT '工号', `name` varchar(10) COMMENT '姓名', `gender` char(1) COMMENT '性别', `age` tinyint unsigned COMMENT '年龄', `idcard` char(18) COMMENT '身份证号', `workaddress` varchar(50) COMMENT '工作地址', `entrydate` date COMMENT '入职时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='员工表'; INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (1, '00001', '柳岩666', '女', 20, '123456789012345678', '北京', '2000-01-01'); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (2, '00002', '张无忌', '男', 18, '123456789012345670', '北京', '2005-09-01'); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (3, '00003', '韦一笑', '男', 38, '123456789712345670', '上海', '2005-08-01'); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (4, '00004', '赵敏', '女', 18, '123456757123845670', '北京', '2009-12-01'); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (5, '00005', '小昭', '女', 16, '123456769012345678', '上海', '2007-07-01'); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (6, '00006', '杨逍', '男', 28, '12345678931234567X', '北京', '2006-01-01'); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (7, '00007', '范瑶', '男', 40, '123456789212345670', '北京', '2005-05-01'); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (8, '00008', '黛绮丝', '女', 38, '123456157123645670', '天津', '2015-05-01'); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (9, '00009', '范凉凉', '女', 45, '123156789012345678', '北京', '2010-04-01'); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (10, '00010', '陈友谅', '男', 53, '123456789012345670', '上海', '2011-01-01'); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (11, '00011', '张士诚', '男', 55, '123567897123465670', '江苏', '2015-05-01'); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (12, '00012', '常遇春', '男', 32, '123446757152345670', '北京', '2004-02-01'); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (13, '00013', '张三丰', '男', 88, '123656789012345678', '江苏', '2020-11-01'); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (14, '00014', '灭绝', '女', 65, '123456719012345670', '西安', '2019-05-01'); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (15, '00015', '胡青牛', '男', 70, '12345674971234567X', '西安', '2018-04-01'); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (16, '00016', '周芷若', '女', 18, null, '北京', '2012-06-01'); ``` ## 四、DQL 查询Sql语法练习 ### 4.1 DQL基础语法结构 ```sql SELECT 字段列表 FROM 表名列表 WHERE 条件列表 GROUP BY 分组字段列表 HAVING 分组后条件列表 ORDER BY 排序字段列表 LIMIT 分页参数 ``` **分为以下几个部分:** - 基本查询不带任何条件 - 条件查询(where) - 聚合函数(count、max、min、avg、sum) - 分组查询(group by) - 排序查询(order by) - 分页查询(limit) 最后修改:2025 年 05 月 11 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 7 如果觉得我的文章对你有用,请随意赞赏