精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

CMU 15445 學習之Advanced SQL

數據庫 其他數據庫
DML 是數據操作,例如增刪改查數據,DDL 是數據定義,例如新建一個表,增加一個索引等。此外還包含其他的一些操作,例如視圖、事務等。

本章將會介紹一些常用的 sql 語法。注意這個課程只要是為了講解數據庫的設計,但同時對 sql 也要有一定的了解,不然沒法進行后續學習,所以這里做一個簡單的介紹,讀者也可以查看其它的 sql 基礎教程。

SQL 即結構化查詢語言(Structured Query Language),是數據庫的標準操作語言,它大致包含了這幾種類型:

  • Data Manipulation Language (DML)
  • Data Definition Language (DDL)

DML 是數據操作,例如增刪改查數據,DDL 是數據定義,例如新建一個表,增加一個索引等。此外還包含其他的一些操作,例如視圖、事務等。

為了演示后續 sql 的用法,將會以下面的幾張表做為 demo 數據。

我是以 PostgreSQL 為例進行講解的,但是本文中設計的 sql 語法大多比較通用,要是在其他的數據庫中沒看到相應的用法,可以查看其官方文檔,看是否有其他的寫法或者該 feature 不支持。

圖片

create table student (
sid int primary key,
name VARCHAR(256),
login varchar(256),
age int,
gpa FLOAT8
);


insert into
student
values
(53666, 'Kanye', 'kanye@cs', 44, 4.0),
(53688, 'Bieber', 'jbieber@cs', 27, 3.9),
(53655, 'Tupac', 'shakur@cs', 25, 3.5);


create table course (cid VARCHAR(30) primary key, name VARCHAR(128));


insert into
course
values
('15-445', 'Database Systems'),
('15-721', 'Advanced Database System'),
('15-826', 'Data Mining'),
('15-823', 'Advanced Topics in Databases');


create table enrolled (sid int, cid varchar(30), grade CHAR(1));


insert into
enrolled
values
(53666, '15-445', 'C'),
(53688, '15-721', 'A'),
(53688, '15-826', 'B'),
(53655, '15-445', 'B'),
(53666, '15-721', 'C');

Basic Syntax

最基礎的查詢語句如下,它的意思是從某個表中根據條件查詢出某些列。

select column1, column2, ...
from table
where predicate1, predicate2,...

例如select name, gpa from student where age > 25;

Aggregates

aggregates 表示一些聚合操作,其含義是從多個 tuple 中通過計算返回一個統計值,下面的幾個示例 sql 都比較簡單。

AVG

求平均值,通過函數 AVG。

select AVG(gpa) from student;

MIN

求最小值,通過函數 MIN。

select MIN(gpa) from student;

MAX

求最大值,通過函數 MAX。

select MAX(gpa) from student;

SUM

求和,通過函數 SUM。

select sum(gpa) from student;

COUNT

對某列的數據計數,可以加 distinct 去重(avg 和 sum 函數都支持)。

select count(distinct sid) from enrolled;

Group By

group by 表示分組操作,是對 table 中的數據根據某個特征分組,并且可以將分組各自進行聚合計算。如果要對 group by 的分組聚合結果進行過濾,則可以使用 having 子句。下面是一個簡單的例子,這條 sql 的含義是根據課程 cid 進行分類,并且統計該課程的平均分。

select avg(s.gpa), e.cid from enrolled as e, student as s where e.sid = s.sid group by e.cid;

圖片

對于 group by 的場景,需要注意幾點,一是 select 的列必須包含在 group by 子句中或者是聚合的列,例如我在前面的 sql 中加入一個 s.name 列,報錯信息如下:

圖片

二是可以對 group by 后輸出的內容進行過濾,只不過需要注意這里過濾并不能使用 where 子句,而是需要結合 having 子句。

select avg(s.gpa) as avg_gpa, e.cid from enrolled as e, student as s where e.sid = s.sid group by e.cid having avg(s.gpa) > 3.9;

String Operations

數據庫中的一些函數支持對字符串類型的數據進行處理,下面介紹比較常見的幾種。更多的函數可參考 sql-92 標準文檔:https://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt

like

like 可以對字符串進行匹配。

select * from student where login like '%r@cs';

