美文网首页
MYSQL学习——简单查询

MYSQL学习——简单查询

作者: 思君_4cd3 | 来源:发表于2019-11-03 23:32 被阅读0次

一.结构化查询语言

1.结构化查询语言简介

结构化查询语言(Structured Query Language)简称SQL, 是操作和检索关系型数据库的标准语言,20世纪70年代由IBM公司开发,目前应用于各种关系型数据库。

2.结构化查询语言分类:
  • 结构化查询语言可分为5类:
    1.数据查询语言(DQL:Data Query Language):语句主要包括SELECT,用于从表中检索数据。
    2.数据操作语言(DML:Data Manipulation Language):语句主要包括INSERT,UPDATE和DELETE,用于添加,修改和删除表中的行数据。
    3.事务处理语言(TPL:Transaction Process Language): 语句主要包括COMMIT和ROLLBACK,用于提交和回滚。
    4.数据控制语言(DCL:Data Control Language):语句主要包括GRANT和REVOKE,用于进行授权和收回权限。
    5.数据定义语言(DDL:Data Definition Language):语句主要包括CREATE、DROP、ALTER,用于定义、销毁、修改数据库对象。

二.基本SELECT语句

1.基本SELECT语句语法

SELECT [DISTINCT]{*|column|expression [alias],...}
FROM table;

  • SELECT子句 表示所需检索的数据列。
  • FROM子句 表示检索的数据来自哪个表。
2.SQL语句相关概念
  • 关键字(Keyword):SQL语言保留的字符串,例如,SELECT和FROM都是关键字。
  • 语句(statement):一条完整的SQL命令。例如,SELECT * FROM dept 是一条语句。
  • 子句(clause):部分的SQL语句,通常是由关键字加上其它语法元素构成,例如,SELECT * 是一个子句,FROM table也是一个子句。
3.SQL语句的书写规则
  • 不区分大小写,也就是说SELECT,select,Select,执行时效果是一样的。
  • 可以单行来书写,也可以书写多行,建议分多行书写,增强代码可读性,通常以子句为单位进行分行。
  • 关键字不可以缩写、分开以及跨行书写,如SELECT不可以写成SEL或SELE CT等形式。
  • 关键字最好使用大写,其它语法元素(如列名、表名等)小写。
  • Tab和缩进的使用可以提高程序的可读性。
4.选择列
  • 选择所有列:


    示例
  • 选择指定的列:


    示例
5.算数运算符

可以在SELECT语句中使用算术运算符,改变输出结果
加+ 减- 乘× 除/


示例
6. 算术运算符优先级

1.乘除优先于加减
2.相同优先权的表达式按照从左至右的顺序依次计算
3.括弧可以提高优先权,并使表达式的描述更为清晰


示例
  • 使用括号改变优先级


    示例
7.空值NULL

空值是指一种无效的、未赋值、未知的或不可用的值。
空值不同于零或者空格。


示例
  • 算术表达式中的空值NULL
    任何包含空值的算术表达式运算后的结果都为空值NULL。


    示例
8.列别名
  • 列别名
    用来重新命名列的显示标题
    如果SELECT语句中包含计算列,通常使用列别名来重新定义列标题。
  • 使用列别名的方法
    方式1:列名 列别名
    方式2:列名 AS 列别名
  • 以下三种情况列别名两侧需要添加双引号
    列别名中包含有空格
    列别名中要求区分大小写
    列别名中包含有特殊字符


    示例
    示例
8.消除重复行
  • 重复行
    以下查询的结果默认输出所有行,其中包含了重复行


    示例
  • 消除重复行


    示例
9.显示表结构

1.可以使用DESCRIBE 命令来查看表结构
DESC[RIBE] tablename

10.选择限定数据行

使用WHERE子句可以返回限定的数据行,语法如下:
SELECT [DISTINCT] {*| column | expression [alias], ...}
FROM table
[WHERE condition(s)];

  • WHERE子句紧跟在FROM子句之后
  • condition(s)表示条件表达式,
    通常格式为:列名 比较操作符 要比较的值
    2.比较操作符
    等于(=)大于(>)大于或等于(>=)
    小于(<) 小于或等于(<=) 不等于(<>)
    3.使用WHERE子句
  • 比较数值型数据


    示例
  • 比较字符型数据


    示例

    字符型数据作为被比较的值时,必须用单引号引起来
    字符型数值区分大小写

11.特殊比较运算符

