数据库建表练习

练习一:

创建数据库company,在库中创建两个表offices和employees表

1.offices 表结构:
数据库建表练习_第1张图片

employees表结构:

数据库建表练习_第2张图片

2. 查看该库下几个表以及查看两张表结构。
3. 将表 employees mobile 字段修改到 officeCode 字段后面。
4. 将表 employees birth 字段改名为 employee_birth
5. 修改 sex 字段,数据类型为 CHAR(1) ,非空约束。
6. 删除字段 note
7. 增加字段名 favoriate_activity ,数据类型为 VARCHAR(100)
8. 删除表 offices
9. 将表 employees 名称修改为 employees_info
--创建数据库
create DATABASE test1;
use test1;
--创建数据表
CREATE TABLE offices(
		officeCode INT(10) PRIMARY KEY,
		city VARCHAR(50) NOT NULL,
		address VARCHAR(50),
		country VARCHAR(50) not NULL,
		postalCode VARCHAR(15) UNIQUE
);
CREATE TABLE employees(
		employeeNumber INT(11) PRIMARY KEY auto_increment,
		lastName VARCHAR(50) NOT NULL,
		firstName VARCHAR(50) NOT NULL,
		mobile VARCHAR(25) UNIQUE,
		officeCode INT(10) NOT NULL,
		jobTitle VARCHAR(50) NOT NULL,
		birth datetime NOT NULL,
		note VARCHAR(255),
		sex VARCHAR(5),
		CONSTRAINT fk_offices FOREIGN KEY(officeCode) REFERENCES offices(officeCode)
);
drop TABLE employees_info;
--查看该库下几张表以及查看两张表结构
SHOW TABLES;
DESCRIBE employees;
DESCRIBE offices;
--将表employees的mobile字段修改到officeCode字段后面
alter table employees drop mobile;
alter table employees add mobile varchar(25) after officeCode;
--将表employees中的birth字段改名为employee_birth
alter table employees CHANGE birth employee_birth datetime;
--修改sex字段,数据类型为char(1),非空约束
ALTER TABLE employees modify sex char(1) NOT NULL;
--删除字段note
ALTER TABLE employees drop note;
--增加字段名favourite_activity,数据类型为varchar(100)
ALTER TABLE employees add favourite_activity VARCHAR(100);
--删除表offices
SHOW TABLES;
----先要删除外键约束,否则删除不成功
ALTER TABLE employees_info DROP FOREIGN KEY fk_offices;
DROP TABLE offices;
--将表employees名称改为employees_info
ALTER TABLE employees RENAME to employees_info;

练习二:

创建数据库Market,在Market中创建数据表customers

数据库建表练习_第3张图片
1. 创建数据表 customers ,在 c_num 字段上添加主键约束和自增约 束,在 c_birth 字段上添加非空约
束。
2. c_contact 字段插入 c_birth 字段后面。
3. c_name 字段数据类型改为 VARCHAR(70)
4. c_contact 字段改名为 c_phone
5. 增加 c_gender 字段,数据类型为 CHAR(1)
6. 将表名修改为 customers_info
7. 删除字段 c_city
8. 修改数据表的存储引擎为 MyISAM
9. Market 中创建数据表 orders
数据库建表练习_第4张图片
10. 创建数据表 orders ,在 o_num 字段上添加主键约束和自增约束,在 c_id 字段上添加外键约束,关
customers 表中的主键 c_num
11. 删除 orders 表的外键约束,然后删除表 customers
--创建数据库Market
CREATE DATABASE Market;
USE Market;
--创建数据表
CREATE TABLE customers(
		c_num INT(11) PRIMARY KEY auto_increment,
		c_name VARCHAR(50),
		c_contant VARCHAR(50),
		c_city VARCHAR(50),
		c_birth datetime NOT NULL
);
--将c_contant字段插入c_birth字段后面
ALTER TABLE customers DROP c_contant;
ALTER TABLE customers ADD c_contant VARCHAR(50) after c_birth;
--将c_name字段数据类型改为varchar(70)
ALTER TABLE customers MODIFY c_name VARCHAR(70);
--将c_contant字段改名为c_phone
ALTER TABLE customers CHANGE c_contant c_phone VARCHAR(50);
--增加c_gender字段,数据类型为char(1)
ALTER TABLE customers add c_gender char(1);
--将表名修改为customers_info
ALTER TABLE customers RENAME customers_info;
--删除字段c_city
ALTER TABLE customers_info DROP c_city;
--修改数据库表的存储引擎为MYISAM
ALTER TABLE customers_info ENGINE = MyISAm;
ALTER TABLE customers_info ENGINE = INNODB;
--在Market中创建数据表orders
CREATE TABLE orders(
	 o_name INT(11),
	 o_date DATE,
	 c_id INT(11)
	 );
	 DROP TABLE orders;
