欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

sql基本概念與語法(摘自w3school)

系統 1713 0

一、SQL?DML? 和? DDL

可以把? SQL? 分為兩個部分:數據操作語言? (DML)? 和?數據定義語言? (DDL) SQL?( 結構化查詢語言 ) 是用于執行查詢的語法。但是? SQL? 語言也包含用于更新、插入和刪除記錄的語法。

查詢和更新指令構成了? SQL? 的? DML? 部分:

  • SELECT?-? 從數據庫表中獲取數據
  • UPDATE?-? 更新數據庫表中的數據
  • DELETE?-? 從數據庫表中刪除數據
  • INSERT?INTO?-? 向數據庫表中插入數據

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

SQL? 中最重要的? DDL? 語句 :

  • CREATE?DATABASE?-? 創建新數據庫
  • ALTER?DATABASE?-? 修改數據庫
  • CREATE?TABLE?-? 創建新表
  • ALTER?TABLE?-? 變更(改變)數據庫表
  • DROP?TABLE?-? 刪除表
  • CREATE?INDEX?-? 創建索引(搜索鍵)
  • DROP?INDEX?-? 刪除索引

?

二、 select 語句

SELECT? 列名稱? FROM? 表名稱 ???????????????????????????--* 表示所有

SELECT?DISTINCT? 列名稱? FROM? 表名稱 ???????????????-- 去掉重復

?

三、 where 子句

SELECT? 列名稱? FROM? 表名稱? WHERE? 列?運算符?值

下面的運算符可在? WHERE? 子句中使用:

操作符

描述

=

等于

<>

不等于

>

大于

<

小于

>=

大于等于

<=

小于等于

BETWEEN

在某個范圍內

LIKE

搜索某種模式

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

?

四、 oderby? 子句

ORDER?BY? 語句用于對結果集進行排序。

DESC?降序??ASC? 升序

?

五、insert 語句

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

?

六、update 語句

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

?

七、delete 語句

DELETE?FROM? 表名稱? WHERE? 列名稱? =?

?

八、Top 子句

SELECT?TOP?number|percent?column_name(s)

FROM?table_name

?

九、like 操作符

SELECT?column_name(s)

FROM?table_name

WHERE?column_name?LIKE?pattern

SQL? 通配符必須與? LIKE? 運算符一起使用。

在? SQL? 中,可使用以下通配符:

通配符

描述

%

替代一個或多個字符

_

僅替代一個字符

[charlist]

字符列中的任何單一字符

[^charlist]

或者

[!charlist]

不在字符列中的任何單一字符

?

十、in? 操作符

SELECT?column_name(s)

FROM?table_name

WHERE?column_name?IN?(value1,value2,...)

?

十一、between? 操作符

SELECT?column_name(s)

FROM?table_name

WHERE?column_name

BETWEEN?value1?AND?value2

如需使用上面的例子顯示范圍之外的人,請使用? NOT? 操作符

?

十二、Join

  • JOIN:? 如果表中有至少一個匹配,則返回行
  • LEFT?JOIN:? 即使右表中沒有匹配,也從左表返回所有的行
  • RIGHT?JOIN:? 即使左表中沒有匹配,也從右表返回所有的行
  • FULL?JOIN:? 只要其中一個表中存在匹配,就返回行

SELECT?Persons.LastName,?Persons.FirstName,?Orders.OrderNo

FROM?Persons,?Orders

WHERE?Persons.Id_P?=?Orders.Id_P

?

十三、inner?join

SELECT?column_name(s)

FROM?table_name1

INNER?JOIN?table_name2?

ON?table_name1.column_name=table_name2.column_name

注釋:INNER?JOIN? 與? JOIN? 是相同的。

?

十四、 left?join

SELECT?column_name(s)

FROM?table_name1

LEFT?JOIN?table_name2?

ON?table_name1.column_name=table_name2.column_name

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

"Persons"? 表:

Id_P

LastName

FirstName

Address

City

1

Adams

John

Oxford?Street

London

2

Bush

George

Fifth?Avenue

New?York

3

Carter

Thomas