BETWEEN...AND...:判断要比较的值是否在某个范围内。
IN( 集合列表):判断要比较的值是否和集合列表中的任何一个值相等。
LIKE:判断要比较的值是否满足部分匹配。
IS NULL:判断要比较的值是否为空值NULL 。

  • BETWEEN..AND..
    使用BETWEEN .. AND.. 运算符来判断要比较的值是否在某个范围内。


    示例
  • IN运算符
    使用IN运算符判断要比较的值是否和集合列表中的任何一个值相等。


    示例
  • LIKE运算符
    使用LIKE运算符判断要比较的值是否满足部分匹配,也叫模糊查询。模糊查询中两个通配符:
    % 代表零或任意更多的字符
    _ 代表一个字符


    示例
  • LIKE运算符
    %与_组合使用


    示例
  • LIKE运算符
    您可以使用ESCAPE标识符实现对“%”和 “”的查找。
    例:查询 JOB 以“MAN
    ”开头的雇员信息。
    示例
  • IS NULL 运算符
    使用 IS NULL 运算符来判断要比较的值是否为空值NULL


    示例
12.逻辑运算符

1.逻辑运算符
当需要和多个条件表达式进行比较时,需要使用逻辑运算符把多个表达式连接起来,逻辑运算符包括AND、OR、NOT,逻辑表达式的结果为TRUE,FALSE,NULL。
AND:逻辑与,用来连接多个条件表达式。如果每个条件表达式的结果都为TRUE,整个表达式的结果才为TRUE。
OR:逻辑或,用来连接多个条件表达式。只要有1个条件表达式的结果为TRUE,整个表达式的结果就为TRUE。
NOT:逻辑非,用来对条件表达式取反。TRUE取反为FALSE,FALSE取反为TRUE。

  • 逻辑与(AND):
    AND: 要求两个条件都为真,结果才为真


    示例
  • 逻辑或(OR):
    OR: 只需要两个条件中的一个为真,结果就返回真


    示例
  • 逻辑非(NOT)


    示例

    NOT运算符还可以和BETWEEN…AND、LIKE、IS NULL一起使用
    ... WHERE deptno NOT IN (10, 20)
    ... WHERE sal NOT BETWEEN 3000 AND 5000
    ... WHERE ename NOT LIKE 'D%’
    ... WHERE mgr IS NOT NULL
    2.运算符的优先级
    括号’()’优先于其他操作符。
    算术运算符:*, , +, -
    连接运算符:||
    比较运算符:=, <>, <, >, <=, >=
    特殊比较运算符:BETWEEN..AND.. ,IN,LIKE,IS NULL
    逻辑非:NOT
    逻辑与:AND
    逻辑或:OR

  • 运算符的优先级


    示例
  • 运算符的优先级
    使用括号强制改变优先权


    示例
13.ORDER BY子句

使用ORDER BY子句能对查询结果集进行排序,语法结构如下:
SELECT [DISTINCT] { * | 列名 |表达式 [别名][,...]}
FROM 表名
[WHERE 条件]
[ORDER BY {列名|表达式|列别名|列序号} [ASC|DESC],…];

  • 其中:
    1.可以按照列名、表达式、列别名、结果集的列序号排序
    2.ASC: 升序,默认值 DESC: 降序
    3.ORDER BY 子句必须写在SELECT语句的最后
  • 排序规则(以升序为例)
    1.数字升序排列小值在前,大值在后。即按照数字大小顺序由小到大排列。
    2.日期升序排列相对较早的日期在前,较晚的日期在后。
    3.字符升序排列按照字母由小到大的顺序排列。即由A-Z排列;中文升序按照字典顺序排列。
    4.空值在升序排列中排在最前面,在降序排列中排在最后。
  • 按列名升序排序


    示例
  • 按列名降序排序
示例
  • 按列别名排序
示例
  • 多列参与排序


    示例

    参与排序的多列都可以指定升序或者降序
    ORDER BY子句中可以写没在SELECT列表中出现的列

  • 按结果集列序号排序
    ORDER BY子句后列名可以用数字来代替,这个数字是SELECT语句后列的顺序号。


    示例
14.限制记录的行数
  • 使用select语句时,经常要返回前几条或者中间某几行记录,可以使用关键字limit。语法格式如下:
    select 字段列表
    from 数据源
    limit [start,]length;
  • 说明:
    1.limit接受一个或两个整数参数。start表示从第几行记录开始输出,length表示输出的记录行数。
    2.表中第一行记录的start值为0(不是 1)。
  • 查询员工表的前5条记录


    示例

    (此文章仅作为个人学习笔记使用,如有错误欢迎指正~)

相关文章

网友评论

      本文标题:MYSQL学习——简单查询

      本文链接:https://www.haomeiwen.com/subject/xttkbctx.html