第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语句的功能

  • 条件查询--按行
  • 投影查询--按列
  • 分组统计--按组
  • 结果排序

查询分类

  • 单表查询
  • 连接查询
  • 嵌套查询
  • 集合查询

已建立的关系模式如下

无条件查询

在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(*)的问题

分组统计与结果排序例题

分组统计与结果排序小结

相关推荐
健康平安的活着12 小时前
mysql中数据库脚本太大,通过脚本命令修改db名称
数据库·mysql
minji...14 小时前
MySQL数据库 (八) MySQL表的基本查询(下),truncate、group by、聚合函数、分组聚合统计
数据库·mysql·聚合函数·update·分组聚合统计
乐世东方客14 小时前
备份脚本记录(binlog文件+mysql+mongo)
android·数据库·mysql
暴力求解14 小时前
MySQL---数据类型
数据库·mysql
我星期八休息17 小时前
Linux系统编程—mmap文件映射
java·linux·运维·服务器·数据库·mysql·spring
网管NO.118 小时前
MySQL 8.0 JSON 操作 | 新增 / 查询 / 修改,适配新兴业务
数据库·mysql·json
IT策士18 小时前
MySQL 系列:第1篇 数据库时代与MySQL
数据库·mysql
我爱学习好爱好爱19 小时前
Docker Compose部署SpringBoot2+Vue3+redis项目(Rockylinux9.6):MySQL 主从复制实战
redis·mysql·docker
不吃土豆的马铃薯19 小时前
高并发服务器数据库连接池设计详解
服务器·网络·数据库·c++·mysql
Nontee20 小时前
新手数据库进阶:大白话图解MySQL的“官方档案”——Binlog
数据库·mysql