第4章 Mysql数据操纵语句--单表查询

4.1 MySQL语言的规则与规范

SQL语句可以写在一行或者多行。为了提高可读性,各子句分行写,必要时使用缩进

每条命令以;或g或\G结束

关键字不能被缩写也不能分行

关于标点符号

  • 必须保证所有的括号、单引号、双引号是成对结束的
  • 必须使用英文状态下的半角输入方式
  • 字符串型和日期时间类型的数据可以使用单引号()表示
  • 列的别名,尽量使用双引号(""),而且不建议省略as

MySOL 大小写规范

  • MySOL 在 Windows 环境下是大小写不敏感的
  • MySOL在Linux环境下是大小写敏感的
    • 数据库名、表名、表的别名、变量名是严格区分大小写的
    • 关键字、函数名、列名(或字段名)、列的别名(字段的别名)是忽略大小写的。
  • 推荐采用统一的书写规范
    • 数据库名、表名、表别名、字段名、字段别名等都小写
    • SOL关键字、函数名、绑定变量等都大写

MySQL注释结构

  • 单行注释:#注释文字(MySQL特有的方式)
  • 单行注释:--注释文字(--后面必须包含一个空格。)
  • 多行注释:/*注释文字*/

MySQL命名规则

  • 数据库、表名 不得超过30个字符 ,变量名限制为29个
  • 必须只能 包含A-Z,a-z,0-9,_ 共63个字符
  • 数据库名、表名、字段名等对象名中间 不要包含空格
  • 同一个MySQL软件中,数据库 不能同名 ;同一个库中,表不能重名;同一个表中,字段不能重名
  • 必须保证你的字段没有和保留字、数据库系统或常用方法冲突。
  • 如果坚持使用,请在SOL语句中 使用`(着重号)引起来
  • 保持字段名和类型的 一致性 ,在命名字段并为其指定数据类型的时候一定要保证一致性。

4.2 SELECT语句简介

SELECT语句的一般格式

SELECT [DISTINCT]<目标列表达式>[,...n]

FROM<表名或视图名>[,....n];

WHERE\<条件表达式\>\]; **\[**GROUP BY\<列名\>\|,....n

HAVING\<条件表达式\>\]**\]** \[ORDER BY\<列名\> \[ASC\|DESC\] \[, ...n\]

LIMIT\[位置偏移量,」行数\]; ### SELECT语句的功能 * 条件查询--按行 * 投影查询--按列 * 分组统计--按组 * 结果排序 ### 查询分类 * 单表查询 * 连接查询 * 嵌套查询 * 集合查询 ![](https://i-blog.csdnimg.cn/img_convert/e95bf81025c35994a3fc18920fa62faa.png) ### 已建立的关系模式如下 ![](https://i-blog.csdnimg.cn/img_convert/c41b821407c13862b0d0907f2cb82890.png) ### 无条件查询 **在SELEGT语句中不使用\[WHERE\<条件表达式\>\]子句。** ![](https://i-blog.csdnimg.cn/direct/7c864a431412407cb58830867dc707ec.png) ### 无条件查询例题 ![](https://i-blog.csdnimg.cn/direct/5ae20d21463f458bb82d2a2174496ac7.png) ![](https://i-blog.csdnimg.cn/direct/6ba63192b1054533b65fcf970a7da0d3.png) ![](https://i-blog.csdnimg.cn/direct/fd7050ed0ea44860a7b02999846b1c4f.png) ![](https://i-blog.csdnimg.cn/direct/7cb6b004ea094fd0a7594d8d3524d8e4.png) ![](https://i-blog.csdnimg.cn/direct/e0ab7aba005945a4be39e599c821267e.png) ![](https://i-blog.csdnimg.cn/direct/56a6dac9768648aa86513c4da19cca0d.png) ![](https://i-blog.csdnimg.cn/direct/a6b3ab95ccf949e28882a4b8279671d0.png) ### 无条件查询小结 * **在SELECT后面用** **表示显示所有的属性列** * **在目标列的后面使用"AS"关键词,可以给这个目标列起一个别名,注意别名要使用双引号括起来** * **DISTINCT** * * **位置:紧跟SELECT之后,在所有属性列之前** * **作用:去除查询数据中的重复元组** * **常用的函数** * * **NOWO,获取当前日期和时间,数据类型:DATETIME** * **YEARO,获得日期数据的年份,数据类型:INT** * ![](https://i-blog.csdnimg.cn/img_convert/af0ceee6083557c1100fc85c300973c5.png) ### 查询条件 ![](https://i-blog.csdnimg.cn/direct/f0e6e620d81742c6a2e5784a4aec3f16.png) #### 常见的条件表达式有 ##### (1)比较条件 ![](https://i-blog.csdnimg.cn/direct/7cf947bb7f134e52b9a13352acf9908a.png) ![](https://i-blog.csdnimg.cn/direct/c2a804c365bc43d08d19487382587e5e.png) ##### (2)谓词条件 ![](https://i-blog.csdnimg.cn/direct/d451b816b33249e293de03093635cdac.png) ##### \<匹配串\>可以是一个完整的字符串,也可以含有通配符: 1.%(百分号):代表任意长度(长度可以为0)的字符串。例如a%b1)表示以a开头,以b结尾的任意长度的字符串。如acb,abcdb,ab等都满足该匹配串。 2._(下横线):代表任意单个字符。例如ab表示以a开头,以b结尾的长度为3的任意字符串。如acb,adb等都满足该匹配串。 ##### ESCAPE'\<换码字符\>'的作用: 在模式中,当换码字符(可以任意定义为除'%'和'_'以外的字符如'/')置于通配符('%'和'_')之前时,该通配符就解释为普通字符。 注意:换码字符不能使用'\\' ![](https://i-blog.csdnimg.cn/direct/3999c06c458c4f5e9dc62b315417cabc.png) ### 条件查询例题 ![](https://i-blog.csdnimg.cn/direct/69b70a0c7faa4a6ab5fca49862565894.png) ### 条件查询举例 ![](https://i-blog.csdnimg.cn/direct/e0a51a4451e44d099e561afd9f23ba52.png) ![](https://i-blog.csdnimg.cn/direct/cbc0835e3dbc4958a9711bd0f525f24d.png) ![](https://i-blog.csdnimg.cn/direct/86d6de9270f14906b0f3db34aa89b35b.png) ![](https://i-blog.csdnimg.cn/direct/ba5961660b8a45da9fe07b3618c0661f.png) ![](https://i-blog.csdnimg.cn/direct/a52dfb7cc55d4ae78cbcf638a5a2a947.png) ![](https://i-blog.csdnimg.cn/direct/342accccbe714a68a61d20a14217d60b.png) ![](https://i-blog.csdnimg.cn/direct/958da6c6b7fd41b290cd4f62d052f436.png) ![](https://i-blog.csdnimg.cn/direct/862df7fca0654c7b8c3587c218acb6ae.png) ![](https://i-blog.csdnimg.cn/direct/a98231c84cf24ed99a1f48138594bd81.png) ![](https://i-blog.csdnimg.cn/direct/299d8f5e41ea4566a46fb9909611d8fe.png) ![](https://i-blog.csdnimg.cn/direct/dd72ad8684894b51be15fb60bed8b04a.png) ![](https://i-blog.csdnimg.cn/direct/43d3efc1e69e4cdfad66284172023ce1.png) ### 条件查询小结 * **某些情况下,比较条件表达式和谓词条件表达式是可以互换的** * **常用的函数** * * CONVERT(),将字符串expr转换为指定的数据类型,数据类型参数指定的数据类型 * LEFT(),获得字符串expr前端指定长度的子串,数据类型:字符类型 * RIGHT(),获得字符串expr后端指定长度的子串,数据类型:字符类型 ### 分组统计 ![](https://i-blog.csdnimg.cn/direct/9708583d541c4e3a9595f24da9d72817.png) ### 结果排序与分页显示 ![](https://i-blog.csdnimg.cn/direct/f09dc2345d924a9eada7381a25558bc0.png) ### 分组统计与结果排序例题 ![](https://i-blog.csdnimg.cn/direct/eb78af495ab84739a405da65a44d8fc6.png) ### 关于COUNNT(\*)的问题 ![](https://i-blog.csdnimg.cn/direct/637df8ad281848a293b92b6cbc990d1b.png) ### 分组统计与结果排序例题 ![](https://i-blog.csdnimg.cn/direct/f7576b09554642a9897303be736c2df9.png) ![](https://i-blog.csdnimg.cn/direct/7e3fd93eac9644debbe517a8ea9f2c31.png) ![](https://i-blog.csdnimg.cn/direct/9e2840a3d3d34063942a9398de35735b.png) ![](https://i-blog.csdnimg.cn/direct/9790cb1ec8914172bba808a1553e4e07.png) ![](https://i-blog.csdnimg.cn/direct/35c28c9d400c47c8ae48cf5a7dec3ab3.png) ![](https://i-blog.csdnimg.cn/direct/11b228d5c4fe43b8a317260153c5d896.png) ![](https://i-blog.csdnimg.cn/direct/8c8ef2dfa2f24d23bf15f491145fe539.png) ![](https://i-blog.csdnimg.cn/direct/12b362de36ac4adc9570191e90b645d0.png) ### 分组统计与结果排序小结 ![](https://i-blog.csdnimg.cn/direct/1679ed51edc5476b85c79a7b8b445dd0.png)

相关推荐
白露与泡影2 小时前
MySQL 时间类型选型避坑:timestamp 和 datetime 该怎么选?
数据库·mysql
运维 小白4 小时前
2. 部署mysql服务并监控mysql
数据库·mysql·adb
北漂Zachary4 小时前
Mysql中使用sql语句生成雪花算法Id
sql·mysql·算法
橘颂TA5 小时前
【MySQL】解锁表的 N 种牵手方式:SQL 连接与子查询漫游(复合查询)
数据库·mysql
wyt5314296 小时前
基于人脸识别和 MySQL 的考勤管理系统实现
数据库·mysql
qiuyuyiyang6 小时前
MySQL 实验1:Windows 环境下 MySQL5.5 安装与配置
windows·mysql·adb
青柠代码录7 小时前
【MySQL】SELECT 语句执行流程
数据库·mysql
Y001112368 小时前
Day3-MySQL-SQL-2
数据库·sql·mysql
V1ncent Chen9 小时前
从零学SQL 07 数据过滤
数据库·sql·mysql·数据分析