数据库上机实验三(表格建立)

 创建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;





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值