数据库实验1---创建数据库和表
Posted 小昔超厉害
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库实验1---创建数据库和表相关的知识,希望对你有一定的参考价值。
创建数据库和表
实验内容
- 使用SQL语句创建数据库studentsdb。
- 使用SQL语句选择studentsdb为当前使用数据库。
- 使用SQL语句在studentsdb数据库创建数据表student_info、curriculum、grade,三个表的数据结构如表1-表3所示。
表1 student_info表结构
列名 数据类型 允许NULL值 主键
学号 char(4) 否 是
姓名 char(8) 否 否
性别 char(2) 是 否
出生日期 date 是 否
家族住址 varchar(50) 是 否
表2 curriculum表结构
列名 数据类型 允许NULL值 主键
课程编号 char(4) 否 是
课程名称 varchar(50) 是 否
学分 int 是 否
表3 grade表结构
列名 数据类型 允许NULL值 主键
学号 char(4) 否 是
课程编号 char(4) 否 是
分数 int 是 否
4. 使用SQL语句INSERT向studentsdb数据库的student_info、curriculum、grade表插入数据,各表数据如表4-表6所示。
表4 student_info表的数据
学号 姓名 性别 出生日期 家族住址
0001 张青平 男 2000-10-01 衡阳市东风路77号
0002 刘东阳 男 1998-12-09 东阳市八一北路33号
0003 马晓夏 女 1995-05-12 长岭市五一路763号
0004 钱忠理 男 1994-09-23 滨海市洞庭大道279号
0005 孙海洋 男 1995-04-03 长岛市解放路27号
0006 郭小斌 男 1997-11-10 南山市红旗路113号
0007 肖月玲 女 1996-12-07 东方市南京路11号
0008 张玲珑 女 1997-12-24 滨江市新建路97号
表5 curriculum表的数据
课程编号 课程名称 学分
0001 计算机应用基础 2
0002 C语言程序设计 2
0003 数据库原理及应用 2
0004 英语 4
0005 高等数学 4
表6 grade表的数据
学号 课程编号 分数
0001 0001 80
0001 0002 91
0001 0003 88
0001 0004 85
0001 0005 77
0002 0001 73
0002 0002 68
0002 0003 80
0002 0004 79
0002 0005 73
0003 0001 84
0003 0002 92
0003 0003 81
0003 0004 82
0003 0005 75
5.使用SQL语句ALTER TABLE修改curriculum表的“课程名称”列,使之非空。
6. 使用SQL语句ALTER TABLE修改grade表的“分数”列,使其数据类型为decimal(5,2)。
7. 使用SQL语句ALTER TABLE为student_info表添加一个名为“备注”的数据列,其数据类型为varchar(50)。
8. 使用SQL语句创建数据库studb,并在此数据库下创建表stu,表结构与数据与studentsdb的student_info表相同。
9. 使用SQL语句删除表stu中学号为0004的记录。
10.使用SQL语句更新表stud中学号为0002的家庭住址为“滨江市新建路96号”。
11.删除表stud的“备注”列。
12.删除表stud。
13.删除数据库studb。
实验要求
1.粘贴SQL代码(小四号,宋体)及运行结果图,截图清晰。排版整齐统一,无大段空白。
2.学习通平台提交实验报告。
文件名:学号+ 姓名+班级+实验名
实验步骤及处理结果
粘贴SQL代码(小四号,宋体)及运行结果图
…
思考体会
参考资料
# 附 代码
#1. 使用SQL语句创建数据库studentsdb。
CREATE DATABASE studentsdb;
#2. 使用SQL语句选择studentsdb为当前使用数据库。
USE studentsdb;
#3. 使用SQL语句在studentsdb数据库创建数据表student_info、curriculum、grade
CREATE TABLE student_info
(
学号 char(4) PRIMARY KEY,
姓名 char(8) NOT NULL,
性别 char(2),
出生日期 date,
家族住址 varchar(50)
);
DESC student_info;
CREATE TABLE curriculum #课程表
(
课程编号 char(4) PRIMARY KEY,
课程名称 varchar(50),
学分 int
);
DESC curriculum;
CREATE TABLE grade
(
学号 char(4),
课程编号 char(4),
分数 int,
PRIMARY KEY(学号,课程编号) #联合主键
);
DESC grade;
#4. 使用SQL语句INSERT向studentsdb数据库的student_info、curriculum、grade表插入数据
INSERT INTO student_info(学号,姓名,性别,出生日期,家族住址)
VALUES('0001','张青平','男','2000-10-01','衡阳市东风路77号'),
('0002','刘东阳','男','1998-12-09','东阳市八一北路33号'),
('0003','马晓夏','女','1995-05-12','长岭市五一路763号'),
('0004','钱忠理','男','1994-09-23','滨海市洞庭大道279号'),
('0005','孙海洋','男','1995-04-03','长岛市解放路27号'),
('0006','郭小斌','男','1997-11-10','南山市红旗路113号'),
('0007','肖月玲','女','1996-12-07','东方市南京路11号'),
('0008','张玲珑','女','1997-12-24','滨江市新建路97号');
SELECT * FROM student_info;
INSERT INTO curriculum(课程编号,课程名称,学分)
VALUES('0001','计算机应用基础',2),
('0002','C语言程序设计',2),
('0003','数据库原理及应用',2),
('0004','英语',4),
('0005','高等数学',4);
SELECT * FROM curriculum;
INSERT INTO grade(学号,课程编号,分数)
VALUES('0001','0001',80),
('0001','0002',91),
('0001','0003',88),
('0001','0004',85),
('0001','0005',77),
('0002','0001',73),
('0002','0002',68),
('0002','0003',80),
('0002','0004',79),
('0002','0005',73),
('0003','0001',84),
('0003','0002',92),
('0003','0003',81),
('0003','0004',82),
('0003','0005',75);
SELECT * FROM grade;
#5.使用SQL语句ALTER TABLE修改curriculum表的“课程名称”列,使之非空。
ALTER TABLE curriculum
MODIFY 课程名称 varchar(50) NOT NULL;
DESC curriculum;
#6. 使用SQL语句ALTER TABLE修改grade表的“分数”列,使其数据类型为decimal(5,2)。
ALTER TABLE grade
MODIFY 分数 DECIMAL(5,2);
DESC grade;
#7. 使用SQL语句ALTER TABLE为student_info表添加一个名为“备注”的数据列,其数据类型为varchar(50)。
ALTER TABLE student_info
ADD 备注 VARCHAR(50);
DESC student_info;
#8. 使用SQL语句创建数据库studb,并在此数据库下创建表stu,表结构与数据与studentsdb的student_info表相同。
CREATE DATABASE studb;
USE studb;
CREATE TABLE stu
AS SELECT * FROM studentsdb.student_info;
DESC stu;
#9. 使用SQL语句删除表stu中学号为0004的记录。
SET SQL_safe_updates=0; #关闭安全模式,然后才能对表进行增删改操作
DELETE FROM stu WHERE 学号 = '0004';
SELECT * FROM stu;
#10.使用SQL语句更新表stud中学号为0002的家族住址为“滨江市新建路96号”。
UPDATE stu
SET 家族住址 = '滨江市新建路96号' WHERE 学号 = '0002' ;
SELECT * FROM stu;
#11.删除表stud的“备注”列。
ALTER TABLE stu
DROP COLUMN 备注;
SELECT * FROM stu;
#12.删除表stud。
DROP TABLE stu;
#13.删除数据库studb。
DROP DATABASE studb;
实验二 数据库和表的创建与管理
实验二 数据库和表的创建与管理
创建用于企业管理的员工管理数据库,数据库名为YGGL中,YGGL数据库中包括三个表:Employees(员工信息表)、Departments(部门信息表)、Salary(员工薪水情况表)。各表的结构如下表:
表1 Employees表结构
列名 |
数据类型 |
长度 |
是否允许为空 |
说明 |
EmployeeID |
char |
6 |
not null |
员工编号,主键 |
Name |
char |
10 |
not null |
姓名 |
Education |
char |
4 |
not null |
学历 |
Birthday |
date |
|
not null |
出生日期 |
Sex |
char |
2 |
not null |
性别 |
Workyear |
tinyint |
1 |
null |
工作年限 |
Address |
varchar |
20 |
null |
地址 |
Phonenumber |
char |
12 |
null |
电话号码 |
DepartmentID |
char |
3 |
null |
员工部门号,外键 |
表2 Departments表结构
列名 |
数据类型 |
长度 |
是否允许为空 |
说明 |
DepartmentID |
char |
3 |
not null |
部门编号,主键 |
Departmentname |
char |
20 |
not null |
部门名 |
Note |
text |
16 |
null |
备注 |
表 3 Salary表结构
列名 |
数据类型 |
长度 |
是否允许为空 |
说明 |
EmployeeID |
char |
6 |
not null |
员工编号,主键 |
Income |
float |
8 |
not null |
收入 |
Outcome |
float |
8 |
not null |
支出 |
1、 创建数据库YGGL;
Create database yggl;
2、 使用“show create database数据库名”查看数据库YGGL的字符集;
Show create database yggl;
3、 修改YGGL数据库的默认字符集为utf8;
Set character_setdatabase=’utf-8’;
4、 在YGGL数据库中创建表Employees;
Use yggl;
Create table employees
(employeeid char(6) not null primary key,
Name char(10) not null,
Education char(4) not null,
Birthday date not null,
Sex char(2) not null,
Workyear tinyint(1) null,
Address varchar(20) null,
Phonenumber char(12) null,
Departmentid char(3) null
);
5、 使用“desc(describe的缩写)表名”查看表信息;
Desc employees;
6、 使用“show create table 表名”查看创建表命令的详细信息;
Show create table employees;
7、 在YGGL数据库中创建表Departments;
Create table departments
(departments char(3) not null primary key,
Departmentname char(20) not null,
Note text(16) null
);
8、 在YGGL数据库中创建表Salary;
Create table salary
(employeeid char(6) not null primary key,
Income float(8) not null,
Outcome float(8) not null
);
9、 在YGGL数据库中创建表Salary1,要求使用数据库存储引擎为MyISAM,表结构与Salary相同;
Create table salary
(employeeid char(6) not null primary key,
Income float(8) not null,
Outcome float(8) not null
)engine=MyISAM;
10、 复制一个表Salary2,要求表结构与Salary表相同。
Create table salary2 like salary;
11、 在Salary1表中增加列:Salaries float;
Alter table salary1 add column salaries float;
12、 修改Salary1表中Income的默认值为2000,修改Salary表列名Salaries为“实发工资”;
Alter table salary1 alter income set default 2000;
Alter table salary change salaries truecome float;
13、 删除列“实发工资”;
Alter table salary drop column truecome;
14、 修改表名Salary1为“薪水表”
Alter table salary1 rename to money;
15、 删除表Salary1。
Drop table money;
以上是关于数据库实验1---创建数据库和表的主要内容,如果未能解决你的问题,请参考以下文章