資料庫學習筆記和小練習(1)資料定義

2021-07-24 07:58:31 字數 2829 閱讀 3655

關係資料庫系統支援**模式結構,其模式,外模式,內模式中的基本物件有模式,表,檢視和索引等,因此sql的資料定義功能包括模式定義、表定義、檢視和索引的定義。

建立                           刪除                          修改

模式: create schema    drop schema

表:    create table           drop table                  alter table

檢視: create view          drop view                  

索引: create index        drop index                   alter index

sql標準不提供修改模式定義和修改檢視定義的操作,使用者如果想修改這些物件,只能將它們刪除然後重建。sql標準也沒有提供索引相關的語句,但為了提高查詢效率,商用關聯式資料庫管理系統通常都提供了索引機制和相關的語句。

乙個關聯式資料庫管理系統的例項中可以建立多個資料庫,乙個資料庫中可以建立多個模式,乙個模式下通常包括多個表、檢視和索引等資料庫物件。

資料庫 =》 模式 =》表、檢視、索引等資料庫物件。本質上是乙個層次化的命名機制。

一、模式的定義和刪除

定義模式:

create schema 《模式名》 authorization 《使用者名稱》;

如果沒有指定《模式名》,那麼《模式名》隱含為《使用者名稱》

定義模式實際上就是定義了乙個命名空間,在這個空間中可以進一步定義該模式包含的資料庫物件。

刪除模式:

drop schema 《模式名》;

級聯和限制必須二選其一,刪除模式時把模式內的資料庫物件全部刪除或者有下屬的資料庫物件則拒絕執行。

二、基本表的定義、刪除與修改

create table student

(sno char(9) primary key,

sname char(20) unique,

s*** char(2),

sage smallint,

sdept char(20)

)charset gbk;

這裡定義了列級完整性約束條件,主鍵和取唯一值

create table course(

cno char(4) primary key,

cname char(40) not null,

cpno char(4),

ccredit smallint,

foreign key(cpno) references course(cno)

)charset gbk;

這裡定義了列級完整性約束條件,不能取空值

和表級完整性約束條件外來鍵(參照表和被參照表是同一張表)

create table sc(

sno char(9),

cno char(4),

grade smallint,

primary key(sno,cno),

foreign key(sno) references student(sno),

foreign key(cno) references course(cno)

)charset gbk;

這裡定義了聯合主鍵和外來鍵,都是表級完整性約束條件

修改基本表:

alter table student add sentrance date;

向學生表中增加入學時間列,其資料型別為日期型,不論表中是否已經有資料,新增加的列一律為null

alter table student alter column sage int;

這是改變列的資料型別

alter table course add unique(cname);

這是增加約束條件(課程名必須取唯一值)。

刪除基本表:

drop table 《表名》 [restrict | cascade];

限制代表欲刪除的表不能被其他表的約束所引用,不能有檢視,不能有觸發器,不能有儲存過程或函式等否則不能刪除

級聯代表刪除時,相關的依賴物件都將被一起刪除

restrict是預設情況

比如:

create view is_student

asselect sno,sname,sage

from student

where sdept = 'is';

drop table student restrict;

失敗

drop table student cascade;

理論成功,但實際在mysql環境下測試的時候,受外來鍵約束,刪除失敗。這需要在配置外建的時候設定級聯刪除。

建立索引:

create unique index scno on sc(sno asc,cno desc);

索引建立在了兩列上,並分別指定了各自的索引值的排列順序

unique表明此索引的每乙個索引值只對應唯一的資料記錄。

修改索引:

alter index scno rename to scsno;

刪除索引:

drop index 《索引名》

資料庫學習筆記 1 資料庫設計概論

e r model,more precisely,entity relationship model,這個模型從概念上來說有兩個功能,1,將該庫裡面的實體用各種方式分別出來 identify 這裡的實體據老師來說就是一堆屬性的集合,即通過構成乙個實體的屬性來區別其本身的獨一性 2,將這些實體以一定的...

資料庫學習筆記和小練習(16)外來鍵再理解

一 外來鍵 在關係型資料庫中,基本的物件就是表 關係 每個表都維護了一定的資訊。但是,生活中的資訊不是簡單地,分離的,資訊之間一定會有著這樣那樣的聯絡,相對應的,我們的表之間也應該有所聯絡。舉個例子 學生表在我們前面的例子中出現的不少,它描述了學生資訊,比如包括了他所在系,那麼,它所在的系就確定了。...

MYSQL資料庫練習1

1.建立student和score表 2.為student表和score表增加記錄 3.查詢student表的所有記錄 4.查詢student表的第2條到4條記錄 5.從student表查詢所有學生的學號 id 姓名 name 和院系 department 的資訊 6.從student表中查詢計算機...