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('','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查询一般格式

数据库先系统与原理第三章笔记:数据库SQL查询语言的更多相关文章

  1. 第三章基本的SQl查询语言

    ---恢复内容开始--- ---恢复内容结束---

  2. 《APUE》第三章笔记(3)

    文件共享 UNIX系统支持在不同进程中共享打开的文件,首先先用一幅apue的图来介绍一下内核用于I/O文件的数据结构: 如图所见,一个进程都会有一个记录项,记录项中包含有一张打开文件描述符表,每个描述 ...

  3. 《APUE》第三章笔记(2)

    read函数 调用read函数从打开的文件中读数据. #include <unistd.h> ssize_t read(int filedes, void *buf, size_t nby ...

  4. 《APUE》第三章笔记(1)

    以下内容是我看<APUE>第二版第三章的笔记,有错还希望指出来,谢谢. unbuffered I/O,跟buffered I/O相对,buffered I/O就是 ISO C标准下的标准输 ...

  5. HBase in Action前三章笔记

    近期接触HBase,看了HBase In Action的英文版.開始认为还行,做了些笔记.可是兴许看下去,越来越感觉到实战这本书比較偏使用上的细节,对于HBase的具体设计涉及得很少.把前三章的一些笔 ...

  6. 【转】《APUE》第三章笔记(4)及习题3-2

    原文网址:http://www.cnblogs.com/fusae-blog/p/4256794.html APUE第三章的最后面给出的函数,现在还用不着,所以,先留个名字,待到时候用着了再补上好了. ...

  7. 《APUE》第三章笔记(4)及习题3-2

    APUE第三章的最后面给出的函数,现在还用不着,所以,先留个名字,待到时候用着了再补上好了. dup和dup2函数:用来复制文件描述符的 sync函数,fsync函数和fdatasync函数:大致的功 ...

  8. 《HALCON数字图像处理》第三章笔记

    目录 第三章 HALCON图像处理基础 HALCON控制语句 HALCON算子 HALCON图像处理入门 HALCON图像读取 HALCON图像显示 图形窗口 图像显示 显示文字 HALCON图像转换 ...

  9. MongDB篇,第三章:数据库知识3

    MongDB    数据库知识3 修改器 $inc 对某个域的值进行加减修改 $mul 对某个域的值进行乘法修改 $min 如果筛选的文档指定的值小于min则不修改,如果大于min 给定的值则修改为m ...

随机推荐

  1. 发现一个比较好玩的,git的仓库可以转换

    我们通过 git clone 下载一个仓库到本地, 1.这个本地的文件夹名字可以随便改. 2.如果你把本地仓库的全部文件,剪切到另一个文件夹内,这个新的文件夹就是git的本地仓库.

  2. Flask 学习之 路由

    一.路由的基本定义 # 指定访问路径为 demo1 @app.route('/demo1') def demo1(): return 'demo1' 二.常用路由设置方式 @app.route('/u ...

  3. SpringBoot 开发的那些小趣事儿

    经过这次在公司实习中获取到的经历,我发现确实有时候书本上的知识发挥的作用微乎其微,好像是被问题打了太极拳一样,你明明想去攻克这个地方,他却给你报了其他地方的错误. 平常的一些小项目根本就不能匹配到企业 ...

  4. 关于宽搜BFS广度优先搜索的那点事

    以前一直知道深搜是一个递归栈,广搜是队列,FIFO先进先出LILO后进后出啥的.DFS是以深度作为第一关键词,即当碰到岔道口时总是先选择其中的一条岔路前进,而不管其他岔路,直到碰到死胡同时才返回岔道口 ...

  5. vue基础总结

    Vue语法: new Vue({ //挂载: el: '#app', //初始化数据: data: {}, //监听 data 的数据变化: watch: { todos: { //深度监视 hand ...

  6. 安装pyhanlp

    安装pyhanlp pyhanlp是java写的,外层封装了python. 对于新手,在使用的时候稍有难度. 1. 下载源码 https://github.com/hankcs/pyhanlp git ...

  7. dfs(学姐的红包)

    链接:https://ac.nowcoder.com/acm/contest/3402/I    盼啊,盼啊,伴随着时钟的敲响,我们即将迎来了美好的传统佳节-春节.为了给新年增添浓浓节日气息,师弟师妹 ...

  8. Atcoder Beginner Contest145E(01背包记录路径)

    #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;int a[3007],b[3007];int ...

  9. 【PAT甲级】1079 Total Sales of Supply Chain (25 分)

    题意: 输入一个正整数N(<=1e5),表示共有N个结点,接着输入两个浮点数分别表示商品的进货价和每经过一层会增加的价格百分比.接着输入N行每行包括一个非负整数X,如果X为0则表明该结点为叶子结 ...

  10. 【前端基础之HTML】

    " 目录 一.HTML介绍 二.head内常用标签 三.body内常用标签 一.HTML介绍 1. web服务本质 from socket import socket, SOL_SOCKET ...