文章目录说明必知必会建表多行插入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币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- java项目,毕业设计-企业客户信息反馈平台
- 数据分析-29-260万用户大型家电和电子产品购买分析(包含数据代码)
- 投票微信小程序完整源码+数据库(高分毕设项目)
- Design Compiler各版本User Guide
- java项目,毕业设计-人事管理系统
- opencv基于摄像头实现的人脸捕获及识别项目源代码+模型文件+使用说明
- sealos离线安装k8s集群镜像-part3
- 基于阶梯碳交易成本的含电转气-碳捕集(P2G-CCS)耦合的综合能源系统低碳经济优化调度,采用(Matlab+Yalmip+Cplex) 考虑P2G设备、碳捕集电厂、风电机组、光伏机组、CHP机组、燃
- Linux常用命令大全.zip
- 富士康PLM项目简报.pptx
- 直驱式永磁同步风力发电系统的仿真模型
- java项目,毕业设计-书籍学习平台
- PaddleTS 是一个易用的深度时序建模的Python库,它基于飞桨深度学习框架PaddlePaddle,专注业界领先的深度模型,旨在为领域专家和行业用户提供可扩展的时序建模能力和便捷易用的用户体验
- 微信投票小程序投票小程序源码(高分项目)
- 数据分析-30-7万条天猫订单数据分析
- MATLAB 给变量输入二进制 二进制与十进制转化
评论0