一、表结构的修改
1、为 student 表格增加籍贯列 jiguan,数据类型 varchar,字段宽度为 20 字节,不允许输入空值。
语法:ALTER TABLE table_name ADD 属性名 属性类型 NOT NULL;
mysql> ALTER TABLE student add jiguan VARCHAR(20) NOT NULL;
2、重命名 student 表的籍贯列“jiguan”为“jg”。
语法:ALTER TABLE table_name CHANGE 旧属性名 新属性名 旧数据类型;
mysql> ALTER TABLE student CHANGE jiguan jg VARCHAR(20);
3、删除 student 表中的 jg 字段。
语法:ALTER TABLE table_name DROP 属性名;
mysql> ALTER TABLE student DROP jg;
4、将 student 表中的 sdept 字段长度改为 20
语法:ALTER TABLE table_name MODIFY 属性名 数据类型;数据类型为修改后的数据类型
mysql> ALTER TABLE student MODIFY sdept VARCHAR(20);
5、在 sno 字段上为 Student 表设置主键。
语法:ALTER TABLE table_name ADD PRIMARY key 属性名;
mysql> ALTER TABLE student ADD PRIMARY KEY (sno);
6、在 Cno 字段上为 Course 表设置主键。
mysql> ALTER TABLE course ADD PRIMARY KEY (cno);
7、为 SC 表的 Sno 和 Cno 设置外键。
mysql> ALTER TABLE sc ADD FOREIGN KEY(sno) REFERENCES student(sno);
mysql> ALTER TABLE sc ADD FOREIGN KEY(cno) REFERENCES course(cno);
mysql> INSERT INTO student(sno,sname,ssex,sbirthday,sdept,speciality) VALUES ('20050101','李勇','男','19870112','CS','计算机应用'),
-> ('20050201','刘晨','女','19880604','IS','电子商务'),
-> ('20050301','王敏','女','19891223','MA','数学'),
-> ('20050202','张立','男','19880825','IS','电子商务');
mysql> INSERT INTO course(cno,cname) VALUES ('C01','数据库'),
-> ('C02','数学'),
-> ('C03','信息系统'),
-> ('C04','操作系统');
mysql> INSERT INTO sc(sno,cno,degree) VALUES ('20050101','C01','92'),
-> ('20050101','C02','85'),
-> ('20050101','C03','88'),
-> ('20050201','C02','90'),
-> ('20050201','C03','80'),
-> ('20050301','C01','91'),
-> ('20050301','C02','75'),
-> ('20050202','C01','87');
2、使用 update 命令将 SC 表 C02 课程的 Degree 字段值全部加 5 分。
mysql> UPDATE sc SET DEGREE=DEGREE+5 WHERE cno='C02';
3、删除 SC 表中 C02 课程的全部记录。
mysql> DELETE FROM sc WHERE cno='C02';
4、查看 SC 表格中所有数据。
mysql> select * from sc;
思考题
1、MySQL 的数据库文件有几种?扩展名分别是什么?
四种
.idb:存放innodb数据的文件
.frm:存放表结构的文件
.MYD:MyiSAM存储引擎数据的文件
.MYI:MyiSAM存储引擎索引文件
2、如何实现数据库的备份和还原
备份
C:\Windows\system32>mysqldump -uroot -pyL@98 jxgl > d:/jxgl.sql
还原
mysql> source d:/jxgl.sql;
3、在定义基本表语句时,NOT NULL 参数的作用是什么
非空约束,必须要有数值或内容
4、主码可以建立在“值可以为 NULL”的列上吗?
不能
主码是非空且唯一的,若值为空,主码不能建立