SQL基礎總結 20150730

2021-09-07 16:32:44 字數 4587 閱讀 9412

sql 的資料定義語言 (ddl) 部分使我們有能力建立或刪除**。我們也能夠定義索引(鍵)。規定表之間的鏈結,以及施加表間的約束。sql 中最重要的 ddl 語句:

not null 約束強制列不接受 null 值。

not null 約束強制字段始終包括值。這意味著,假設不向字段加入值。就無法插入新記錄或者更新記錄。

unique 約束唯一標識資料庫表中的每條記錄。

unique 和 primary key 約束均為列或列集合提供了唯一性的保證。

primary key 擁有自己主動定義的 unique 約束。

請注意,每乙個表能夠有多個 unique 約束。可是每乙個表僅僅能有乙個 primary key 約束。

primary key 約束唯一標識資料庫表中的每條記錄。

主鍵必須包括唯一的值。

主鍵列不能包括 null 值。

每乙個表都應該有乙個主鍵。而且每乙個表僅僅能有乙個主鍵。

乙個表中的 foreign key 指向還有乙個表中的 primary key。

check 約束用於限制列中的值的範圍。

假設對單個列定義 check 約束,那麼該列僅僅同意特定的值。

假設對乙個表定義 check 約束,那麼此約束會在特定的列中對值進行限制。

default 約束用於向列中插入預設值。

假設沒有規定其它的值。那麼會將預設值加入到全部的新記錄。

update 語句用於改動表中的資料。

update 表名稱 set 列名稱 = 新值 where 列名稱 = 某值
insert into 語句用於向**中插入新的行。

insert into 表名稱 values (值1, 值2,....)
我們也能夠指定所要插入資料的列:

insert into table_name (列1, 列2,...) values (值1, 值2,....)
delete 語句用於刪除表中的行。

delete from 表名稱 where 列名稱 = 值
select 語句用於從表中選取資料。

結果被儲存在乙個結果表中(稱為結果集)。

運算子:可在 where 子句中使用:

操作符描寫敘述=等於

<>

不等大於<

小=大於等於

<=

小於等於

between

在某個範圍內

like

搜尋某種模式

凝視:在某些版本號的 sql 中,操作符 <> 能夠寫為 !=。

and 和 or 可在 where 子語句中把兩個或多個條件結合起來。

假設第乙個條件和第二個條件都成立,則 and 運算子顯示一條記錄。

假設第乙個條件和第二個條件中僅僅要有乙個成立,則 or 運算子顯示一條記錄。

order by 語句用於依據指定的列對結果集進行排序。order by 語句預設依照公升序(asc)對記錄進行排序。

假設您希望依照降序對記錄進行排序,能夠使用 desc keyword。

top 子句用於規定要返回的記錄的數目。對於擁有數千條記錄的大型表來說,top 子句是非常實用的。

凝視:並不是全部的資料庫系統都支援 top 子句。

select top number|percent column_name(s)

from table_name

樣例
select top 5 * from picture;
#查詢50%的記錄
select top 50 persent * from picture;

select column_name(s)

from table_name

limit number

樣例
select *

from persons

limit 5

select column_name(s)

from table_name

where rownum <= number

樣例
select *

from persons

where rownum <= 5

like 操作符用於在 where 子句中搜尋列中的指定模式

在搜尋資料庫中的資料時,sql 萬用字元能夠替代乙個或多個字元。

sql 萬用字元必須與 like 運算子一起使用。

在 sql 中。可使用以下萬用字元:

萬用字元描寫敘述

%替代乙個或多個字元

_僅替代乙個字元

[charlist]

字元列中的不論什麼單一字元

[^charlist]

或者[!charlist]

不在字元列中的不論什麼單一字元

in 操作符同意我們在 where 子句中規定多個值。

select column_name(s)

from table_name

where column_name in (value1,value2,...)

操作符 between ... and 會選取介於兩個值之間的資料範圍。

這些值能夠是數值、文字或者日期。

select column_name(s)

from table_name

where column_name

between value1 and value2

如需以字母順序顯示介於 "adams"(包括)和 "carter"(不包括)之間的人,請使用以下的 sql:

select * from persons

where lastnamebetween'adams'and'carter'

如需使用上面的樣例顯示範圍之外的人,請使用 not 操作符:

select * from persons

where lastnamenotbetween 'adams' and 'carter'

重要事項:不同的資料庫對 between...and 操作符的處理方式是有差異的。某些資料庫會列出介於 "adams" 和 "carter" 之間的人,但不包括 "adams" 和 "carter" ;某些資料庫會列出介於 "adams" 和 "carter" 之間幷包括 "adams" 和 "carter" 的人。而還有一些資料庫會列出介於 "adams" 和 "carter" 之間的人,包括 "adams" 。但不包括 "carter" 。

所以。請檢查你的資料庫是怎樣處理 between....and 操作符的!

通過使用 sql,能夠為列名稱和表名稱指定別名(alias)。

表的 sql alias 語法

select column_name(s)

from table_name

as alias_name

列的 sql alias 語法

select column_name as alias_name

from table_name

alias 例項: 使用表名稱別名

假設我們有兩個表各自是:"persons" 和 "product_orders"。

我們分別為它們指定別名 "p" 和 "po"。 

如今,我們希望列出 "john adams" 的全部定單。 

我們能夠使用以下的 select 語句:

select po.orderid, p.lastname, p.firstname

from persons as p, product_orders as po

where p.lastname='adams' and p.firstname='john'

不使用別名的 select 語句:

select product_orders.orderid, persons.lastname, persons.firstname

from persons, product_orders

where persons.lastname='adams' and persons.firstname='john'

從上面兩條 select 語句您能夠看到,別名使查詢程式更易閱讀和書寫。

select into 語句從乙個表中選取資料,然後把資料插入還有乙個表中。

select into 語句經常使用於建立表的備份復件或者用於對記錄進行存檔。

您能夠把全部的列插入新錶:

select *

into new_table_name [in externaldatabase]

from old_tablename

或者僅僅把希望的列插入新錶:

SQL基礎總結 20150730

sql 的資料定義語言 ddl 部分使我們有能力建立或刪除 我們也可以定義索引 鍵 規定表之間的鏈結,以及施加表間的約束。sql 中最重要的 ddl 語句 not null 約束強制列不接受 null 值。not null 約束強制字段始終包含值。這意味著,如果不向字段新增值,就無法插入新記錄或者更...

SQL基礎總結

sql全稱是 結構化查詢語言 structured query language sql structured query language 是一種資料庫查詢和程式語言,用於訪問資料以及查詢 更新和管理關係資料庫系統。sql同時也是資料庫檔案格式的擴充套件。1.運算元據庫 1.1建立資料庫 crea...

基礎SQL語句總結

一般對於資料庫的操作有增刪改查。增是指在資料庫中增加一行或者多行資料 insert into.刪是指刪除資料庫中一行或多行資料 delect from.改是指在資料庫中修改某些字段 update.set.查指查詢資料庫中的資料。可以是 的也可以是針對某乙個欄位的 一 查詢語句 1 簡單的查詢 列如資...