--创建数据表orders,在o_num字段上添加主键约束和自增约束,在c_id字段上添加外键约束,关联customers表中的c_num
alter table orders modify o_name int auto_increment primary key;	
alter table orders add constraint fk_orders foreign key(c_id) references customers_info(c_num); 
--删除orders表的外键约束,然后删除表customers
ALTER TABLE orders DROP foreign key fk_orders;
DROP TABLE customers_info;

练习三:

1. 创建数据库 MySchool
2. 创建以下数据表
1> 年级表: Grade
数据库建表练习_第5张图片

2> 学生表: Student

数据库建表练习_第6张图片

3> 科目表:Subjects

数据库建表练习_第7张图片

4> 成绩表:Result

数据库建表练习_第8张图片

 5> 表关系:

数据库建表练习_第9张图片

--创建数据库MySchool
CREATE DATABASE MySchool;
USE MySchool;
--创建数据表
--年级表
CREATE TABLE Grade(
	 GradeId INT PRIMARY KEY,
	 GradeName VARCHAR(50) NOT NULL
);
CREATE TABLE Student(
		StudentNo VARCHAR(50) PRIMARY KEY,
		LoginPwd VARCHAR(50),
		StudentName varchar(50),
		Sex char(2),
		GradeId INT,
		Phone varchar(255),
		Address VARCHAR(255),
		BornDate DATETIME,
		Email varchar(50),
		CONSTRAINT fk_Student FOREIGN KEY(GradeId) REFERENCES Grade(GradeId)
);
CREATE table Subjects(
	 SubjectId INT PRIMARY KEY,
	 SubjectName VARCHAR(20),
	 ClassHour INT,
	 GradeId INT,
	 CONSTRAINT fk_subjects FOREIGN KEY(GradeId) REFERENCES Grade(GradeId)
);
CREATE TABLE Result(
		Id INT,
		StudentNo VARCHAR(50),
		SubjectId INT,
		StudentResult INT,
		ExamDate datetime
		);
--result表添加外键
ALTER TABLE Result ADD CONSTRAINT fk_result FOREIGN KEY(StudentNo) REFERENCES Student(StudentNo);
ALTER TABLE Result ADD CONSTRAINT fk_result1 FOREIGN KEY(SubjectId) REFERENCES Subjects(SubjectId);

练习四:数据修改与删除

 给上表中添加测试数据

1. 将地址是西安市的更新为 西安科技二路
2. S1001 email 修改为空的字符串
3. 将第二门课的名字更新为 java 基础,课时为 60 ,班级编号是 2
4. S1001 ,课程编号为 2 的成绩 提高 5
5. S1004 , 课程编号为 3 的成绩更新为 60 ,考试时间更新为 2015-10-10
6. 经核实 S1004 课程编号为 2 的 缺考
7. 将计算机网络课程删除掉
--将地址是西安的更新为西安科技二路
update student SET Address = '西安科技二路' WHERE Address = '西安';
--将S1001的Email修改为空的字符串
UPDATE student SET StudentNo = '' WHERE StudentNo = 'S1001';
--将第二门课的名字更新为Java基础,课时为60,班级编号为2
UPDATE subjects SET SubjectName = 'java基础',ClassHour = 60,GradeId = 2 WHERE SubjectId = 2;
--将S1001,课程编号为2的成绩提高5分
UPDATE result SET StudentResult = StudentResult + 5 WHERE StudentNo = 'S1001' AND SubjectId = 2;
--将S1004,课程编号为3的成绩更新为60,考试时间更新为2015-10-10
UPDATE result SET StudentResult = 60,ExamDate = '2015-10-10' WHERE StudentNo = 'S1004' AND SubjectId = 3;
--经核实S1004课程编号为2的缺考
UPDATE result SET StudentResult = '缺考' WHERE StudentNo = 'S1004' AND SubjectId = 2;
--将计算机网络课程删除掉
SELECT SubjectId FROM subjects WHERE SubjectName = '计算机网络';
DELETE FROM subjects WHERE SubjectName = '计算机网络';
DELETE FROM result WHERE SubjectId = 2;

你可能感兴趣的:(数据库,数据库)