Changan?Street

Beijing

?

"Orders"? 表:

Id_O

OrderNo

Id_P

1

77895

3

2

44678

3

3

22456

1

4

24562

1

5

34764

65

左連接( LEFT?JOIN )實例

現在,我們希望列出所有的人,以及他們的定購? -? 如果有的話。

您可以使用下面的? SELECT? 語句:

SELECT?Persons.LastName,?Persons.FirstName,?Orders.OrderNo

FROM?Persons

LEFT?JOIN?Orders

ON?Persons.Id_P=Orders.Id_O

ORDER?BY?Persons.LastName

結果集:

LastName

FirstName

OrderNo

Adams

John

22456

Adams

John

24562

Carter

Thomas

77895

Carter

Thomas

44678

Bush

George

?

LEFT?JOIN? 關鍵字會從左表? (Persons)? 那里返回所有的行,即使在右表? (Orders)? 中沒有匹配的行。

?

十五、full?join

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

"Persons"? 表:

Id_P

LastName

FirstName

Address

City

1

Adams

John

Oxford?Street

London

2

Bush

George

Fifth?Avenue

New?York

3

Carter

Thomas

Changan?Street

Beijing

"Orders"? 表:

Id_O

OrderNo

Id_P

1

77895

3

2

44678

3

3

22456

1

4

24562

1

5

34764

65

全連接( FULL?JOIN )實例

現在,我們希望列出所有的人,以及他們的定單,以及所有的定單,以及定購它們的人。

您可以使用下面的? SELECT? 語句:

SELECT?Persons.LastName,?Persons.FirstName,?Orders.OrderNo

FROM?Persons

FULL?JOIN?Orders

ON?Persons.Id_P=Orders.Id_P

ORDER?BY?Persons.LastName

結果集:

LastName

FirstName

OrderNo

Adams

John

22456

Adams

John

24562

Carter

Thomas

77895

Carter

Thomas

44678

Bush

George

?

?

?

34764

FULL?JOIN? 關鍵字會從左表? (Persons)? 和右表? (Orders)? 那里返回所有的行。如果? "Persons"? 中的行在表? "Orders"? 中沒有匹配,或者如果? "Orders"? 中的行在表? "Persons"? 中沒有匹配,這些行同樣會列出。

十七、Union 操作符

SQL?UNION? 語法

SELECT?column_name(s)?FROM?table_name1

UNION

SELECT?column_name(s)?FROM?table_name2

注釋:默認地, UNION? 操作符選取不同的值。如果允許重復的值,請使用? UNION?ALL

SQL?UNION?ALL? 語法

SELECT?column_name(s)?FROM?table_name1

UNION?ALL

SELECT?column_name(s)?FROM?table_name2

另外, UNION? 結果集中的列名總是等于? UNION? 中第一個? SELECT? 語句中的列名。

下面的例子中使用的原始表:

Employees_China:

E_ID

E_Name

01

Zhang,?Hua

02

Wang,?Wei

03

Carter,?Thomas

04

Yang,?Ming

Employees_USA:

E_ID

E_Name

01

Adams,?John

02

Bush,?George

03

Carter,?Thomas

04

Gates,?Bill

使用? UNION? 命令

實例

列出所有在中國和美國的不同的雇員名:

SELECT?E_Name?FROM?Employees_China

UNION

SELECT?E_Name?FROM?Employees_USA

?

結果

E_Name

Zhang,?Hua

Wang,?Wei

Carter,?Thomas

Yang,?Ming

Adams,?John

Bush,?George

Gates,?Bill

注釋:這個命令無法列出在中國和美國的所有雇員。在上面的例子中,我們有兩個名字相同的雇員,他們當中只有一個人被列出來了。 UNION? 命令只會選取不同的值。

UNION?ALL? 命令和? UNION? 命令幾乎是等效的,不過? UNION?ALL? 命令會列出所有的值。

實例:

列出在中國和美國的所有的雇員:

SELECT?E_Name?FROM?Employees_China

UNION?ALL

SELECT?E_Name?FROM?Employees_USA

結果

E_Name