substring

字符串截取

select name || 'is a student' from student;

upper

字符大寫

select UPPER(name) from student;

String Concat

字符串連接,sql-92 標準是使用 || 符號,不同的操作系統有不同的實現,例如可以使用 + 或者 concat 函數。

select name || 'is a student' from student;

Date/Time Operations

日期和時間函數也是數據庫中基本的處理函數。函數 now 可以返回當前時間。

select now() as current_datetime;

更多函數可參考標準 sql 文檔。

Output Control

SQL 可以支持對數據的輸出結果進行過濾、排序、重命名等操作。

order by

order by 可以對數據的結果進行排序,基本語法為order by <column*> [ASC|DESC]

select * from student order by gpa desc;

還可以根據多個 column 進行排序。

select sid from enrolled where cid = '15-721' order by grade desc, sid asc;

limit

limit 子句可以控制輸出結果的數量。

select * from student limit 1

還可以加 offset 參數控制獲取數據的偏移量。

select * from course limit 2 offset 2;

Nested Queries

嵌套查詢。

select name from student where sid in (select sid from enrolled);

這類查詢主要表達的含義是一個查詢的過濾條件依賴于另一個查詢的輸出,這兩個查詢前后者分別叫做 outer query 和 inner query。

圖片

在 inner query 之前可以加上一個條件匹配表達式,大致有如下幾種:

  • ALL:表示必須滿足 inner query 中的所有條件
  • ANY:表示滿足 inner query 中任意一條數據
  • IN:等同于 ANY
  • EXISTS:inner query 中有一條數據返回即可

exists 前面可以加 not 表示否,例如下面 sql 的含義是查找在 enrolled 中沒有 course 記錄的數據。

select * from course where not exists (select * from enrolled where course.cid = enrolled.cid);

Window Function

窗口函數可以對一系列與當前行有關聯的行進行計算,常見的窗口函數語法如下:

圖片

下面的示例 sql 演示了一個最簡單的窗口函數,row_number() 會返回當前行的序號。

select *, row_number() over() from enrolled;

over 子句表示在執行計算時怎么排列數據,例如可以加 partition 關鍵字進行分組,也可以進行 sort。

select cid, sid, row_number() over (partition by cid) from enrolled order by cid;

select cid, sid, row_number() over (order by cid) from enrolled order by cid;

Common Table Expressions

最常見的是 with as 語句,這種語法的含義是提供一個臨時的結果,供其他查詢使用,有點類似于一個臨時表。

圖片

下面是一個非常簡單的例子:

with tab as (select 1)select * from tab;

這一節學習了 sql 相關的基礎知識,由于 sql 語法很多,所以并沒有涵蓋所有的用法,只列舉了常見的一些 sql,讀者可以參考 sql 文檔及其他基礎教程。后面開始會正式進入數據庫系統設計,首先會來討論一下數據庫中的存儲管理模塊。

責任編輯:武曉燕 來源: roseduan寫字的地方
相關推薦

2022-10-09 08:53:06

存儲容量SSD

2022-10-17 08:49:47

2022-10-12 08:52:00

內存緩沖管理

2022-10-30 10:03:20

B+數據庫數據

2022-09-30 11:08:44

MySQLPostgreSQLOracle

2021-02-19 22:18:11

數據庫系統管理

2011-08-16 09:48:27

SQLPLUS學習筆記SQL Buffer

2011-08-16 10:09:30

SQLPLUS學習筆記SQL的自動提交功能

2017-09-07 15:54:49

2011-05-24 09:10:24

MySQLMongoDB

2011-08-22 11:23:41

SQL Server 數據修改

2011-08-16 10:56:01

SQLPLUS學習筆記ECHO

2010-07-12 11:06:37

SQL Server2

2022-06-06 14:56:03

機器人算法模型

2012-09-06 15:23:17

Windows NT

2017-08-15 22:35:54

自監督學習視覺傳遞

2011-08-29 11:38:18

SQL Server 聯合結果集union

2011-08-19 15:48:13

SQL Server 結果集Sets使用技巧

2011-08-19 15:13:36

SQL Server MDX查詢

2018-11-05 14:54:18

MySQLSQL語句數據庫
點贊
收藏

