数据库先系统与原理第三章笔记:数据库SQL查询语言

SQL概述

  SQL发展

  SQL特点

  SQL查询基本概念

单表查询

  投影查询

1.查询指定列:

SELECT 列名1,列名2,列名3,.....FROM  Table_Name;

#查询全部列:
SELECT * FROM Table_Name;

#查询某一张表的全部列
SELECT Table_Name_A.*,列名1,列名2,列名3,.....FROM  Table_Name_A,Table_Name_B;

2.消除指定元组:

SELECT DISTINCT  列名  FROM  Table_Name;

 

  选择查询

比较运算:>,>=.<,<=,=,<>(或者!=)

范围查询:BETWEEN....AND

 

SELECT studentNO,courseNO,score  from score
where  score  BETWEEN  80  AND  90

 

 

 

集合查询:IN

 

SELECT studentNO,courseNO,score  from score
where  courseNo  IN('001','002,'005');

 

 

 

空值查询:IS   NULL

 

SELECT * from Student where studentNO  IS  NULL;

 

 

 

字符匹配查询:LIKE   ‘%some char%’,LIKE   ‘_some char_’

下划线_代表匹配一个字符:

 

SELECT * from Student where studentName LIKE ‘%some char%’;

 

 

 

百分号%代表匹配多个字符:

 

SELECT * from Student where studentName LIKE ‘_some char_’;

 

 

ESCAPE '\'表示\为换码字符,这样紧跟在\符号后面的_就不是通配符了,而是普通用户要查询的符号

 

 

SELECT * from Student where studentName LIKE ‘_some char\_’  ESCAPE  '\'

 

 

 

逻辑查询:AND  ,OR    ,NOT

SELECT * FROM student where studentName=‘mikey’  AND  studentNo=2018;
SELECT * FROM student where studentName=‘mikey’  or  studentName=‘LEO' ;
SELECT * FROM student where studentName!=‘mikey’ ;

 

  排序运算

语法:ORDER  BY  <表达式1>[ASC|DESC],<表达式1>[ASC|DESC],<表达式1>[ASC|DESC].............

ASC:升序(省缺)

DESC:降序

表达式1如果不能判断排序,则推到表达式2

SELECT * FROM STUDENT GROUP BY studentNo;

 

SELECT * FROM STUDENT GROUP BY studentNo DESC;

 

  查询表

SELECT studentNo,studentName,birthday from(SELECT * from Student Where sex='') AS a  where year(birthday)=1999;

 

  聚合查询

count([DISTINCT|ALL] { *|<列名>});统计关系的元组(记录)个数或者一列中值的个数

sum([DISTINCT|ALL] {<列名>});统计一列中值的总和(此列必须为数值类型)

avg([DISTINCT|ALL] {<列名>});统计一列中值的平均值(此列必须为数值类型)

max([DISTINCT|ALL] {<列名>});统计一列中值的最大值

min([DISTINCT|ALL] {<列名>});统计一列中值的最小值

getdate():获取当前日期时间

year(日期):获取当前日期年份

 

连接查询

  等值与非等值连接

WHERE [表1.]<属性名1><比较运算符>[表2.]<属性名2>

    [<逻辑运算符>]

    [表3.]<属性名3><比较运算符>[表4.]<属性名4>

比较运算符:>,>=.<,<=,=,<>(或者!=)

 

WHERE 子句:作用于整个查询对象,对元组过滤

HAVING 子句:仅作用于分组,对分组进行过滤

  自表连接

自己对自己连接:

where b.courseNo=123 and b.courseNo=125;

 内连接:

只是检索表和表之间符合连接条件的记录

  外连接

定义:在实际应用中,往往需要将不满足连接条件的元组也检索出来,只是在相应的位置用空值代替;

左外连接:

检索左表的全部记录及右表符合连接条件的记录

左外连接的连接结果中包含左关系中的所有元组,对于左关系中没有连接上的元组,其右关系中的相应属性用空值代替

右外连接:

 检索右表的全部记录及左表符合连接条件的记录(左外连接的逆向)

右外连接的连接结果中包含关系中的所有元组,对于关系中没有连接上的元组,其左关系中的相应属性用空值代替

全外连接:

全外连接的连接结果中包含左关系中的所有元组,对于左关系中没有连接上的元组,其右关系中的相应属性用空值代替,对于关系中没有连接上的元组,其左关系中的相应属性用空值代

 

嵌套子查询

  使用in的子查询

  使用比较运算符的子查询

  使用存在量词EXISTS的子查询

  复杂子查询实例

集合运算

SQL查询一般格式

 

转载于:https://www.cnblogs.com/biaogejiushibiao/p/9896678.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值