實驗二 資料庫和表的建立
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...