在表中建立索引,可以在不提取整個表的前提下通過索引可以查詢資料
在表中建立索引,使用者是看不到的,值得注意的是,帶有索引的表更新的時間是長於不帶索引的表的,因為索引也需要更新,因此在實際使用時,我們一般給需要經常查詢的列建立索引
create
index index_name
on table_name (column_name)
columm_name指需要索引的列,上面的寫法指相同的兩列可以使用相同的索引,在括號內用逗號隔開即可,當某列需要唯一的索引值時
寫法如下
create
unique
index index_name
on table_name (column_name)
desc在此處的應用,若希望以降序索引某列的值,則將desc關鍵字放在有索引的列後面
create
index personindex
on person (lastname desc
)
drop語句用於撤銷,可以撤銷索引,表以及資料庫
alter
table table_name drop
index index_name
不同資料庫語法不太相同,注意區分
drop
table 表名稱
truncate
table 表名稱
drop
database 資料庫名稱
該語句用於在已有的表中,刪除,更新,新增列,還蠻常用的
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欄位
create
table persons
(p_id int
notnull
auto_increment
,lastname varchar
(255
)not
null
,firstname varchar
(255),
address varchar
(255),
city varchar
(255),
primary
key(p_id)
)
把persons表中的p_id列定義為auto-increment主鍵
mysql使用auto-increment關鍵字來執行auto-increment任務,預設情況下auto-increment的開始值為1,每條記錄遞增1,如果需要改變開始值,則要定義開始值
alter
table persons auto_increment
=100
view意味檢視,指視覺化的表,如何建立,刪除和更新檢視呢,檢視是基於sql語句的結果集的視覺化的表
create
view view_name as
select column_name(s)
from table_name
where condition
如
create
view
[current product list]
asselect productid,productname
from products
where discontinued=
no
查詢該檢視的方法
select
*from
[current product list]
更新檢視,向檢視current product list中新增category列
create
view
[current product list]
asselect productid,productname,category
from products
where discontinued=
no
撤銷檢視,依然使用drop語句
sql
drop
view syntax
drop
view view_name
當表中設計日期時間時,格式就會變得比較複雜,易出錯
資料庫中包含內建的日期處理函式
以mysql為例
now() 返回當前的日期和時間
curdate() 返回當前的日期
curtime() 返回當前的時間
date() 提取日期或日期與時間表示式的日期部分
extract() 返回日期時間的單獨部分
date_add() 給日期新增指定的時間間隔
date_sub() 給日期減去指定的時間間隔
datediff() 返回兩個日期之間的天數
date_format() 用不同的格式顯示日期
使用下列資料型別在資料庫中儲存日期或時間值
date - 格式 yyyy-mm-dd
datetime - 格式: yyyy-mm-dd hh:mm:ss
timestamp - 格式: yyyy-mm-dd hh:mm:ss
year - 格式 yyyy 或 yy
其實,日期相對來說是比較簡單的,如果不涉及時間,日期的比較是比較清晰的
null值是遺漏的未知資料
null 用作未知的或不適用的值的佔位符
無法比較 null 和 0;它們是不等價的
比如乙個表中有若干列,在插入新的值時,不向該列插入資料,則該列以null值儲存
null值是無法使用比較操作符的,< , >號等
此時為了測試null值得操作符是is null 和is not null
選取某個表中某列中帶有null值的記錄,寫法為
select lastname,firstname,address from persons
where address is
null
相同的,若選擇不帶有null 值的記錄,將is null 寫為is not null
以mysql為例,資料型別分為文字,數字,日期/時間型別
資料型別
SQL學習04 SQL中級查詢
sql提供了連線運算的其他形式,包括能夠指定顯式的連線謂詞,能夠在結果中包含被自然連線排除在外的元組。它等價於下面這條語句 它與自然連線的區別在於 它的連線結果會產生兩個id,分別是student.id,takes.id,然而我們的自然連線只會產生乙個id屬性。a join b using 和 a ...
mysql學習筆記 04 索引的相關技術
常見的索引模型 1 雜湊表是一種以鍵 值 key value 儲存資料的結構,我們只要輸入待查詢的鍵即 key,就可以找到其對應的值即 value。雜湊的思路很簡單,把值放在陣列裡,用乙個雜湊函式把 key 換算成乙個確定的位置,然後把 value 放在陣列的這個位置。雜湊表這種結構適用於只有等值查...
04 MongoDB相關操作
show dbs 查詢全部資料庫 db 顯示當前資料庫use database name例子 use test02有test02資料庫則切換到此資料庫,沒有則建立 注意 新建立的資料庫不顯示,需要至少包含乙個集合 db.dropdatabase 例子 刪除test02資料庫 先切換資料庫 use t...