資料庫5 SQL初識,DDL學習

2021-10-05 09:30:50 字數 4368 閱讀 3416

基本表索引

定義刪除

sql: structured query language

sql是一種介於關係代數和關係演算之間的結構化查詢語言。

功能:

分類:

特點:

其中:

模式:

要建立模式,呼叫該命令的使用者必須擁有dba許可權,或者獲得了dba授予的create schema的許可權。

語法:

/* sql大小寫不敏感,大寫、小寫、大小寫都可以*/

/*為使用者wang定義乙個模式名為s_t的模式*/

create

schema s_t authorization wang;

/*刪除模式test*/

/*cascade 級聯 刪除模式的時候同時把該模式中所有的資料庫物件全部刪除*/

drop

schema test cascade

;/*restrict 限制 當模式中沒有資料庫物件時才能執行,如果有物件則拒絕執行*/

drop

schema test restrict

;

create

table 表名(

列名 資料型別 [列級完整性約束條件]

, 列名 資料型別 [列級完整性約束條件]

, 列名 資料型別 [列級完整性約束條件]

, ……

[表級完整性約束條件]

);

其中,

資料型別:

約束的型別:

如果完整性約束條件設計表的多個屬性列,則必須定義在表級上,否則既可以定義在列級,也可以定義在表級。

primary key:主碼

主碼不能重複,不能為空

create

table student(

/*constraint 是定義約束名字,不加系統會自動起名字*/

sno char(9

)constraint pk_s_sno primary

key)

;/*或者表級*/

create

table student(

sno char(9

),sname char(9

),constraint pk_s_sno primary

key(sno,sname)

);

null/ not null :空 / 非空約束是否可以為空值,預設可以為空值。

create

table student(

sno char(9

)primary

key,

sname varchar(20

)not

null

/*只能在列級定義*/

);

unique約束:唯一值不能有重複值。

create

table student(

sno char(4

)primary

key,

sname varchar(20

)unique);

/*或者表級*/

create

table student(

sno char(4

)primary

key,

sname varchar(20

),constraint uq_s_sname unique

(sname)

);

check 約束:檢查值是否在域中。

create

table student(

sno char(4

)primary

key,

s*** char(2

)check

(s*** in

('男'

,'女'))

);/*或者表級*/

create

table student(

sno char(4

)primary

key,

s*** char(2

),check

(s*** in

('男'

,'女'))

);

foreign key約束:約束值在另乙個錶主碼中有對應的值或者全為空。

create

table student(

sno char(4

)primary

key,

steacher varchar(20

)references teacher(tno));

/*或者表級*/

create

table student(

sno char(4

)primary

key,

steacher varchar(20

),foreign

key(steacher)

references teacher(tno)

);

default約束:預設值

create

table student(

sno char(4

)primary

key,

steacher varchar(20

)default

'未定');

/*sql serve 不允許在建立表時建立表級的default約束,但可以在修改表屬性的時候增加表級的default約束*/

alter

table 表名

add 新列名 資料型別 [完整性約束定義]

/*新增新列*/

add 表級完整性約束 /*新增完整性約束*/

alter

column 列名 資料型別 /*修改列的資料型別*/

drop 完整性約束 /*刪除完整性約束*/

注意,使用add方式新增的新列自動補充null值,所以當表中有資料時增加的新列不能指定not null約束.使用表級完整性約束設定預設值:

/*為student的sage設定預設值為18*/

alter

table student add

default

18for sage;

drop

table 表名 [

restrict

/cascade

]

注意:索引是一種資料結構,是對照表、指標表,是為了加速對錶中元祖的檢索而建立的一種分散儲存的結構,是對錶而建立的,由除存放表的資料頁面以外的索引頁面組成,加快了查詢速度,減慢了更新速度

按照索引記錄存放位置

唯一索引:

復合索引:

rdbms中索引一般採用b+樹、hash索引來實現。

create

[unique]/

[cluster]

index 索引名 on 表名(

列名 [

asc]/[

desc],

……);

asc和desc是次序,asc為公升序,預設值;desc為降序。

unique為唯一索引,cluster為聚集索引。

注意:

drop

index 索引名

刪除索引時,系統會從資料字典中刪去有關改索引的描述。

資料庫基礎介紹(5)SQL儲存過程詳細介紹及語法

目錄 一 簡介 二 例項 1.不帶引數的儲存過程 2.資料查詢功能不帶引數的儲存過程 3.帶有輸入引數的儲存過程 4.求階乘之和 5.帶有輸入引數的資料查詢功能的儲存過程 6.帶有條件判斷的插入功能的儲存過程 7.儲存過程的自動執行 8.監控儲存過程 建立儲存過程 sql server建立儲存過程 ...

資料庫學習 DDL(資料庫定義語言)

create database if not exists 庫名 說明 if not exists的存在為了保證資料庫是唯一的,同時保證程式不阻塞drop database if exists 庫名 說明 if exists 為保證程式不阻塞show create table 表名 展示建立表的時候...

DDL(資料庫使用)

1.庫的建立 建立資料庫 create database dbname 資料庫名 建立資料庫,字符集設定為utf 8 create database base2 character set utf8 2.檢視資料庫 檢視所有的資料庫 show databases 檢視某個庫的建立資訊 show cr...