文章目录说明必知必会建表多行插入LIMIT语句创建新表LIKE操作符IN操作符BETWEEN操作符AS操作符INSERT INTO SELECT语句JOIN语句INNER JOINLEFT JOINRIGHT JOINFULL JOINUNION操作符约束相关CREATE INDEX语句完美退出总结Next Step 说明 本文基于【MySQL】,使用命令行,实战讲解【SQL】的基本语法。 本文会主要围绕MySQL,讲解很多重要的语法,他们不算很难的知识,但也比最基本的insert、delete、update、select要高级很多了。阅读之前,请务必学会基本的增删改查(可以阅读下面的“必知必 在本篇【MySQL】的【SQL核心语法】实战演练中,我们将深入学习一系列关于SQL的高级操作,这些操作是建立在基本的增删改查(CRUD)基础上的。我们将从创建表开始,然后涉及多行插入、LIMIT语句、各种JOIN操作以及索引的创建等关键知识点。 **建表** 在MySQL中,创建表是通过`CREATE TABLE`语句来实现的。例如,创建一个学生成绩表`stu_grade`,包含学生ID(主键)、姓名(非空)、语文、数学、英语和总分字段。每个字段都有默认值,并且ID字段被设置为主键,确保其唯一性: ```sql CREATE TABLE stu_grade ( id INT PRIMARY KEY NOT NULL, name VARCHAR(10) NOT NULL, chinese INT DEFAULT 0, math INT DEFAULT 0, english INT DEFAULT 0, grade INT DEFAULT 0 ); ``` **多行插入** 在插入大量数据时,多行插入是非常高效的。我们可以通过一个`INSERT INTO`语句一次性插入多个数据行,例如: ```sql INSERT INTO stu_grade VALUES ('1', 'Sam', '120', '145', '145', '410'), ('2', 'Bob', '88', '98', '95', '278'), ... ``` **LIMIT语句** LIMIT语句用于限制查询结果的数量。在大型表中,这有助于减少不必要的资源消耗。例如,如果我们只想查看前两条记录,可以使用: ```sql SELECT * FROM stu_grade LIMIT 2; ``` **LIKE操作符** LIKE操作符用于在`WHERE`子句中进行模式匹配,支持通配符`%`和`_`。例如,查找所有名字以"A"开头的学生: ```sql SELECT * FROM stu_grade WHERE name LIKE 'A%'; ``` **IN操作符** IN操作符用于在`WHERE`子句中检查某个字段是否在指定的列表内,如查找ID为1或2的学生: ```sql SELECT * FROM stu_grade WHERE id IN (1, 2); ``` **BETWEEN操作符** BETWEEN操作符用于在指定范围内筛选数据,如查找数学分数在120到140之间的学生: ```sql SELECT * FROM stu_grade WHERE math BETWEEN 120 AND 140; ``` **AS操作符** AS操作符用于重命名列名或表名,提高可读性。例如,将grade列重命名为total_score: ```sql SELECT id, name, chinese, math, english, grade AS total_score FROM stu_grade; ``` **INSERT INTO SELECT语句** 此语句用于将一个查询的结果插入到另一个表中,比如从一个表复制数据到另一个新表: ```sql CREATE TABLE new_table AS SELECT * FROM stu_grade; ``` **JOIN操作** - **INNER JOIN** 返回两个表中存在匹配的记录。 - **LEFT JOIN** 返回左表的所有记录,即使右表中没有匹配的记录。 - **RIGHT JOIN** 返回右表的所有记录,即使左表中没有匹配的记录。 - **FULL JOIN** 返回两个表中所有记录,无论是否有匹配。 例如,如果我们有两个表,一个记录学生信息,一个记录课程信息,我们可以用JOIN连接他们来获取学生的课程信息。 **UNION操作符** UNION用于合并多个`SELECT`语句的结果集,去除重复行。例如,显示所有不同分数的学生: ```sql SELECT name FROM stu_grade WHERE grade = 410 UNION SELECT name FROM stu_grade WHERE grade = 278; ``` **约束** 在创建表时,我们可以定义约束来确保数据的完整性,如NOT NULL、UNIQUE、PRIMARY KEY等。 **CREATE INDEX语句** 创建索引可以加速查询。例如,为name字段创建索引: ```sql CREATE INDEX idx_name ON stu_grade (name); ``` **总结** 通过以上实践,我们掌握了MySQL中一些核心的SQL语法,这些知识在处理数据库时非常实用。接下来,你可以进一步学习更复杂的查询,如子查询、存储过程、触发器等,以提升你的数据库管理技能。
剩余10页未读,继续阅读
- 粉丝: 3
- 资源: 928
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- cn-visual-studio-2010-ultimate-x86-dvd-532347.z02
- 测绘地图制图学-地图投影实验报告ArcGIS
- cn-visual-studio-2010-ultimate-x86-dvd-532347.z01
- Improving DDS signal generation using interpolation
- 电子水准仪15、202、07系列后处理软件数据导入导出教程.wps
- openssl源代码openssl-3.0.1.tar.gz openssl-1.1.1m.tar.gz
- 地图制图学带号转换(附文件有公式)
- 基于深度学习的语音识别+python项目源码+文档说明
- 【java毕业设计】基于Javaweb的物流管理系统源码(ssm+mysql+说明文档+LW).zip
- 三相PFC电路,功率因数校正,MATLAB/simulink仿真
评论0