建立和刪除表(提高篇) 實驗三

2021-09-22 20:19:05 字數 3350 閱讀 9680

2**.使用ddl語言定義基本表**

有乙個專案管理(xmgl)資料庫,現有四張表,分別是部門表(部門號,部門名,部門**,部門位址);員工表(員工號,姓名,性別,出生年月,所在部門號(合併的外來鍵));專案表(專案編號,專案名稱,所在地方)以及員工參與專案(員工號,專案編號,職責)。其中乙個員工屬於乙個部門,乙個部門有多個員工(員工:部門=多對一)(如果是一對多的聯絡,則把這種聯絡要往多端進行合併,合併的方法:一端實體的主鍵併入到多端做外來鍵);乙個員工可同時參加多個專案,乙個專案有多個員工一起開發(多對多)。用sql語言中的ddl語言建立這四張表,設計並定義表的主碼和外碼,各字段的資料型別自己設計。

ddl語言:

create database xmgl

create table 部門(部門號char(20)primary key,部門名char(20),部門**char(15),部門位址char(20),)

create table 員工(員工號char(20)primary key,姓名char(10),性別char(5),出生年月datetime,所在部門號char(20),foreign key(所在部門號) references 部門(部門號))

create table 專案(專案編號char(20)primary key,專案名稱char(20),所在地方char(20),)

create table 員工參與專案(員工號char(20),專案編號char(20),職責char(20),primary key (員工號,專案編號),foreign key (員工號) references 員工(員工號),foreign key (專案編號) references 專案(專案編號),)

分析:中間有『(』,『,』語法錯誤,我寫的中文的括號,逗號,要求英文本元。

3.分別使用物件資源管理器和sql語句定義下面的約束(使用者定義完整性),並進行比較。

①員工號是四位數字串(),其中每一位是取0-9#([0-9][0-9][0-9][0-9])之間的數字。(員工表,員工號上約束,四個方括號)

②專案編號是以字母j開始的,其它是數字的4位字串。

③約束性別的取值為「男」、「女」,且非空,預設是男。

④約束部門**的格式:由取值為0-9的8位數字串組成。

4.使用sql語句修改表

①在部門表中增加「部門領導」字段(和員工號同域);在專案表中增加「專案主管」字段(和員工號同域)。

alter table 部門表 add 部門領導 char(20)

alter table 部門表 add foreign key (部門領導)references 員工表(員工號)

②在員工表中增加「技術職稱」和「工資」字段,其中「工資」為數字型別。

③在專案表中增加「開工日期」和「完工日期」字段,型別為日期型。

alter table 專案表 add 開工日期 datetime

④增加約束:工程起始日期小於計畫完成日期。

⑤在部門表中增加「部門人數」字段,型別為字元型。

⑥修改「部門人數」字段型別為整型。

⑦先在專案表中增加「專案型別」字段,然後再刪除該欄位。

create database xmgl

create table 部門表(部門號 char(20)primary key,部門名 char(20),部門** char(20),部門位址 char(20))

create table 員工表(員工號 char(20)primary key,姓名 char(20),性別 char(3),出生年月 char(20),所在部門號 char(20),foreign key(所在部門號) references 部門表(部門號))

create table 專案表(專案編號 char(20)primary key,專案名稱 char(20),所在地方 char(20))

create table 員工參與專案(員工號 char(20),專案編號 char(20),職責 char(20),primary key(員工號,專案編號),foreign key(員工號) references 員工表(員工號),foreign key(專案編號) references 專案表(專案編號))

alter table 員工表 add constraint ck_員工號_quzhi check (員工號 like '[0-9][0-9][0-9][0-9]')

alter table 專案表 add constraint ck_專案表_quzhi check (專案編號 like '[j][0-9][0-9][0-9]')

alter table 員工表 add constraint ck_員工表_quzhi check (性別='男'or 性別='女')

alter table 員工表 add constraint ck_員工表_quzhi1 check (性別 is not null)

alter table 部門表 add constraint ck_部門表_quzhi check (部門** like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')

alter table 部門表 add 部門領導 char(20)

alter table 部門表 add foreign key (部門領導)references 員工表(員工號)

alter table 專案表 add 專案主管 char(20)

alter table 專案表 add foreign key (專案主管) references 員工表(員工號)

alter table 員工表 add 技術職稱 char(20)

alter table 員工表 add 工資 int

alter table 專案表 add 開工日期 datetime

alter table 專案表 add 完工日期 datetime

alter table 專案表 add constraint ck_專案表_riqi check (開工日期《完工日期)

alter table 部門表 add 部門人數 char(20)

alter table 部門表 alter column 部門人數 int

alter table 專案表 add 專案型別 char(20)

(三)MySQL資料庫 表的建立和刪除

我的系統版本為centos7.5,mysql版本為5.7.26 格式 create table table name column name column type create table datebasename tablename id int 0 unsigned not null auto...

線性表的建立和刪除

線性表注意 線性表操作過程中改主意list的變化,執行乙個操作都要返回乙個list,難點就是建立過程中r接受前乙個節點的位址,刪除過程難點先找到資料對應的節點,是p1 link p2 link include include typedef struct nodelnode,linklist lin...

鍊錶的建立和刪除,初識鍊錶

include include include typedef struct date 申明結構體 date int main void else pe next ps 把新結點連線到鏈尾 第一次不執行,而到第二次pe就是上一次的ps 而pe next讓其指向下一次的ps pe ps 新結點成為了新...