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语句的功能 * 条件查询--按行 * 投影查询--按列 * 分组统计--按组 * 结果排序 ### 查询分类 * 单表查询 * 连接查询 * 嵌套查询 * 集合查询  ### 已建立的关系模式如下  ### 无条件查询 **在SELEGT语句中不使用\[WHERE\<条件表达式\>\]子句。**  ### 无条件查询例题        ### 无条件查询小结 * **在SELECT后面用** **表示显示所有的属性列** * **在目标列的后面使用"AS"关键词,可以给这个目标列起一个别名,注意别名要使用双引号括起来** * **DISTINCT** * * **位置:紧跟SELECT之后,在所有属性列之前** * **作用:去除查询数据中的重复元组** * **常用的函数** * * **NOWO,获取当前日期和时间,数据类型:DATETIME** * **YEARO,获得日期数据的年份,数据类型:INT** *  ### 查询条件  #### 常见的条件表达式有 ##### (1)比较条件   ##### (2)谓词条件  ##### \<匹配串\>可以是一个完整的字符串,也可以含有通配符: 1.%(百分号):代表任意长度(长度可以为0)的字符串。例如a%b1)表示以a开头,以b结尾的任意长度的字符串。如acb,abcdb,ab等都满足该匹配串。 2._(下横线):代表任意单个字符。例如ab表示以a开头,以b结尾的长度为3的任意字符串。如acb,adb等都满足该匹配串。 ##### ESCAPE'\<换码字符\>'的作用: 在模式中,当换码字符(可以任意定义为除'%'和'_'以外的字符如'/')置于通配符('%'和'_')之前时,该通配符就解释为普通字符。 注意:换码字符不能使用'\\'  ### 条件查询例题  ### 条件查询举例             ### 条件查询小结 * **某些情况下,比较条件表达式和谓词条件表达式是可以互换的** * **常用的函数** * * CONVERT(),将字符串expr转换为指定的数据类型,数据类型参数指定的数据类型 * LEFT(),获得字符串expr前端指定长度的子串,数据类型:字符类型 * RIGHT(),获得字符串expr后端指定长度的子串,数据类型:字符类型 ### 分组统计  ### 结果排序与分页显示  ### 分组统计与结果排序例题  ### 关于COUNNT(\*)的问题  ### 分组统计与结果排序例题         ### 分组统计与结果排序小结 