MySQL练习题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL练习题相关的知识,希望对你有一定的参考价值。
?
?
- 查找my.ini文件,查看与character-set相关的配置项,如果不是utf8,请将其更改为utf8。
- 在cmd窗口中使用命令行登录数据库服务器。
- 查看当前服务器上有哪些数据库?写出命令及查询结果。
- 设置当前字符集为gbk。
- 创建自己的数据库,后面所有的练习都以这个数据库为基础,命名自由(如自己的名字拼音简写)。
- 选择自己的数据库。
- 请问char和varchar有何区别?
- 对于字符串数据来说,是使用单引号好还是双引号好?为什么?
表名
goods,商品表
列名
类型/长度
是否为空
默认值
索引
附加
备注
goods_id?
? ? ? ? ? 商品编号
goods_sn?
? ? ? ? ? 商品货号
goods_name?
? ? ? ? ? 商品名
cate?
? ? ? ? ? 类型
brand?
? ? ? ? ? 品牌
market_price?
? ? ? ? ? 市场价格
shop_price?
? ? ? ? ? 商城价格
goods_number?
? ? ? ? ? 库存量
goods_img?
? ? ? ? ? 商品图片
is_hot?
? ? ? ? ? 是否热销
goods_desc?
? ? ? ? ? 商品详情
add_time?
? ? ? ? ? 添加时间
补充说明
? - 创建一个商品表goods,字段已经列出,请填写完整:
- 写出创建商品表的SQL语句。
- 分别查看创建表语句和表结构。
- 向goods表中插入记录,各种insert语句都使用一遍。
?
?
[注:下面的题目(13-27)都是ecshop商城中的ecs_goods表来练习,为使结果清晰,建议只选择所需的列,而不要用select * ]
- 查询主键为30的商品。
- 查询不属于第三个栏目的所有商品。[说明:栏目是指cat_id列,下同]
- 查询本店价格高于3000的商品。
- 查询本店商品价格低于或等于100元的商品。
- 取出第4个栏目或第11个栏目的商品(两种方式)。
- 取出本店价格大于100小于500的商品(两种方式)。
- 取出名字以"诺基亚"开头的商品。
- 取出名字为"诺基亚Nxx"(比如诺基亚N96)的商品。
- 取出不在第3个栏目和不在第11个栏目的商品。
- 取出名字不以"诺基亚"开头的商品。
- 取出价格大于100且小于300,或者大于4000且小于5000的商品。
- 取出第3个栏目下面价格在1000到3000之间,并且点击量大于5,以"诺基亚"开头的系列商品。
- 取出第3个栏目下面价格小于1000或价格大于3000,并且点击量大于5的系列商品。
- 将商城价格低于100元的商品的商城价格和市场价格上调50元。
- 删除所有的充值卡,即cat_id为13、14和15的列。
?
?
[注:下面的练习(28-35)都以自己的商品表,即goods表进行操作,]
- 将表名goods更改为my_goods。
- 将cat列和brand列,分表更名为cat_id和brand_id,并且其类型更改为smallint。
- 将goods_weight的列类型更改为decimal(10,2)。
- 在goods_weight前面增加click_count列(表示点击量),类型为int。
- 在is_hot列后面,增加is_best(是否精品),is_new(是否新品),类型为tinyint。
- 删除add_time列。
- 删除主键(注意不是删除goods_id列,而是删除主键,这一列仍然保留)。
- 增加主键,主键仍为goods_id列。
?
- mark和jack各自创建了一张表,用来存储创下纪录的的鱼的信息。Mark的表中列有鱼的俗名、学名、捕获地点以及重量。Jack的表????也有鱼的俗名,重量,还包括了捕获者的姓名,捕获日期,而且他的地点也被分成两列,分别纪录捕获鱼的水域和州名。你认为哪个表设计的更好?
?
?
- 实体之间的关系有几种?
- 在mysql中,使用外键要注意些什么?
- 规范化表有哪些好处?常见的规范有哪几种?
- 第一范式(1NF)的条件是什么?
- 什么情况下才会出现部分依赖和传递依赖?
- 你认为在设计表的时候,应该达到几范式?
- 数据库设计题
学生
?
ID 姓名
分数
Q Q T Q Q T
9/3 9/6 9/9 9/16 9/23 10/1
1?
范统
14?
10?
73?
14?
15?
67?
2?
沈京兵
17?
10?
68?
17?
14?
73?
3?
史珍香
15?
10?
78?
12?
17?
82?
4?
赖月京
14?
13?
85?
13?
19?
79?
?
这是一张纸质记分簿里的某一页,学生的姓名和ID号列在表格的左侧,考试(T)或测验(Q)的举行日期则列在表格的顶部。表格显示,9月的3、6、16、23日进行了测验,9月9日和10月1日进行了考试。
请设计出满足3NF的数据库来纪录这些信息。为避免混淆,可专门创建一个数据库,命名为school。
?
[注:下面的题目(44-49)针对我们自己的商城数据库而言]
- 完成类别表category的设计。
- 完成品牌表brand的设计。
- 完成属性表attribute的设计。
- 完成商品属性对应表goods_attr的设计。
- 完成订单表order的设计。(可以扩展完成相关表的设计)
- 完成订单商品对应表的设计。
?
[注:下面的题目(50-67)都是ecshop商城中的ecs_goods表来练习]
- 查出最贵商品的商品信息。
- 查出最大(最新)的商品的编号。
- 查出最便宜商品的价格。
- 取出最小(最旧)的商品编号。
- 查出本店所有商品的库存量(注:goods_number表示库存量)。
- 查出本店所有商品的平均价格。
- 查出本店共有多少种商品。
- 查出本店商品价格和市场价格的差价。
- 查出每个商品所积压的货款。(注:货款 = 本店价格 * 库存量,下同)
- 查询本店积压的总货款。
- 查询出每个栏目下积压的总货款。
- 查询比市场价省200元以上的商品及该商品所省的钱 (分别用where和having实现)。
- 查询积压货款超过2W的栏目,以及该栏目积压的货款。
- 按价格由高到低排序。
- 按栏目由低到高排序,栏目内部按价格由高到低排序。
- 取出价格最高的前三名商品。
- 取出点击量前3到前5名的商品。
- 查出每个栏目下的最贵的商品。(^_^,有难度哦)
?
- 设有成绩表如下所示,试查询两门及两门以上不及格同学的平均分。
编号
姓名
科目
分数
1?
张三
数学
90?
2?
张三
语文
50?
3?
张三
地理
40?
4?
李四
语文
55?
5?
李四
政治
45?
6?
王五
政治
30?
?
?
?
?
[注:下面的题目(69-76)都是ecshop商城中的ecs_goods表来练习]
- 取出第3个栏目下的商品的商品ID,商品名,栏目名,价格。
- 取出第4个栏目下的商品的商品ID,商品名,品牌名,价格。
- 取出所有商品的商品ID,商品名,栏目名,品牌名,价格。
- 统计每个类别下商品的种类,结果要显示类别名和种类数。
- 查询出最新一行商品。(多种方法)
- 查出每个栏目下的最贵的商品。(多种方法,^_^,有难度哦)
- 查出有商品的栏目的栏目信息。(多种方式)
- 查出每个栏目的父栏目,一并显示出来。
?
- 此题以43题的数据库为基础,在school数据库中,我们有一张student数据表用来记录学生、一张grade_event表来记录已经发生的考试或测验事件,还有一个score数据表来列出每位学生的每次考试或测验成绩。如果某个学生在某次测验或测试的当天生病了,score表就不会有该名学生在那次事件中的成绩。因故误考的学生需要参加补考,请你找出这些误考学生的详细信息,包括姓名、日期和事件(Q或者T)。注,若没有数据,可以用school.sql文件。(^_^,有难度哦)
?
?
- 为了记录足球比赛的结果,设计表如下,
team:参赛队伍表
字段名称
类型
描述
teamID?
int?
主键
teamname?
varchar(20)?
队伍名称
?
match:赛程表
字段名称
类型
描述
matchID
int?
主键
hostTeamID?
int?
主队的ID
gusetTeamID?
int?
客队的ID
marchResult?
varchar(20)?
比赛结果
matchTime?
date?
比赛日期
?
其中,match赛程表中的hostTeamID与guestTeamID 都和team表中的teamID关联,查出2006-6-1到2006-7-1之间举行的所有比赛,并且用以下形式列出:
拜仁 2:0 不莱梅 2006-6-21
?
?
?
?
?
?
?
?
?
其他题目补充:
有如下两张表,
a表
id num
a 5
b 10
c 15
d 10
?
b表
id num
b 5
c 15
d 20
e 99
?
希望得到如下结果:
a 5
b 15
c 30
d 30
e 99
?
?
在SNS网站中,一个用户可以关注另一个用户,也可以被另一个用户关注,也可以互相关注,即常说的,我关注的,关注我的,好友。
?
请问,选择要设计一个用户表,如何实现上述功能。
?
?
在这个表中,选择要实现查询我关注的,以及我的好友,如何实现这个功能?
?
以上是关于MySQL练习题的主要内容,如果未能解决你的问题,请参考以下文章