Zhang,?Hua

Wang,?Wei

Carter,?Thomas

Yang,?Ming

Adams,?John

Bush,?George

Carter,?Thomas

Gates,?Bill

?

十八、select?into? 語句

SELECT?INTO? 語句從一個表中選取數據,然后把數據插入另一個表中。

SELECT?INTO? 語句常用于創建表的備份復件或者用于對記錄進行存檔。

您可以把所有的列插入新表:

SELECT?*

INTO?new_table_name?[IN?externaldatabase]?

FROM?old_tablename

?

或者只把希望的列插入新表:

SELECT?column_name(s)

INTO?new_table_name?[IN?externaldatabase]?

FROM?old_tablename

?

十九、create?table

數據類型( data_type )規定了列可容納何種數據類型。下面的表格包含了 SQL 中最常用的數據類型:

數據類型

描述

?integer(size)

?int(size)

?smallint(size)

?tinyint(size)

?

僅容納整數。在括號內規定數字的最大位數。

?decimal(size,d)

?numeric(size,d)

?

容納帶有小數的數字。

"size"? 規定數字的最大位數。 "d"? 規定小數點右側的最大位數。

char(size)

容納固定長度的字符串(可容納字母、數字以及特殊字符)。

在括號中規定字符串的長度。

varchar(size)

容納可變長度的字符串(可容納字母、數字以及特殊的字符)。

在括號中規定字符串的最大長度。

date(yyyymmdd)

容納日期。

?

二十、 sql? 約束

  • NOT?NULL
  • UNIQUE
  • PRIMARY?KEY
  • FOREIGN?KEY
  • CHECK
  • DEFAULT

二十一、 foreign?key

FOREIGN?KEY? 約束用于預防破壞表之間連接的動作。

FOREIGN?KEY? 約束也能防止非法數據插入外鍵列,因為它必須是它指向的那個表中的值之一

CREATE?TABLE?Orders

(

O_Id?int?NOT?NULL?PRIMARY?KEY,

OrderNo?int?NOT?NULL,

Id_P?int?FOREIGN?KEY?REFERENCES?Persons(Id_P)

)

二十二、 check? 約束

如果對單個列定義? CHECK? 約束,那么該列只允許特定的值。

如果對一個表定義? CHECK? 約束,那么此約束會在特定的列中對值進行限制。

二十三、 default? 約束

CREATE?TABLE?Persons

(

Id_P?int?NOT?NULL,

LastName?varchar(255)?NOT?NULL,

FirstName?varchar(255),

Address?varchar(255),

City?varchar(255)?DEFAULT?'Sandnes'

)

?

二十四、 create?index? 索引

您可以在表中創建索引,以便更加快速高效地查詢數據。

用戶無法看到索引,它們只能被用來加速搜索 / 查詢。

CREATE?INDEX?PersonIndex

ON?Person?(LastName?DESC)

?

二十五、 alter

ALTER?TABLE?table_name

ADD?column_name?datatype

ALTER?TABLE?table_name?

DROP?COLUMN?column_name

ALTER?TABLE?table_name

ALTER?COLUMN?column_name?datatype

?

二十六、AUTO?INCREMENT? 字段

默認地, AUTO_INCREMENT? 的開始值是? 1 ,每條新記錄遞增? 1

ALTER?TABLE?Persons?AUTO_INCREMENT=100

?

二十七、 create?view

CREATE?VIEW?view_name?AS

SELECT?column_name(s)

FROM?table_name

WHERE?condition

?

SQL? 更新視圖

您可以使用下面的語法來更新視圖:

SQL?CREATE?OR?REPLACE?VIEW?Syntax

CREATE?OR?REPLACE?VIEW?view_name?AS

SELECT?column_name(s)

FROM?table_name

WHERE?condition

SQL? 撤銷視圖

您可以通過? DROP?VIEW? 命令來刪除視圖。

SQL?DROP?VIEW?Syntax

DROP?VIEW?view_name

?

二十八、 sql? 日期

MySQL?Date? 函數

下面的表格列出了? MySQL? 中最重要的內建日期函數:

