第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
慕課專欄

目錄

索引目錄

10+年DBA老司機(jī)帶你輕松玩轉(zhuǎn) SQL

原價(jià) ¥ 48.00

立即訂閱
03 初探數(shù)據(jù)庫-簡單查詢語句的使用
更新時(shí)間:2020-08-19 09:42:47
耐心是一切聰明才智的基礎(chǔ)。——柏拉圖

在上一節(jié),我們已經(jīng)對(duì)數(shù)據(jù)庫、表和SQL語句的概念有了基本的了解,本節(jié)進(jìn)一步和大家一起學(xué)習(xí)如何編寫和執(zhí)行查詢語句。

3.1 客戶端工具

訪問數(shù)據(jù)庫(包括執(zhí)行查詢語句)需要借助工具,就像從井里打水需要繩子和水桶一樣,在安裝好數(shù)據(jù)庫之后,數(shù)據(jù)庫服務(wù)器都自帶命令行工具,比如 Oracle 的 Sql*plus ,盡管這些命令行工具功能很強(qiáng)大,基本滿足了我們操作數(shù)據(jù)庫的需求,但為了更方便更友好的訪問數(shù)據(jù)庫,最好還是使用客戶端工具,值得推薦的幾款客戶端工具有:連接訪問 Oracle 的 PL/SQL Developer,連接訪問 SQLServer 的SQL Server Management Studio, 而 Navicat Premium 功能比較豐富,可以連接 Oracle、MySQL、SQLServer、PostgreSQL 和 SQLlite 等多種數(shù)據(jù)庫。

Navicat Premium 的官網(wǎng)地址為:http://www.navicat.com.cn,根據(jù)自己的計(jì)算機(jī)環(huán)境下載對(duì)應(yīng)的軟件版本(32位或64位),下載軟件后雙擊按照提示一步步的安裝即可。

3.2 什么是查詢語句

查詢語句(帶 Select 關(guān)鍵字)也叫檢索語句,也可以更直觀的叫它 Select 語句,當(dāng)我們想從數(shù)據(jù)庫中獲取一個(gè)或多個(gè)字段的結(jié)果集時(shí),就需要使用到查詢語句,查詢語句是我們平時(shí)使用最多的 SQL 語句,簡單的查詢語句語法為:

Select 字段  From  表名  

Select 語句大小寫不敏感,就是說使用 SELECT STU_NAME FROM STUDENTselect stu_name from student 都能執(zhí)行成功且結(jié)果相同。從以上查詢語句可以發(fā)現(xiàn),關(guān)鍵字與字段表名之間需要保留空格,空格可以是一個(gè)或多個(gè),如果沒有空格會(huì)導(dǎo)致執(zhí)行錯(cuò)誤。

值得說明的是,由于存在很多種數(shù)據(jù)庫產(chǎn)品,而且不同數(shù)據(jù)庫管理系統(tǒng)支持不同的 SQL 語法,但為了與 ANSI 標(biāo)準(zhǔn)相兼容,它們都以相似的方式支持一些關(guān)鍵字,比如:Select,Update,Insert,Delete,Drop,Where 等等。

ANSI是美國國家標(biāo)準(zhǔn)化組織的簡稱,它是一個(gè)核準(zhǔn)多種行業(yè)標(biāo)準(zhǔn)的組織,該組織制定的SQL標(biāo)準(zhǔn)被稱為ANSI SQL。1987年,國際標(biāo)準(zhǔn)化組織把ANSI SQL作為國際標(biāo)準(zhǔn),ANSI SQL標(biāo)準(zhǔn)先后在1992、1999進(jìn)行了修訂,目前的標(biāo)準(zhǔn)為2011年修訂的SQL-2011。

3.3 檢索多個(gè)字段

上面例子中查詢語句是用來查詢學(xué)生表 ( student ) 中的姓名字段 ( stu_name ) ,如果希望同時(shí)返回學(xué)生表中的兩個(gè)或多個(gè)字段,就需要這樣來編寫 SQL:

select stu_name,sid,age from student

當(dāng)然,有時(shí)我們希望返回學(xué)生表中的所有字段,可以這樣來編寫 SQL:

select  id,sid,stu_name,gender,age from student

當(dāng)一個(gè)表中的字段很多時(shí),比如十多個(gè)甚至幾十個(gè)字段,我們將所有字段都完全拼寫正確也不是件容易的事,數(shù)據(jù)庫開發(fā)者考慮到我們會(huì)遇到這種場景,所以查詢表中所有字段也可以這樣來編寫 SQL:

select  *  from student

帶上 * 號(hào)的查詢語句雖然給我們提供了很大的方便,但不建議經(jīng)常使用,就像我們從箱子里取出乒乓球,一次取出所有的球肯定會(huì)比取出一只球要費(fèi)力的多。

盡管數(shù)據(jù)庫系統(tǒng)功能很強(qiáng)大,獲取所有字段仍會(huì)消耗較多的資源,除非業(yè)務(wù)需要,盡量一次只取出必要的字段,并將字段名寫在 Select 關(guān)鍵字后面。

3.4 執(zhí)行多條 SQL

當(dāng)多個(gè) SQL 語句放在一起執(zhí)行時(shí),SQL 結(jié)束時(shí)是否加上英文分號(hào); 在不同數(shù)據(jù)庫系統(tǒng)中要求是不同的。在 SQLServer 中是可以不加的,數(shù)據(jù)庫可以自動(dòng)識(shí)別一條 SQL 語句在哪里結(jié)束,但在 PostgreSQL,MySQL 和 Oracle 是必須要加分號(hào)的。

為了增加 SQL 的可移植性,養(yǎng)成良好的編程習(xí)慣,建議每條 SQL 后面都加上分號(hào),做到“有始有終”。

在 Oracle 客戶端上執(zhí)行多條 SQL 的例子:

圖片描述

最后那條 SQL 語句在這四種數(shù)據(jù)庫(SQLServer、PostgreSQL,MySQL 和 Oracle)中都是可以不加分號(hào)的。

3.5 SQL 語句的注釋

為了增加 SQL 語句的可讀性,我們經(jīng)常在 SQL 語句前面添加注釋, ANSI 標(biāo)準(zhǔn)的注釋符 -- 用于單行注釋,格式為:--注釋內(nèi)容

--查詢課程名和學(xué)分  

select  cname,credit from course ;  

多行注釋使用/* */\* 用于注釋文字的開頭,*/用于注釋文字的結(jié)尾。

/*第一條SQL查詢課程編號(hào),課程名和學(xué)分
  第二條SQL查選課學(xué)生編號(hào)和課程編號(hào)
*/
select  cid,cname,credit from course ;
select  cid,sid from elective ;

3.6 別名

與好朋友之間經(jīng)常起綽號(hào)一樣,我們也可以給字段或表名起別名,有時(shí)我們在檢索數(shù)據(jù)時(shí)候,認(rèn)為返回的字段名不夠見文知意,這時(shí),就可以將字段名重新命名,即起一個(gè)別名。來看個(gè)例子:

select  a.cname  as  ‘Course_Name’   from course a ;

在上面的 SQL 語句中,表 course 的別名是 a ,字段 cname 被重新定義別名為 Course_Name。

字段的別名可以是中文也可以是字符串,來看個(gè)例子:

select  cname  as  ‘課程名’   from course ;

也可以對(duì)函數(shù)處理后的字段進(jìn)行重新命名:

select count(cid)  AS ‘總課程數(shù)’ from course ;

盡管別名在 SQL 中可有可無,但為了增加可讀性,還是建議為表設(shè)置別名,

3.7 SQL 執(zhí)行順序

在我們編寫 SQL 語句時(shí)一般是按照 select、from 、 where 、 group by、having 、order by 等關(guān)鍵字的順序,但數(shù)據(jù)庫在執(zhí)行 SQL 的時(shí)候,并不是按照這個(gè)順序執(zhí)行的,以查詢年齡大于 29 歲學(xué)生為例,讓我們進(jìn)一步了解數(shù)據(jù)庫執(zhí)行 SQL 語句的順序。

select sid,stu_name,age,gender from  student where  age > 29;

數(shù)據(jù)庫首先要知道從哪張表中獲取數(shù)據(jù),即首先執(zhí)行 from 關(guān)鍵字,得知從 Student(學(xué)生表) 獲取信息后,進(jìn)一步查看我們希望得到哪些數(shù)據(jù),這時(shí)就要執(zhí)行 where 關(guān)鍵字,從而過濾掉年齡小于等于 29 歲的記錄數(shù)據(jù),最后數(shù)據(jù)庫從 select 關(guān)鍵字那里獲取我們最終需要哪些字段的信息。

以上就是數(shù)據(jù)庫執(zhí)行簡單 SQL 的大概順序,是否與我們平時(shí)從 Excel 獲取數(shù)據(jù)的操作順序類似(打開Excel–>找到Sheet->篩選數(shù)據(jù)–>獲取有效列)。然而數(shù)據(jù)庫實(shí)際執(zhí)行過程中,比這要復(fù)雜的多,我們在后面章節(jié)中會(huì)進(jìn)一步闡述。

3.8 總結(jié)

通過本小節(jié),我們了解了簡單SQL的編寫和執(zhí)行,對(duì)SQL語句中一些專業(yè)術(shù)語也有了初步的印象。小節(jié)最后對(duì)SQL的執(zhí)行順序進(jìn)行了說明,可能對(duì)于剛開始學(xué)習(xí)SQL的讀者對(duì)SQL執(zhí)行順序還不能馬上理解,但這并不影響下面章節(jié)的學(xué)習(xí),可以暫時(shí)忽略該部分內(nèi)容,繼續(xù)下一小節(jié)的學(xué)習(xí)。

}
立即訂閱 ¥ 48.00

你正在閱讀課程試讀內(nèi)容,訂閱后解鎖課程全部內(nèi)容

千學(xué)不如一看,千看不如一練

手機(jī)
閱讀

掃一掃 手機(jī)閱讀

10+年DBA老司機(jī)帶你輕松玩轉(zhuǎn) SQL
立即訂閱 ¥ 48.00

舉報(bào)

0/150
提交
取消