(二)資料定義語言(DDL)

2021-10-02 19:29:23 字數 2332 閱讀 5090

sql結構化查詢語言,使用者操作關聯式資料庫的通用語言,按其功能分為四大部分(ddl,dcl,dml):

格式:[    ]   內的內容表示可選:

例項:

create domain  person_name  char(20)

create table t

( tno char(10),--長度固定為10

tname person_name not null,--非空值約束

sal int,

dno char(10) unique,--唯一性約束,可以為空,可以存在多個這是和主鍵約束的區別

constraint pk_t primary key (tno),--主鍵約束,並將該約束命名為pk_t

foreign key(dno) references d(dno),--參照完整性約束

check (sal > 0))--最後一句沒有逗號了

四個約束:

primary key (tno)主碼約束(不但要求unique而且要求是非空的);

unique唯一性約束要求是唯一的,但是可以是空的;

not null 非空約束;

foreign key(dno) reference d(dno),參照完整性約束,該關係中的dno參照的是關係d中的dno。

key有括號,約束除了not null均有括號。

示例:

--add(增加列)

alter table t add location char(30);--增加location列,長度固定為30

--moidify(修改列或者完整性約束)

alter table s modify sno varchar(300);--修改列的長度時,只能長不能短

alter table t add location char(30) not null;

--location列已經存在,修改列的定義的時候要用modify,以上方式不對,應該為

alter table t modify location char(30) not null;

--drop(刪除基本表或列或約束)

alter table drop column s [cascade│restrict];

--刪除列,注意column關鍵字,cascade是指在基本表中刪除某列時所有引用該列*檢視*和約束一起刪除

--restrict是指只有在沒有檢視或約束引用該列屬性時才可被刪除

alter table s drop constraint pk_s;--刪除約束直接加約束名

注意:

alter有三種方法add,drop ,modify增刪改,均是對約束或者列操作。對錶的操作是create,alter,drop。

table t,column s,constrain pk_s,你在操作之前要告訴系統你操作的是什麼東西。

刪除表:drop table t

注意和alter裡面的drop區分,alter裡面drop的物件是列或者約束。

a.什麼是索引?

索引類似於字典前面的索引,其目的是加快檢索速度,由資料庫管理員建立,dbms自動維護和使用。

b.格式

unique或distinct加在index前面表示唯一性索引,依舊是索引列上沒有相同的值,若索引列有相同的值則無法建立。

cluster聚簇索引,即表中元祖按照索引列內容排序,因為只能按一種規則進行排序,所以乙個表只能有乙個聚簇索引,但聚簇索引可以是多個列,如出生年和出生月一起做聚簇索引。

asc desc索引表中的排列次序,預設是公升序,直接在列名後面寫就行不需要括號。

刪除索引:

索引可以動態新增,索引可以加快查詢速度,但降低插入修改速度。

所以內部實現為b+樹,hash表。

不允許使用者在操作中指定索引,索引怎麼用完全由dbms決定。

資料定義語言(DDL)

建立資料庫表 create table uc userid varchar2 53 not null,userloginname varchar2 35 not null,userpassword varchar2 25 not null,userextend varchar2 1000 在orac...

資料定義語言 DDL

1.1資料庫 建立資料庫 mysql 檢視資料庫 show databases 建立資料庫 create database siyn 連線資料庫 mysql use siyn oracle 刪除資料庫 mysql drop database siyn 1.2表 建立表 臨時表,複製表 mysql 檢...

資料定義語言(DDL)

1 資料庫 檢視所有資料庫 show databases 切換資料庫 use 資料庫名 建立資料庫 create database mydb1 刪除資料庫 drop database mydb1 修改資料庫編碼 alter database mydb1 character set utf8 2 資料...