51CTO技術棧公眾號

精品国产一级片| 午夜国产福利一区二区| 国产极品久久久久久久久波多结野| 国产日产欧产精品推荐色| 国产日本欧美一区| 国产在线视频99| 精品国产一区二区三区久久久蜜臀 | 貂蝉被到爽流白浆在线观看| 日韩在线网址| 欧洲另类一二三四区| 国产内射老熟女aaaa| 欧美新色视频| 国产馆精品极品| 国产精品久久999| 日韩精品人妻中文字幕| 久久综合国产| 亚洲欧美激情在线视频| 日本少妇一区二区三区| 成人全视频在线观看在线播放高清 | 国产中文字幕一区| 国产精品久久久久久久久久ktv| 国产五月天婷婷| 久久久久久美女精品| 国产亚洲精品va在线观看| 色婷婷精品久久二区二区密| av在线亚洲一区| 欧美在线观看一区| 北条麻妃在线一区| 国产福利电影在线播放| 一区二区三区四区亚洲| 久久视频免费在线| 日本中文字幕在线观看| 国产欧美va欧美不卡在线| 精品久久sese| 色网站免费观看| 国产suv一区二区三区88区| 国产中文字幕亚洲| 97caocao| 久久99国产精品麻豆| 国产精品三级久久久久久电影| 国产无人区码熟妇毛片多| 黑人一区二区| 欧美极品少妇xxxxⅹ免费视频 | 午夜欧美视频在线观看| 久久综合亚洲精品| 91麻豆国产福利在线观看宅福利| 国产精品成人一区二区三区夜夜夜| 日本一区不卡| 大乳在线免费观看| 中文字幕欧美国产| 中文字幕在线亚洲三区| 欧美激情黑人| |精品福利一区二区三区| 一区二区三区四区久久| 国产原创精品视频| 亚洲综合免费观看高清完整版在线 | 欧美又粗又大又爽| 中日韩av在线播放| 电影一区中文字幕| 欧美大片一区二区| 中文字幕精品久久久| 日韩三级毛片| 国产一区二区三区日韩欧美| 亚洲少妇xxx| 亚洲区综合中文字幕日日| 欧美成人精品不卡视频在线观看| 麻豆视频在线观看| 一区二区精品| 国产精品久久久久久中文字| 国产又粗又猛又爽| 高清久久久久久| 精品国产一区二区三区麻豆小说 | 国产91一区| 色婷婷综合久久久久| 男女性高潮免费网站| 亚洲国产清纯| 国产精品高潮视频| 国内精品久久久久久久久久久| 丁香桃色午夜亚洲一区二区三区| 国产精品日韩高清| 国产人成在线观看| 亚洲欧美视频在线观看视频| 国产午夜福利在线播放| 成人精品国产| 精品国产一区二区三区四区四| 成人精品在线观看视频| 久久精品久久久| 久久免费视频网站| 中文字幕欧美在线观看| 成人一区二区视频| 先锋影音一区二区三区| 性欧美ⅴideo另类hd| 欧美日韩综合视频网址| 午夜视频在线观| 亚洲男人都懂第一日本| 久久亚洲精品毛片| 国产又黄又猛又粗又爽| 激情六月婷婷综合| 美女被啪啪一区二区| 国内精品久久久久国产| 一本到不卡免费一区二区| www,av在线| 精品久久久久久久久久久下田 | 玖玖精品一区| 亚洲人永久免费| 国产大片aaa| 久久国产剧场电影| 久久久一本精品99久久精品66| 国产在线观看免费麻豆| 色噜噜夜夜夜综合网| www.欧美com| 国产精品91一区二区三区| 欧美综合第一页| 亚洲精品国产suv一区| 欧美激情综合网| 大陆极品少妇内射aaaaa| 日韩精品成人| www日韩中文字幕在线看| 色屁屁影院www国产高清麻豆| 国产精品一区在线观看乱码| 神马影院我不卡| 自拍视频在线看| 亚洲国产精品va在线观看黑人| 看免费黄色录像| 奇米在线7777在线精品 | 人妻 丝袜美腿 中文字幕| 日韩一区亚洲二区| 国产成人极品视频| 污视频在线免费观看| 亚洲综合区在线| 男女视频在线观看网站| 国产精品久久久久久久| 国产精品久久久久久一区二区| 免费毛片在线| 黑人欧美xxxx| 网站免费在线观看| 国产日韩欧美一区二区三区在线观看| 91精品入口蜜桃| 午夜av在线播放| 日韩一区二区视频在线观看| 97在线观看视频免费| 老色鬼精品视频在线观看播放| 欧美一二三区| 亚洲mmav| 中文字幕视频一区二区在线有码 | 性欧美xxx69hd高清| 日韩av网站大全| www.国产com| 久久精品视频在线看| 东京热加勒比无码少妇| 午夜欧洲一区| 国产精品成人播放| yourporn在线观看视频| 欧美日韩你懂得| 国产免费久久久久| 国产成人精品免费看| 国产精品va在线观看无码| 国产劲爆久久| 欧洲亚洲免费视频| eeuss影院在线播放| 欧美另类videos死尸| 国语对白在线播放| 大尺度一区二区| 欧美日韩黄色一级片| 欧美日韩国产在线观看网站| 成人网在线观看| wwww亚洲| 一本色道久久综合狠狠躁篇怎么玩| 在线观看一二三区| 一区二区视频免费在线观看| 亚洲精品乱码久久久久久蜜桃欧美| 99国产精品私拍| 四虎永久国产精品| 日韩精品一级| 欧美一级电影免费在线观看| 在线免费看av| 亚洲成人精品久久| 亚洲天堂中文在线| 亚洲高清免费观看 | 成人网18免费网站| 亚洲综合第一页| 国产精品av一区二区三区| www国产91| 日韩精品一二| 7777精品伊人久久久大香线蕉经典版下载 | 欧美gv在线观看| 精品无码三级在线观看视频| 性做爰过程免费播放| 视频一区在线| 欧美最猛性xxxxx(亚洲精品)| 黄色软件在线| 日韩一区二区三区免费看| 久久黄色精品视频| 亚洲欧洲日韩综合一区二区| 在线免费播放av| 麻豆成人久久精品二区三区小说| 东北少妇不带套对白| 色综合天天综合网中文字幕| 国产乱码精品一区二区三区中文 | 91在线视频成人| 在线男人天堂| 欧美成人激情图片网| 国产对白叫床清晰在线播放| 亚洲成人中文字幕| 国产毛片毛片毛片毛片| 91极品美女在线| 四虎成人精品永久免费av| 亚洲欧洲国产日韩| 一卡二卡三卡四卡| 成熟亚洲日本毛茸茸凸凹| 亚洲欧美日韩综合网| 乱人伦精品视频在线观看| www.亚洲视频.com| 中文字幕日韩欧美精品高清在线| 日韩精品另类天天更新| 极品尤物一区| 999热视频| 国产精品igao视频网网址不卡日韩| 国产成人精品久久| 超碰激情在线| 久久久久久18| 182tv在线播放| 日韩亚洲第一页| 91.xxx.高清在线| 精品在线观看国产| 色婷婷av一区二区三| 欧美一级免费大片| 国产三级视频在线播放| 欧美日韩一区二区欧美激情 | 91精品婷婷国产综合久久竹菊| 黄色网址中文字幕| 色综合天天综合给合国产| 日韩xxxxxxxxx| 亚洲午夜免费福利视频| 麻豆一区二区三区精品视频| 亚洲精品自拍动漫在线| 日韩一区二区不卡视频| 亚洲欧洲精品一区二区三区| 久久嫩草捆绑紧缚| 国产精品久久精品日日| 国产又粗又硬又长又爽| 国产精品短视频| 国产精品白丝喷水在线观看| 亚洲图片激情小说| 男人与禽猛交狂配| 亚洲综合久久久久| 久久久综合久久| 亚洲成人久久影院| aaa人片在线| 一本大道av伊人久久综合| 中文字幕在线欧美| 欧美午夜片在线观看| 在线免费观看一级片| 欧美疯狂性受xxxxx喷水图片| 亚洲中文字幕一区二区| 欧美一区二区三区四区在线观看| 国产色片在线观看| 欧美精品一区二区三区高清aⅴ| 熟妇人妻一区二区三区四区| 亚洲欧美制服另类日韩| h网站在线免费观看| 精品国偷自产在线| 牛牛精品视频在线| 456国产精品| 日韩毛片一区| 99re热精品| 日韩av三区| 午夜一区二区三区| 欧美91福利在线观看| 亚洲精品久久久久久久蜜桃臀| 国产一区成人| 亚洲欧美国产日韩综合| 国产精品一级黄| 国产偷人妻精品一区| 国产精品久久久久三级| 青娱乐国产精品| 色综合一区二区| 97人妻精品一区二区三区| 精品电影一区二区三区| 国产在线免费观看| 操日韩av在线电影| 日韩伦理精品| 91精品久久久久久久久久久久久久| 日本精品国产| 欧美日韩精品一区| 中文字幕一区二区三区欧美日韩 | www.亚洲人.com| 99热99re6国产在线播放| 国产精品xxx视频| 亚洲国产高清在线观看| 日本一区二区在线| 黄色欧美日韩| 黄色片视频在线| www.日韩大片| 日韩精品一区二区三区在线视频| 亚洲成人av中文| 97视频免费在线| 亚洲精品中文字幕女同| 182tv在线播放| 国产女精品视频网站免费| 国产一级成人av| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 亚洲日本欧美| 日韩不卡的av| 国产精品女同一区二区三区| 一级片免费网址| 日韩一区二区三区在线视频| 川上优的av在线一区二区| 久久人人97超碰精品888| 精品一区二区三区亚洲| 四虎永久在线精品免费一区二区| 亚洲精品美女| a级大片免费看| 成人免费一区二区三区视频| 波多野结衣一区二区三区在线 | 少妇户外露出[11p]| 一区二区三区四区精品在线视频| 在线视频你懂得| 亚洲人成人99网站| 国模私拍一区二区国模曼安| yellow视频在线观看一区二区| 日韩欧美字幕| 亚洲福利精品视频| 久久久影视传媒| 中文字幕亚洲精品一区| 亚洲黄在线观看| h片视频在线观看| 高清国产在线一区| 欧美在线网站| 亚洲av无码久久精品色欲| 亚洲视频在线观看一区| 在线免费av网| 色妞色视频一区二区三区四区| 香蕉视频亚洲一级| 日本一区二区三区视频免费看| 久久精品盗摄| 小早川怜子久久精品中文字幕| 欧美日韩精品二区| 香蕉视频黄色片| 97成人超碰免| 天堂av一区二区三区在线播放| 国产午夜大地久久| 91一区二区三区在线观看| 日韩欧美一级视频| 精品亚洲国产成av人片传媒 | 亚洲精品免费网站| 女生裸体视频一区二区三区| 久久久久久国产精品日本| 亚洲欧美日韩在线不卡| 性做久久久久久久久久| 久久久伊人日本| 日本妇女一区| 手机看片福利日韩| 中文字幕中文字幕一区二区| 国产又粗又大又爽视频| 欧美插天视频在线播放| 97久久精品| 99爱视频在线| 国产性天天综合网| 国产又黄又猛又爽| 久久欧美在线电影| 免费观看不卡av| 亚洲欧美国产中文| 一区二区高清视频在线观看| 日韩中文字幕综合| 国产mv免费观看入口亚洲| 久久亚洲国产| 久久久久久久久久久久国产精品| 五月综合激情婷婷六月色窝| 国产在线高清| 51午夜精品| 免费精品视频| 麻豆一区在线观看| 欧美不卡在线视频| 都市激情亚洲综合| 一级特黄妇女高潮| 99国内精品久久| 中文字幕免费在线看| 久久久久久com| 九九亚洲精品| 亚洲精品久久久久久| 日韩欧美在线视频日韩欧美在线视频| av网站在线播放| 国内一区二区三区在线视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 91视频免费在线看| 亚洲人成电影网| 精品中文字幕一区二区三区四区| 成人中文字幕在线播放| 国产精品理伦片| 色中色在线视频| 亚洲字幕在线观看| 日韩精品三区四区| 精品无码人妻一区二区三区品 | 久久久99爱| 国产九色精品成人porny| 日本视频免费观看| 欧美精品激情在线| 9999国产精品| 日本少妇xxxxx|