练习一:
创建数据库company,在库中创建两个表offices和employees表
1.offices
表结构:
employees表结构:
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
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
。
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
表
2> 学生表: Student表
3> 科目表:Subjects表
4> 成绩表:Result表
5> 表关系:
--创建数据库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;