创建student表和grade表,如表1和表2所示:
完成以下操作:
1.将grade表的course字段的数据类型改为VARCHAR(20).
2.将grade表的num字段的位置改到course字段的前面。
3.将grade字段改名为score。
4.删除grade表的外键约束
5.将grade表的存储引擎改为MYISAM类型。
6.将student表的address字段删除。
7.在student表中增加名为phone的字段。
8.将grade表名改为gradeinfo。
9.删除student表。
创建表格sql语言:
CREATE TABLE student(
num INT(10) COMMENT'学号' PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) COMMENT'姓名' NOT NULL,
sex ENUM('男','女') COMMENT'性别' NOT NULL,
birthday DATE COMMENT'出生日期',
address VARCHAR(20) COMMENT'家庭地址'
);
CREATE TABLE grade(
id INT(10) COMMENT '编号' PRIMARY KEY AUTO_INCREMENT,
course VARCHAR(10) COMMENT '课程名' NOT NULL,
num INT(10) COMMENT '学号' NOT NULL,
Grade VARCHAR(4) COMMENT '出生日期',
FOREIGN KEY(num) REFERENCES student(num)
);
操作sql语言:
1)将grade表的course字段的数据类型改为VARCHAR(20).
ALTER TABLE grade MODIFY course VARCHAR(20);
2)将grade表的num字段的位置改到course字段的前面。
ALTER TABLE grade MODIFY course VARCHAR(20) AFTER num;
3)将grade字段改名为score。
ALTER TABLE grade CHANGE Grade score VARCHAR(4);
4)删除grade表的外键约束
SHOW CREATE TABLE grade;
ALTER TABLE grade DROP FOREIGN KEY grade_ibfk_1;
5)将grade表的存储引擎改为MYISAM类型。
ALTER TABLE grade ENGINE=MYISAM;
6)将student表的address字段删除。
ALTER TABLE student DROP address;
7)在student表中增加名为phone的字段。
ALTER TABLE student ADD phone VARCHAR(15);
8)将grade表名改为gradeinfo。
RENAME TABLE grade TO gradeinfo;
9)删除student表。
DROP TABLE student;
课堂源码:
---创建数据表employee---
CREATE TABLE employee(
id SMALLINT,
num CHAR(10),
name VARCHAR(20),
sex ENUM('男','女'),
birthday DATE,
address VARCHAR(50),
salary FLOAT(8,2)
);
---查看数据表employee
DESC employee;
SHOW CREATE TABLE employee;
---添加记录---
INSERT employee VALUES(1,'8133500125','张三','男','1969-05-18','无锡万科城市花园',8010.75);
INSERT employee(name,birthday)VALUES('小王','1990-09-05');
---查询记录---
SELECT * FROM employee;
---非空约束----
CREATE TABLE t1(
id SMALLINT NOT NULL,
name VARCHAR(20)
);
---自增,主键约束----
---列级---
CREATE TABLE t2(
id SMALLINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
age TINYINT
);
---表级---
CREATE TABLE t2(
id SMALLINT AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
age TINYINT,
PRIMARY key(id)
);
---唯一约束---
---列级---
CREATE TABLE t3(
id SMALLINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
age TINYINT,
num CHAR(10) UNIQUE
);
---表级---
CREATE TABLE t3(
id SMALLINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
age TINYINT,
num CHAR(10),
UNIQUE(num)
);
---默认约束只有列级约束---
CREATE TABLE t4(
id SMALLINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
sex ENUM('男','女') DEFAULT '男',
num CHAR(10) UNIQUE
);
---外键约束---
---父表---
CREATE TABLE province(
id SMALLINT PRIMARY KEY AUTO_INCREMENT,
pname VARCHAR(10) NOT NULL UNIQUE
);
INSERT province VALUES
(NULL,'江苏'),
(NULL,'浙江'),
(NULL,'湖北');
SELECT * FROM province;
---子表表级约束---
CREATE TABLE users(
id SMALLINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
pid SMALLINT ,
FOREIGN KEY(pid) REFERENCES province(id)
);
CREATE TABLE USERS1(
id SMALLINT,
name VARCHAR(20) NOT NULL,
pid SMALLINT
);
---增加列---
ALTER TABLE users1 ADD age TINYINT AFTER name;
ALTER TABLE users1 ADD address VARCHAR(50) FIRST;
---删除列----
ALTER TABLE users1 DROP address ;
---修改列定义-----
ALTER TABLE users1 MODIFY name VARCHAR(30) AFTER pid;
---修改列名称----
ALTER TABLE users1 CHANGE name username VARCHAR(50);
---增加主键---
ALTER TABLE users1 ADD PRIMARY KEY(id);
---删除主键---
ALTER TABLE users1 DROP PRIMARY KEY;
---增加唯一约束---
ALTER TABLE users1 ADD UNIQUE(username);
---删除唯一约束---
SHOW INDEXES FROM users1\G;
ALTER TABLE users1 DROP INDEX username;
----增加外键,利用SHOW CREATE TABLE employee;查看添加的外键约束的约束名----
ALTER TABLE users1 ADD FOREIGN KEY(pid) REFERENCES province(id);
----删除外键----
ALTER TABLE users1 DROP FOREIGN KEY users1_ibfk_1;
--增加默认--
ALTER TABLE users1 ALTER age SET DEFAULT 20;
--删除默认--
ALTER TABLE users1 ALTER age DROP DEFAULT;
----改表名----
ALTER TABLE users1 RENAME TO users_p;
RENAME TABLE users_p TO newusers;
--改存储引擎--
ALTER TABLE newusers ENGINE=MyISAM;