函數

描述

NOW()

返回當前的日期和時間

CURDATE()

返回當前的日期

CURTIME()

返回當前的時間

DATE()

提取日期或日期 / 時間表達式的日期部分

EXTRACT()

返回日期 / 時間按的單獨部分

DATE_ADD()

給日期添加指定的時間間隔

DATE_SUB()

從日期減去指定的時間間隔

DATEDIFF()

返回兩個日期之間的天數

DATE_FORMAT()

用不同的格式顯示日期 / 時間

?

SQL?Server?Date? 函數

下面的表格列出了? SQL?Server? 中最重要的內建日期函數:

函數

描述

GETDATE()

返回當前日期和時間

DATEPART()

返回日期 / 時間的單獨部分

DATEADD()

在日期中添加或減去指定的時間間隔

DATEDIFF()

返回兩個日期之間的時間

CONVERT()

用不同的格式顯示日期 / 時間

SQL?Date? 數據類型

MySQL? 使用下列數據類型在數據庫中存儲日期或日期 / 時間值:

  • DATE?-? 格式? YYYY-MM-DD
  • DATETIME?-? 格式 :?YYYY-MM-DD?HH:MM:SS
  • TIMESTAMP?-? 格式 :?YYYY-MM-DD?HH:MM:SS
  • YEAR?-? 格式? YYYY? 或? YY

SQL?Server? 使用下列數據類型在數據庫中存儲日期或日期 / 時間值:

  • DATE?-? 格式? YYYY-MM-DD
  • DATETIME?-? 格式 :?YYYY-MM-DD?HH:MM:SS
  • SMALLDATETIME?-? 格式 :?YYYY-MM-DD?HH:MM:SS
  • TIMESTAMP?-? 格式 :? 唯一的數字

二十九、數據類型

不同數據的區別??( *********** ************

?

三十、函數

在? SQL?Server? 中的合計函數

函數

描述

AVG(column)

返回某列的平均值

BINARY_CHECKSUM

?

CHECKSUM

?

CHECKSUM_AGG

?

COUNT(column)

返回某列的行數(不包括 NULL 值)

COUNT(*)

返回被選行數

COUNT(DISTINCT?column)

返回相異結果的數目

FIRST(column)

返回在指定的域中第一個記錄的值( SQLServer2000? 不支持)

LAST(column)

返回在指定的域中最后一個記錄的值( SQLServer2000? 不支持)

MAX(column)

返回某列的最高值

MIN(column)

返回某列的最低值

STDEV(column)

?

STDEVP(column)

?

SUM(column)

返回某列的總和

VAR(column)

?

VARP(column)

?

?

sql基本概念與語法(摘自w3school)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 香蕉综合视频 | 日韩一区二区三区视频 | 精品一区二区三区在线视频 | 国产人妻互换一区二区水牛影视 | 日韩国产一区二区 | 久久综合九色综合桃花 | 欧美视频在线免费看 | 精品一区二区三区在线视频 | 国产精品免费久久久免费 | 国产日本欧美在线观看 | 国产福利视频在线 | 国产精品久久久久久一级毛片 | 一区国产精品 | 免费看黄的视频网站 | 日韩在线免费视频 | 日韩精品久久久久影院 | 亚洲成人激情在线 | 99久在线视频 | 亚洲 欧美 另类 综合 偷拍 | 成人国产精品视频 | 91视频在线观看免费 | 欧美一级夜夜爽www 美女污视频网站 | 午夜影库 | 99在线精品免费视频九九视 | 久久久一区二区 | 精品伊人久久久 | 亚洲欧美国产精品久久久久久久 | 日韩不卡免费视频 | 成人无码髙潮喷水A片 | 日韩一级片在线免费观看 | 91婷婷| 成人免费久久精品国产片久久影院 | 天天操夜夜操夜夜操 | 欧美第八页 | 一区二区三区国产好 | 亚洲影视在线观看 | 人人爽视频| 杏导航aⅴ福利网站 | 亚洲黄色高清视频 | 欧美手机在线观看 | 亚洲欧美无人区乱码 |