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 關鍵字。
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 *like 操作符用於在 where 子句中搜尋列中的指定模式from persons
where rownum <= 5
在搜尋資料庫中的資料時,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)如需以字母順序顯示介於 "adams"(包括)和 "carter"(不包括)之間的人,請使用下面的 sql:from table_name
where column_name
between value1 and value2
select * from personswhere lastname
between
'adams'and
'carter'
如需使用上面的例子顯示範圍之外的人,請使用 not 操作符:重要事項:不同的資料庫對 between...and 操作符的處理方式是有差異的。某些資料庫會列出介於 "adams" 和 "carter" 之間的人,但不包括 "adams" 和 "carter" ;某些資料庫會列出介於 "adams" 和 "carter" 之間幷包括 "adams" 和 "carter" 的人;而另一些資料庫會列出介於 "adams" 和 "carter" 之間的人,包括 "adams" ,但不包括 "carter" 。select * from persons
where lastname
not
between 'adams' and '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 簡單的查詢 列如資...