头歌 实验一 关系数据库标准语言SQL
制作不易!点个关注呗!为大家创造更多的价值!
目录
第一关:创建数据库
任务描述
本关任务:建立数据库
为了完成本关任务,你需要掌握:
如何创建数据库,显示已经建立的数据库
相关知识
创建数据库
创建数据库是在系统磁盘上划分一块区域用于数据的存储和管理。
命令格式:
CREATE DATABASE database_name;
创建完数据库之后我们可以通过show databases;命令查看MySQL中已存在的所有数据库。
任务要求
建立demo数据库
并显示所有数据库
开始你的任务吧,祝你成功!
代码如下:
#代码开始
CREATE DATABASE demo;
#代码结束
show databases;
第二关:创建表
任务描述
本关任务:建立数据表
相关知识
选择数据库
命令格式:
use 数据库名;
选择数据库为当前数据库
创建数据表
创建数据表的命令格式:
CREATE TABLE 表名
(
列名1 数据类型 字段属性,
列名2 数据类型 字段属性,
…
列名n 数据类型 字段属性
);
常用的数据类型如下
枚举型和集合型
在字段类型选择的时候,
对于数值类型,ZEROFILL 表示前导零填充数值类型值以达到列的显示宽度。
auto_increment表示对于数值型字段自动增加
not null表示不允许该字段值为null
显示数据表结构
describe 数据表名;
查看数据表的基本结构
任务要求
设有一个demo数据库,包括S,P,J,SPJ四个关系模式:
S(SNO,SNAME,STATUS,CITY)
P(PNO,PNAME,COLOR,WEIGHT)
J(JNO,JNAME,CITY)
SPJ(SNO,PNO,JNO,QTY)
供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;
工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商 供应某种零件 给某工程项目的数量为QTY。
demo数据库已经创建好,请按下面步骤完成任务。
1.切换到demo数据库
2.分别创建s、p、j和spj数据表
3.查看s、p、j和spj数据表的详细结构
注意:表名统一用小写。
数据表结构如下:
s表
p表
j表
spj表
开始你的任务吧,祝你成功!
代码如下:
#代码开始
#1. 切换到demo数据库
use demo;
#2. 分别创建s、p、j和spj数据表
/*清除表结构*/
-- DROP TABLE j, p,s,spj;
/**创建s表**/
CREATE TABLE s
(
sno CHAR(2) NULL ,
sname VARCHAR(10) ,
status INT(11) NULL ,
city VARCHAR(10)
);
-- /**创建p表**/
CREATE TABLE p
(
pno CHAR(2) null ,
pname VARCHAR(10),
color CHAR(1),
weight int
);
-- /**创建J表**/
CREATE TABLE j
(
jno CHAR(2) null ,
jname VARCHAR(10),
city VARCHAR(10)
);
-- /*创建spj表*/
CREATE TABLE spj
(
sno CHAR(2) null ,
pno CHAR(2),
jno CHAR(2),
qty INT
);
#3. 查看s、p、j和spj数据表的详细结构
describe s;
describe p;
describe j;
describe spj;
#代码结束
第三关:插入数据
任务描述
本关任务:在s、p、j和spj数据表中插入数据。
相关知识
在数据表中插入一条记录,对指定字段赋值
INSERT INTO <表名> (<字段1>[,<字段2>…])
VALUES (<表达式1>[,<表达式2>…])
向指定的数据表插入一条记录,并用指定的表达式对各个字段赋值,VALUES短语中各个表达式应该与数据表结构的字段顺序一一对应。
例如:
INSERT INTO spj(sno,jno,pno,qty) VALUES('S1','J1','P1',200);
在数据表中插入一条记录,对所有字段赋值
INSERT INTO <表名> VALUES (<表达式1>[,<表达式2>…])
向指定的数据表插入一条记录,并用指定的表达式对所有字段赋值,VALUES短语中各个表达式应该与数据表结构的字段顺序一一对应。
例如:
INSERT INTO spj VALUES('S1','J1','P1',200);
在数据表中插入多条记录
INSERT INTO <表名> (<字段1>[,<字段2>…])
VALUES (<表达式11>[,<表达式12>…]),
(<表达式21>[,<表达式22>…]),
(<表达式31>[,<表达式32>…])……
例如:
INSERT INTO spj VALUES('S1','J1','P1',200),('S1','P1','J3',100),('S1','P1','J4',700);
显示数据表的数据
插入数据之后我们可以通过select * from 数据表;命令查看该数据表的所有数据。
例如:
查看s表所有数据
select * from s;
任务要求
分别在s、p、j和spj数据表中插入数据
分别显示s、p、j和spj数据表的所有数据
s、p、j和spj数据表的原始数据如下所示:
(‘S1’,‘精益’,20,‘天津’)
(‘S2’,‘盛锡’,10,‘北京’)
(‘S3’,‘东方红’,30,‘北京’)
(‘S4’,‘丰泰盛’,20,‘天津’)
(‘S5’,‘为民’,30,‘上海’)
(‘P1’,‘螺母’,‘红’,12)
(‘P2’,‘螺栓’,‘绿’,17)
(‘P3’,‘螺丝刀’,‘蓝’,14)
(‘P4’,‘螺丝刀’,‘红’,14)
(‘P5’,‘凸轮’,‘蓝’,40)
(‘P6’,‘齿轮’,‘红’,30)
(‘J1’,‘三建’,‘北京’)
(‘J2’,‘一汽’,‘长春’)
(‘J3’,‘弹簧厂’,‘天津’)
(‘J4’,‘造船厂’,‘天津’)
(‘J5’,‘机车厂’,‘唐山’)
(‘J6’,‘无线电厂’,‘常州’)
(‘J7’,‘半导体厂’,‘南京’)
(‘S1’,‘P1’,‘J1’,200)
(‘S1’,‘P1’,‘J3’,100)
(‘S1’,‘P1’,‘J4’,700)
(‘S1’,‘P2’,‘J2’,100)
(‘S2’,‘P3’,‘J1’,400)
(‘S2’,‘P3’,‘J2’,200)
(‘S2’,‘P3’,‘J4’,500)
(‘S2’,‘P3’,‘J5’,400)
(‘S2’,‘P5’,‘J1’,400)
(‘S2’,‘P5’,‘J2’,100)
(‘S3’,‘P1’,‘J1’,200)
(‘S3’,‘P3’,‘J1’,200)
(‘S4’,‘P5’,‘J1’,100)
(‘S4’,‘P6’,‘J3’,300)
(‘S4’,‘P6’,‘J4’,200)
(‘S5’,‘P2’,‘J4’,100)
(‘S5’,‘P3’,‘J1’,200)
(‘S5’,‘P6’,‘J2’,200)
(‘S5’,‘P6’,‘J4’,500)
开始你的任务吧,祝你成功!
代码如下:
use demo;
#代码开始
#插入s表数据
INSERT INTO s VALUES('S1','精益',20,'天津');
INSERT INTO s VALUES('S2','盛锡',10,'北京');
INSERT INTO s VALUES('S3','东方红',30,'北京');
INSERT INTO s VALUES('S4','丰泰盛',20,'天津');
INSERT INTO s VALUES('S5','为民',30,'上海');
#插入p表数据
INSERT INTO p VALUES('P1','螺母','红',12);
INSERT INTO p VALUES('P2','螺栓','绿',17);
INSERT INTO p VALUES('P3','螺丝刀','蓝',14);
INSERT INTO p VALUES('P4','螺丝刀','红',14);
INSERT INTO