请提交纸质版实验报告
姓名:              班级:              学号:
[实验名称]:SQL
[实验日期]
[实验目的]
(1)掌握使用SQL语句创建表、修改表、删除表以及对表中数据进行增加、删除、修改、查询的方法。
(2)掌握使用SQL进行创建视图、查询视图以及创建索引等方法。
[实验要求]
请根据以下题目写出相应SQL语句。
[实验步骤描述]
表1 Users表(用户信息表)
sql数据库创建表步骤
列名
含义
数据类型
约束
username
用户名
VARCHAR(20)
PRIMARY KEY
realname
真实名称
VARCHAR(16)
NOT NULL
age
年龄
TINYINT
大于0小于150
balance
账户余额
DECIMAL(7,2)
默认值为0
表2 Goods表(商品信息表)
列名
含义
数据类型
约束
goodsno
商品编号
CHAR(5)
PRIMARY KEY
goodsname
商品名称
VARCHAR(20)
NOT NULL
price
价格
DECIMAL(7.2)
大于0
storage
库存数量
INT
大于0
表3 Buy表(购物记录表)
列名
含义
数据类型
约束
buyno
交易记录编号
INT
PRIMARY KEY
username
用户名
VARCHAR(20)
FOREIGN KEY,
NOT NULL
goodsno
商品编号
CHAR(5)
FOREIGN KEY,
NOT NULL
quantity
购买数量
INT
大于0
buydate
购买日期
DATETIME
1.按照表1、2、3中的要求创建表Users、Goods和Buy。
2.修改表Users,添加列address,变长字符串,最长30位。
3.修改表Goods,添加列weight,整型,列unit,定长字符串,最大长度4位。
4.删除表Users中的列address。
5.查询所有商品的goodsnogoodsname
6.查询所有用户的usernamerealname
7.查询所有的购买信息。
8.查询所有商品的goodsnamestorage,并将列标题改为“商品名称”和“商品库存”。
9.查询所有购买了00001商品的用户名username
10.查询年龄大于40岁的用户信息。
11.查询出生在70年代的用户信息。
12.查询手提电脑、鼠标和键盘的价格。
13.查询所有姓“李”的用户的用户名username和真名realname
14.查询所有不姓“李”的用户的用户名username
15.查询所有姓“张”或“李”的用户信息。
16.查询真名是两个字的用户信息。
17.查询用户名中含“明”的用户信息。
18.查询哪些用户没有记录年龄。
19.查询用户的信息,按照年龄从小到大显示
20.查询商品信息,按照价格从高到低排序
21.查询用户bird购买的商品数量
22.查询所有用户购买的商品总量
23.查询每个用户购买的商品数量
24.查询购买00001号商品或00002号商品用户的数量
25.查询共有几种商品可售
26.查询每种商品的库存量和库存总金额
27.查询最贵和最便宜的商品名称
28.查询所有用户的平均年龄
29.查询购买商品数量高于1000件的用户名。
30.查询用户bird购买的goodsno,goodsname,price
31.查询李飞购买的商品的goodsno
32.查询李飞购买的商品的goodsno,goodsname,price
33.查询李飞购买的商品的总数量
34.查询年龄最小的用户购买的商品信息
35.查询高于平均商品价格的商品信息
36.查询每个用户购买的商品信息、用户信息
37.查询没有购买商品的用户信息
38.查询所有商品的售出数量及用户数量
39.查询各个年龄段用户购买的商品最高价格、数量和平均价格
40.在表GOODS中插入商品信息(00020,洗衣机,320010
41.在表Users中插入用户信息:username:疯狂的石头,realname:郭帅
42.在表BUYS中插入购买信息:疯狂的石头购买洗衣机2台,购买编号14
43.修改表BUYS的购买信息,疯狂的石头购买了洗衣机是3
44.修改摄像头的商品价格和库存量,分别是20100
45.修改用户信息,使birdbanlance和用户flybalance一样
46.删除用户bird的购买信息
47.删除冯坤的购买信息
48.删除库存量小于100的商品信息
49.创建价格超过1000元(包含1000元)的商品信息视图Goods_View,包含商品的编号,名称,价格和库存数量。
50.查询视图Goods_View中的信息。
51.创建价格超过1000元(包含1000元)的商品信息视图Goods_Check_View,包含商品的编号、名称、价格和库存数量,并且要求对该视图的所有修改满足价格条件。
52.创建用户名为happy的用户所购商品的信息视图happy_View,其中包含用户名、用户真实姓名、所购商品名称、所购数量及购买日期等信息。
53.创建每种商品的销售信息视图Goods_Sales_View,其中包含商品的编号、商品名称、商品的总销售量、购买该商品的人数等信息。
54.在Goods表的price列创建升序索引IDX_Price。
55.在Goods表的storag
56.e列创建降序索引IDX_Storage。
57.创建复合索引Buy_Unite,先在Buy表的username列创建升序索引,若username相同,再在goodsno列创建降序索引。
create database experiment
create Table Users(
username varchar(20) primary key,
realname varchar(16) not null,
age tinyint check(age>0 and age<150),
balance decimal(7,2) default 0
)
create Table Goods(
goodsno char(5) primary key,
goodsname varchar(20) not null,
price decimal(7,2) check(price>0),
storage int check(storage>0)
)
create Table Buy(
buyno int primary key,
username varchar(20) foreign key(username) references Users(username),
goodsno char(5) foreign key(goodsno) references Goods(goodsno),
quantity int check(quantity>0),
buydate datetime,
)
--2
alter table users
add address char(30)
--3
alter table goods
add weight int
alter table goods
add unit char(4)
--4
alter table users
drop column address
--5
dsno from goods
--6
select Users.alname from users
--7
select*from buy
--8
dsname as 商品信息 ,goods.storage as 商品库存 from goods
--9
select users.username from users,buy dsno='00001'
--10
select * from users where age >40
--11
select * from users where age >1970
--12
select goodsname from goods where goodsname='手提电脑' and goodsname ='鼠标'and goodsname='键盘'
--13
select username,realname from users where realname like '李%'
--14
select username from users where realname not like '李%'
--15
select * from users where username  like '李%'and username like'张%'
--16
select Users.username from Users where username like '__'
--17
select Users.username from Users where username like '明'
--18
select users.age from users where age is null
--19
select * from users  order by users.age asc
--20
select * from Goods order by price desc
--21
select quantity from Buy where username = 'bird'
--22
select SUM(quantity) from Buy
--23
select SUM(quantity) from Buy group by username
--24
select quantity from Buy where goodsno = '00001' or goodsno = '00002'
--25
select COUNT(goodsno) from Goods where storage > 0
--26
select SUM(storage), SUM(storage * price) from Goods group by goodsno
--27
select goodsname from Goods where price = (select MAX(price) from Goods) or price = (select MIN(price) from Goods)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。