您的位置:首页 > 数据库 > MySQL

MySQL学习day2 单表查询

2020-03-28 19:03 225 查看

SQL的语言分类

SQL功能 动词
DQL ( Data Query Language ) : 数据查询语言 select
DDL (Data Define Languge) : 数据定义语言 create、drop、alter
DML ( Data Manipulate Language) : 数据操作语言 insert、update、 delete
DCL ( Data Control Language ) : 数据控制语言 gtant、revoke

数据查询

语句格式:
SELECT [ALL|DISTINCT] <目标列表达式> FROM <表名或视图名>
WHERE <条件表达式>
GROUPBY <列名1> [ HAVING <条件表达式>]
ORDERBY <列名2> [ ASCIDESC ];

单表查询

一、选择表中的若干列

1.查询指定列

SELECT 列名 FROM 表名;

2.查询全部列

SELECT * FROM 表名;

3.查询经过计算的值

SELECT子句的<目标列表达式>可以为:

  • 算术表达式
  • 字符串常量
  • 函数
  • 列别名

二、选择表中的若干元组

1.消除取值重复的行

  • DISTINCT
  • ALL(默认)

2.查询满足条件的元组

常用查询条件

查询条件 谓词
比较 = > < >= <= != <> !> !<
去冗余 DISTINCT
确定范围 BETWEEN AND,NOT BETWEEN AND
确定集合 IN,NOT IN
字符匹配 LIKE,NOT LIKE
空值 IS NULL, IS NOT NULL
多重条件 AND, OR , NOT

3.字符匹配

(1)匹配串为固定字符串

查询学号为200215121的学生的详细情况
SEL ECT * FROM Student
WHERE Sno LIKE ‘200215121’;
等价于:
SELECT * FROM Student
WHERE Sno= ’ 200215121’;

(2)匹配串为含通配符的字符串

查询所有姓刘学生的姓名、 学号和性别
SELECT Sname,Sno ,Ssex FROM Student
WHERE Sname LIKE‘刘%’ ;

查询姓"欧阳"且全名为三个汉字的学生的姓名
SELECT Sname FROM Student
WHERE Sname LIKE '欧阳_ ’ ;

查询名字中第 2个字为"阳"字的学生的姓名和学号
SELECT Sname,Sno FROM Student
WHERE Sname LIKE’__阳%’ ;

查询所有不姓刘的学生姓名
SELECT Sname,Sno,Ssex FROM Student
WHERE Sname NOT LIKE ‘刘%’ ;

(3)使用换码字符将通配符转义为普通字符

查询DB_ Design 课程的课程号和学分
SELECT Cno, Ccredit FROM Course
WHERE Cname LIKE ‘DB \ _ Design’ ESCAPE ’ \ ';

查询以"DB_ " 开头,且倒数第3个字符为i 的课程的详细情况
SELECT * FROM Course
WHERE Cname LIKE ‘DB \ _ %i__’ ESCAPE’ \ ';

ESCAPE’ \ ’ 表示 " \ " 为换码字符

(4) 涉及空值的查询

IS NULL 或 IS NOT NULL
“IS"不能用”="代替

(5) 多重条件查询

  • AND和OR来联结多个查询条件
    AND的优先级高于OR,可以用括号改变优先级
  • 可用来实现多种其他谓词
    [NOT] IN
    [NOT] BETWEEN AND

三、组函数 ( 组函数的返回值只有一个 )

关键字 功能
COUNT() 计算所选数据(记录)的个数
SUM() 计算某一数值列的和
AVG() 计算某一数值列的平均值
MAX() 求(字符、 日期、数值列)的最大值
MIN() 求(字符、 日期、数值列)的最小值

四、GROUP BY子句

  • 将查询结果表按某一列或多列值分组,值相等的为一-组;
  • 未对查询分组,组函数作用于整个查询结果
  • 对查询分组后,组函数作用于每个组
  • 包含GROUP BY子句的查询语句中,SELECT子句后面的所
    有字段列表(除组函数外),均应该包含在GROUP BY子句中

HAVING与WHERE区别

作用对象不同

  • WHERE子句作用于基表或视图,从中选择满足条件的元组
  • HAVING短语作用于组,从中选择满足条件的组

五、ORDER BY 子句

升序: ASC(默认)
降序: DESC
缺省值为升序.
当排序列含空值时

  • DESC : 含有空值的行位于最前面
  • ASC : 含有空值的行位于最后面
  • 点赞
  • 收藏
  • 分享
  • 文章举报
fantasy噢 发布了2 篇原创文章 · 获赞 0 · 访问量 15 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: