久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

SQL 初級(jí)入門教程

 靜幻堂 2018-08-26
一個(gè)程序員的成長過程 2017-12-15 14:08:06

SQL 是用于訪問和處理數(shù)據(jù)庫的標(biāo)準(zhǔn)的計(jì)算機(jī)語言。

SQL 初級(jí)入門教程

在本教程中,,您將學(xué)到如何使用 SQL 訪問和處理數(shù)據(jù)系統(tǒng)中的數(shù)據(jù),,這類數(shù)據(jù)庫包括:Oracle, Sybase, SQL Server, DB2, Access 等等。

SQL 簡介

什么是 SQL,?

  • SQL 指結(jié)構(gòu)化查詢語言

  • SQL 使我們有能力訪問數(shù)據(jù)庫

  • SQL 是一種 ANSI 的標(biāo)準(zhǔn)計(jì)算機(jī)語言

編者注:ANSI,,美國國家標(biāo)準(zhǔn)化組織

SQL 能做什么?

  • SQL 面向數(shù)據(jù)庫執(zhí)行查詢

  • SQL 可從數(shù)據(jù)庫取回?cái)?shù)據(jù)

  • SQL 可在數(shù)據(jù)庫中插入新的記錄

  • SQL 可更新數(shù)據(jù)庫中的數(shù)據(jù)

  • SQL 可從數(shù)據(jù)庫刪除記錄

  • SQL 可創(chuàng)建新數(shù)據(jù)庫

  • SQL 可在數(shù)據(jù)庫中創(chuàng)建新表

  • SQL 可在數(shù)據(jù)庫中創(chuàng)建存儲(chǔ)過程

  • SQL 可在數(shù)據(jù)庫中創(chuàng)建視圖

  • SQL 可以設(shè)置表,、存儲(chǔ)過程和視圖的權(quán)限

SQL 是一種標(biāo)準(zhǔn) - 但是...

SQL 是一門 ANSI 的標(biāo)準(zhǔn)計(jì)算機(jī)語言,,用來訪問和操作數(shù)據(jù)庫系統(tǒng)。SQL 語句用于取回和更新數(shù)據(jù)庫中的數(shù)據(jù),。SQL 可與數(shù)據(jù)庫程序協(xié)同工作,,比如 MS Access、DB2,、Informix,、MS SQL Server、Oracle,、Sybase 以及其他數(shù)據(jù)庫系統(tǒng),。

不幸地是,存在著很多不同版本的 SQL 語言,,但是為了與 ANSI 標(biāo)準(zhǔn)相兼容,,它們必須以相似的方式共同地來支持一些主要的關(guān)鍵詞(比如 SELECT,、UPDATE、DELETE,、INSERT,、WHERE 等等)。

注釋:除了 SQL 標(biāo)準(zhǔn)之外,,大部分 SQL 數(shù)據(jù)庫程序都擁有它們自己的私有擴(kuò)展,!

在您的網(wǎng)站中使用 SQL

要?jiǎng)?chuàng)建發(fā)布數(shù)據(jù)庫中數(shù)據(jù)的網(wǎng)站,您需要以下要素:

  • RDBMS 數(shù)據(jù)庫程序(比如 MS Access, SQL Server, MySQL)

  • 服務(wù)器端腳本語言(比如 PHP 或 ASP)

  • SQL

  • HTML / CSS

RDBMS

RDBMS 指的是關(guān)系型數(shù)據(jù)庫管理系統(tǒng),。

RDBMS 是 SQL 的基礎(chǔ),,同樣也是所有現(xiàn)代數(shù)據(jù)庫系統(tǒng)的基礎(chǔ),比如 MS SQL Server, IBM DB2, Oracle, MySQL 以及 Microsoft Access,。

RDBMS 中的數(shù)據(jù)存儲(chǔ)在被稱為表(tables)的數(shù)據(jù)庫對象中,。

表是相關(guān)的數(shù)據(jù)項(xiàng)的集合,它由列和行組成,。

SQL 語法

數(shù)據(jù)庫表

一個(gè)數(shù)據(jù)庫通常包含一個(gè)或多個(gè)表,。每個(gè)表由一個(gè)名字標(biāo)識(shí)(例如“客戶”或者“訂單”)。表包含帶有數(shù)據(jù)的記錄(行),。

下面的例子是一個(gè)名為 "Persons" 的表:

IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York
3CarterThomasChangan StreetBeijing

上面的表包含三條記錄(每一條對應(yīng)一個(gè)人)和五個(gè)列(Id,、姓、名,、地址和城市),。

SQL 語句

您需要在數(shù)據(jù)庫上執(zhí)行的大部分工作都由 SQL 語句完成。

下面的語句從表中選取 LastName 列的數(shù)據(jù):

SELECT LastName FROM Persons

結(jié)果集類似這樣:

LastName
Adams
Bush
Carter

在本教程中,,我們將為您講解各種不同的 SQL 語句,。

重要事項(xiàng)

一定要記住,SQL 對大小寫不敏感,!

SQL 語句后面的分號(hào),?

某些數(shù)據(jù)庫系統(tǒng)要求在每條 SQL 命令的末端使用分號(hào)。在我們的教程中不使用分號(hào),。

分號(hào)是在數(shù)據(jù)庫系統(tǒng)中分隔每條 SQL 語句的標(biāo)準(zhǔn)方法,,這樣就可以在對服務(wù)器的相同請求中執(zhí)行一條以上的語句。

如果您使用的是 MS Access 和 SQL Server 2000,,則不必在每條 SQL 語句之后使用分號(hào),,不過某些數(shù)據(jù)庫軟件要求必須使用分號(hào)。

SQL DML 和 DDL

可以把 SQL 分為兩個(gè)部分:數(shù)據(jù)操作語言 (DML) 和 數(shù)據(jù)定義語言 (DDL),。

SQL (結(jié)構(gòu)化查詢語言)是用于執(zhí)行查詢的語法,。但是 SQL 語言也包含用于更新、插入和刪除記錄的語法,。

查詢和更新指令構(gòu)成了 SQL 的 DML 部分:

  • SELECT - 從數(shù)據(jù)庫表中獲取數(shù)據(jù)

  • UPDATE - 更新數(shù)據(jù)庫表中的數(shù)據(jù)

  • DELETE - 從數(shù)據(jù)庫表中刪除數(shù)據(jù)

  • INSERT INTO - 向數(shù)據(jù)庫表中插入數(shù)據(jù)

SQL 的數(shù)據(jù)定義語言 (DDL) 部分使我們有能力創(chuàng)建或刪除表格,。我們也可以定義索引(鍵),,規(guī)定表之間的鏈接,以及施加表間的約束,。

SQL 中最重要的 DDL 語句:

  • CREATE DATABASE - 創(chuàng)建新數(shù)據(jù)庫

  • ALTER DATABASE - 修改數(shù)據(jù)庫

  • CREATE TABLE - 創(chuàng)建新表

  • ALTER TABLE - 變更(改變)數(shù)據(jù)庫表

  • DROP TABLE - 刪除表

  • CREATE INDEX - 創(chuàng)建索引(搜索鍵)

  • DROP INDEX - 刪除索引

SQL SELECT 語句

本章講解 SELECT 和 SELECT * 語句,。

SQL SELECT 語句

SELECT 語句用于從表中選取數(shù)據(jù)。

結(jié)果被存儲(chǔ)在一個(gè)結(jié)果表中(稱為結(jié)果集),。

SQL SELECT 語法

SELECT 列名稱 FROM 表名稱

以及:

SELECT * FROM 表名稱

注釋:SQL 語句對大小寫不敏感,。SELECT 等效于 select。

SQL SELECT 實(shí)例

如需獲取名為 "LastName" 和 "FirstName" 的列的內(nèi)容(從名為 "Persons" 的數(shù)據(jù)庫表),,請使用類似這樣的 SELECT 語句:

SELECT LastName,FirstName FROM Persons

"Persons" 表:

IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York
3CarterThomasChangan StreetBeijing

結(jié)果:

LastNameFirstName
AdamsJohn
BushGeorge
CarterThomas

SQL SELECT * 實(shí)例

現(xiàn)在我們希望從 "Persons" 表中選取所有的列,。

請使用符號(hào) * 取代列的名稱,就像這樣:

SELECT * FROM Persons

提示:星號(hào)(*)是選取所有列的快捷方式,。

結(jié)果:

IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York
3CarterThomasChangan StreetBeijing

在結(jié)果集(result-set)中導(dǎo)航

由 SQL 查詢程序獲得的結(jié)果被存放在一個(gè)結(jié)果集中,。大多數(shù)數(shù)據(jù)庫軟件系統(tǒng)都允許使用編程函數(shù)在結(jié)果集中進(jìn)行導(dǎo)航,比如:Move-To-First-Record,、Get-Record-Content、Move-To-Next-Record 等等,。

SQL SELECT DISTINCT 語句

本章講解 SELECT DISTINCT 語句,。

SQL SELECT DISTINCT 語句

