SQL學習相關04

2021-10-03 04:28:57 字數 3625 閱讀 4628

在表中建立索引,可以在不提取整個表的前提下通過索引可以查詢資料

在表中建立索引,使用者是看不到的,值得注意的是,帶有索引的表更新的時間是長於不帶索引的表的,因為索引也需要更新,因此在實際使用時,我們一般給需要經常查詢的列建立索引

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...