Mysql實驗二 資料庫和表的建立

2021-10-19 13:55:08 字數 4118 閱讀 6641

實驗二 資料庫和表的建立

1、在mysql中建立乙個資料庫testdb,所有的sql操作均在此資料庫上進行。

create

database testdb;

use testdb;

2、用命令的方式在testdb資料庫中建立5張基本表,其型別為innodb表,字符集為utf8。(注意建立表的順序)

①建立學生表student,由以下屬性組成:學號 sno(int型,主碼,其值自動填充,初值為2011001,每次增值為1),學生姓名 sname(char型,長度為8,非空),性別 ***(enum(男,女)),所在系別 deptno(tinyint型),郵箱email(varchar(30))。

create

table student(sno int

primary

keyauto_increment

comment

'學號'

, sname char(8

)not

null

, *** enum

('男'

,'女'),

deptno tinyint

notnull

, email varchar(30

))auto_increment

=2011001

;

②建立係表dept,由以下屬性組成:系號 deptno(tinyint型),系名 dname(char型,長度為20,非空),**號碼(phone char(8),唯一性)。

create

table dept(deptno tinyint

, dname char(8

)not

null

, phone char(8

)unique

);

③建立教師表teacher,由以下屬性組成:教師編號 tno(char型,長度為10,主碼),教師姓名 tname(varchar型,長度為5,非空),性別t***((enum(男,女)),系 deptno(tinyint型),郵箱email(varchar(30))。

create

table teacher(tno char(10

)primary

key,

tname varchar(5

)not

null

,*** enum

('男'

,'女'),

deptno tinyint(6

),email varchar(30));

④建立課程表course,由以下屬性組成:課程號 cno(int型,主碼),課程名 cname(varchar型,長度為20,非空),授課教師編號 tno(char型,長度為10,外碼),授課老師姓名 tname(varchar型,長度為8,非空),學分 credit(tinyint型)。

create

table course( cno int

primary

key,cname varchar(20

)not

null

,tno char(10

)comment

'老師號'

, tname varchar(8

)not

null

comment

'老師名字'

, credit tinyint

comment

'學分'

,foreign

key(tno)

references teacher(tno)

);

⑤建立學生選課表student_course,由以下屬性組成:學號 sno(int型,外碼),課程號 cno(int型,外碼),fenshu(decimal(5,2)型),(cno,sno)為主碼。

create

table student_course (sno int

, cno int

, fenshu decimal(5

,2),

primary

key(cno,sno)

,foreign

key(sno)

references student(sno)

,foreign

key(cno)

references course(cno)

);

3、修改表結構

①顯示所有的表

show tables;

②檢視student表結構,並將student表的姓名字段改為varchar型別,長度為

4。desc student

alter

table student modify sname varchar(4

);

desc dept;

alter

table dept add

primary

key(deptno)

;

④將student表的deptno設定為外來鍵,外來鍵名為aaa

⑤為dept表的dname設定為唯一索引

alter

table dept add

unique

(dname)

;

⑥為teacher表的deptno設定為外碼,外來鍵名為bbb

⑦在student表中加入屬性出生日期 birth(datetime型),放在姓名欄位的後面

alter table student add birth datetime after sname;

⑧刪除course表中授課教師姓名列。

alter

table course drop

column tname;

⑨為course表中的credit增加乙個預設值為4。

alter

table course modify credit tinyint

default

4;

⑩將student_course表名改名為sc。

rename

table student_course to sc;

將sc表中的fenshu欄位改為grade。

alter

table sc change fenshu grade decimal(5

,2);

4、輸入5張表的資料。

student表的記錄如下:

sno sname birth *** deptno email

2011001 張天 2009/3/5 男 10 [email protected]

2011002 李蘭 2009/10/12 女 10 [email protected]

2011003 陳銘朝 2010/3/9 男 10 [email protected]

2011004 劉茜 2008/6/23 女 20 [email protected]

2011005 馬朝陽 2010/7/1 男 20 [email protected]

insert

into student values

(2011004

,'劉茜'

,'2008/6/23'

,'女',20

,'[email protected]'),

(2011005

,'馬朝陽'

,'2010/7/1'

,'男',20

,'43234321qq.com'

);

4、因為學校機房有還原系統,所以下課之前應將所有的資料進行備份,下次上機課還原即可。

5、思考與練習:

資料庫MySQL編寫 資料庫MySQL的建立

如果存在資料庫school,則刪除。否則建立資料庫 drop database if exists school 建立資料庫 create database school use school 建立乙個學校係表 系號 主鍵,自增 系辦公地點,人數 drop table if exists tb de...

mysql創庫創表語句 mysql 資料庫(1)

1 1.掌握創庫,創表的方法 創庫create database haha 使用庫use haha 創表1create table t1 id int 檢視所有表 show tables 插入資料 insert into t1 values 1 查詢所有資料 select from t1 刪除表dr...

資料庫實驗二 資料庫 表的建立和維護

建立資料庫 create database hisdb 選擇當前資料庫 use hisdb 建立doctor表 create table doctor did varchar 6 not null primary key,dname varchar 10 not null title varchar...