在表中,可能會(huì)包含重復(fù)值,。這并不成問題,,不過,有時(shí)您也許希望僅僅列出不同(distinct)的值,。

關(guān)鍵詞 DISTINCT 用于返回唯一不同的值,。

語法:

SELECT DISTINCT 列名稱 FROM 表名稱

使用 DISTINCT 關(guān)鍵詞

如果要從 "Company" 列中選取所有的值,我們需要使用 SELECT 語句:

SELECT Company FROM Orders

"Orders"表:

CompanyOrderNumber
IBM3532
W3School2356
Apple4698
W3School6953

結(jié)果:

Company
IBM
W3School
Apple
W3School

請注意,,在結(jié)果集中,,W3School 被列出了兩次。

如需從 Company" 列中僅選取唯一不同的值,,我們需要使用 SELECT DISTINCT 語句:

SELECT DISTINCT Company FROM Orders

結(jié)果:

Company
IBM
W3School
Apple

現(xiàn)在,,在結(jié)果集中,"W3School" 僅被列出了一次,。

SQL WHERE 子句

WHERE 子句用于規(guī)定選擇的標(biāo)準(zhǔn),。

WHERE 子句

如需有條件地從表中選取數(shù)據(jù),可將 WHERE 子句添加到 SELECT 語句,。

語法

SELECT 列名稱 FROM 表名稱 WHERE 列 運(yùn)算符 值

下面的運(yùn)算符可在 WHERE 子句中使用:

操作符描述
=等于
<>不等于
>大于
<小于
>=大于等于
<=小于等于
BETWEEN在某個(gè)范圍內(nèi)
LIKE搜索某種模式

注釋:在某些版本的 SQL 中,,操作符 <> 可以寫為 !=。

使用 WHERE 子句

如果只希望選取居住在城市 "Beijing" 中的人,,我們需要向 SELECT 語句添加 WHERE 子句:

SELECT * FROM Persons WHERE City='Beijing'

"Persons" 表

LastNameFirstNameAddressCityYear
AdamsJohnOxford StreetLondon1970
BushGeorgeFifth AvenueNew York1975
CarterThomasChangan StreetBeijing1980
GatesBillXuanwumen 10Beijing1985

結(jié)果:

LastNameFirstNameAddressCityYear
CarterThomasChangan StreetBeijing1980
GatesBillXuanwumen 10Beijing1985

引號(hào)的使用

請注意,,我們在例子中的條件值周圍使用的是單引號(hào),。

SQL 使用單引號(hào)來環(huán)繞文本值(大部分?jǐn)?shù)據(jù)庫系統(tǒng)也接受雙引號(hào))。如果是數(shù)值,,請不要使用引號(hào),。

文本值:

這是正確的:SELECT * FROM Persons WHERE FirstName='Bush'這是錯(cuò)誤的:SELECT * FROM Persons WHERE FirstName=Bush

數(shù)值:

這是正確的:SELECT * FROM Persons WHERE Year>1965這是錯(cuò)誤的:SELECT * FROM Persons WHERE Year>'1965'

SQL AND & OR 運(yùn)算符

AND 和 OR 運(yùn)算符用于基于一個(gè)以上的條件對記錄進(jìn)行過濾。

AND 和 OR 運(yùn)算符

AND 和 OR 可在 WHERE 子語句中把兩個(gè)或多個(gè)條件結(jié)合起來,。

如果第一個(gè)條件和第二個(gè)條件都成立,,則 AND 運(yùn)算符顯示一條記錄。

如果第一個(gè)條件和第二個(gè)條件中只要有一個(gè)成立,,則 OR 運(yùn)算符顯示一條記錄,。

原始的表 (用在例子中的):

LastNameFirstNameAddressCity
AdamsJohnOxford StreetLondon
BushGeorgeFifth AvenueNew York
CarterThomasChangan StreetBeijing
CarterWilliamXuanwumen 10Beijing

AND 運(yùn)算符實(shí)例

使用 AND 來顯示所有姓為 "Carter" 并且名為 "Thomas" 的人:

SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'

結(jié)果:

LastNameFirstNameAddressCity
CarterThomasChangan StreetBeijing

OR 運(yùn)算符實(shí)例

使用 OR 來顯示所有姓為 "Carter" 或者名為 "Thomas" 的人:

SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'

結(jié)果:

LastNameFirstNameAddressCity
CarterThomasChangan StreetBeijing
CarterWilliamXuanwumen 10Beijing

結(jié)合 AND 和 OR 運(yùn)算符

我們也可以把 AND 和 OR 結(jié)合起來(使用圓括號(hào)來組成復(fù)雜的表達(dá)式):

SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William')AND LastName='Carter'

結(jié)果:

LastNameFirstNameAddressCity
CarterThomasChangan StreetBeijing
CarterWilliamXuanwumen 10Beijing

SQL ORDER BY 子句

ORDER BY 語句用于對結(jié)果集進(jìn)行排序。

ORDER BY 語句

ORDER BY 語句用于根據(jù)指定的列對結(jié)果集進(jìn)行排序,。

ORDER BY 語句默認(rèn)按照升序?qū)τ涗涍M(jìn)行排序,。

如果您希望按照降序?qū)τ涗涍M(jìn)行排序,可以使用 DESC 關(guān)鍵字,。

原始的表 (用在例子中的):

Orders 表:

CompanyOrderNumber
IBM3532
W3School2356
Apple4698
W3School6953

實(shí)例 1

以字母順序顯示公司名稱:

SELECT Company, OrderNumber FROM Orders ORDER BY Company

結(jié)果:

CompanyOrderNumber
Apple4698
IBM3532
W3School6953
W3School2356

實(shí)例 2

以字母順序顯示公司名稱(Company),,并以數(shù)字順序顯示順序號(hào)(OrderNumber):

SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber

結(jié)果:

CompanyOrderNumber
Apple4698
IBM3532
W3School2356
W3School6953

實(shí)例 3

以逆字母順序顯示公司名稱:

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC

結(jié)果:

CompanyOrderNumber
W3School6953
W3School2356
IBM3532
Apple4698

實(shí)例 4

以逆字母順序顯示公司名稱,并以數(shù)字順序顯示順序號(hào):

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC

結(jié)果:

CompanyOrderNumber
W3School2356
W3School6953
IBM3532
Apple4698

注意:在以上的結(jié)果中有兩個(gè)相等的公司名稱 (W3School),。只有這一次,,在第一列中有相同的值時(shí),第二列是以升序排列的,。如果第一列中有些值為 nulls 時(shí),,情況也是這樣的。

SQL INSERT INTO 語句

INSERT INTO 語句

INSERT INTO 語句用于向表格中插入新的行,。

語法

INSERT INTO 表名稱 VALUES (值1, 值2,....)

我們也可以指定所要插入數(shù)據(jù)的列:

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

插入新的行

"Persons" 表:

LastNameFirstNameAddressCity
CarterThomasChangan StreetBeijing

SQL 語句:

INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')

結(jié)果:

LastNameFirstNameAddressCity
CarterThomasChangan StreetBeijing
GatesBillXuanwumen 10Beijing

在指定的列中插入數(shù)據(jù)

"Persons" 表:

LastNameFirstNameAddressCity
CarterThomasChangan StreetBeijing
GatesBillXuanwumen 10Beijing

SQL 語句:

INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')

結(jié)果:

LastNameFirstNameAddressCity
CarterThomasChangan StreetBeijing
GatesBillXuanwumen 10Beijing
WilsonChamps-Elysees

SQL UPDATE 語句

Update 語句

Update 語句用于修改表中的數(shù)據(jù),。

語法:

UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值

Person:

LastNameFirstNameAddressCity
GatesBillXuanwumen 10Beijing
WilsonChamps-Elysees

更新某一行中的一個(gè)列

我們?yōu)?lastname 是 "Wilson" 的人添加 firstname:

UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'

結(jié)果:

LastNameFirstNameAddressCity
GatesBillXuanwumen 10Beijing
WilsonFredChamps-Elysees

更新某一行中的若干列

我們會(huì)修改地址(address),并添加城市名稱(city):

UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'WHERE LastName = 'Wilson'

結(jié)果:

LastNameFirstNameAddressCity
GatesBillXuanwumen 10Beijing
WilsonFredZhongshan 23Nanjing

SQL DELETE 語句

DELETE 語句

DELETE 語句用于刪除表中的行,。

語法

DELETE FROM 表名稱 WHERE 列名稱 = 值

Person:

LastNameFirstNameAddressCity
GatesBillXuanwumen 10Beijing
WilsonFredZhongshan 23Nanjing

刪除某行

"Fred Wilson" 會(huì)被刪除:

DELETE FROM Person WHERE LastName = 'Wilson'

結(jié)果:

LastNameFirstNameAddressCity
GatesBillXuanwumen 10Beijing

刪除所有行

可以在不刪除表的情況下刪除所有的行,。這意味著表的結(jié)構(gòu)、屬性和索引都是完整的:

DELETE FROM table_name

或者:

DELETE * FROM table_name

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多