博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库先系统与原理第三章笔记:数据库SQL查询语言
阅读量:5062 次
发布时间:2019-06-12

本文共 2387 字,大约阅读时间需要 7 分钟。

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 scorewhere  score  BETWEEN  80  AND  90;

 

 

 

集合查询:IN

 

SELECT studentNO,courseNO,score  from scorewhere  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

你可能感兴趣的文章
EasyPusher:基于live555的DarwinInjector实现的RTSP直播推送程序
查看>>
运算符中的一些小技巧
查看>>
Apache配置HTTPS的过程小记
查看>>
万维网WWW详解
查看>>
MySQL数据库之DML(数据操作语言)
查看>>
(四)适配器Adapter
查看>>
PL/0编译器(java version)–PL0.java
查看>>
【栈】1353:表达式括号匹配(stack)
查看>>
SQLServer中文排序
查看>>
numpy笔记—np.squeeze用法
查看>>
ORACLE数据库的一些限制
查看>>
贪心EX
查看>>
elementUi模态框使用baiduMap错误记录
查看>>
jquery_mini_ui
查看>>
[性能调优]PeopleSoft Trace 分析工具 - TraceMagic
查看>>
java-Freemarker TemplateLoader实现模版
查看>>
【GitHub】常用命令
查看>>
FreeRTOS 临界段和开关中断
查看>>
JS初级-作用域
查看>>
LINUX - gcc
查看>>