MySQL练习题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL练习题相关的知识,希望对你有一定的参考价值。

技术分享

?

?

  1. 查找my.ini文件,查看与character-set相关的配置项,如果不是utf8,请将其更改为utf8。
  2. 在cmd窗口中使用命令行登录数据库服务器。
  3. 查看当前服务器上有哪些数据库?写出命令及查询结果。
  4. 设置当前字符集为gbk。
  5. 创建自己的数据库,后面所有的练习都以这个数据库为基础,命名自由(如自己的名字拼音简写)。
  6. 选择自己的数据库。
  7. 请问char和varchar有何区别?
  8. 对于字符串数据来说,是使用单引号好还是双引号好?为什么?

    表名

    goods,商品表

    列名

    类型/长度

    是否为空

    默认值

    索引

    附加

    备注

    goods_id?

    ?????

    商品编号

    goods_sn?

    ?????

    商品货号

    goods_name?

    ?????

    商品名

    cate?

    ?????

    类型

    brand?

    ?????

    品牌

    market_price?

    ?????

    市场价格

    shop_price?

    ?????

    商城价格

    goods_number?

    ?????

    库存量

    goods_img?

    ?????

    商品图片

    is_hot?

    ?????

    是否热销

    goods_desc?

    ?????

    商品详情

    add_time?

    ?????

    添加时间

    补充说明

    ?
  9. 创建一个商品表goods,字段已经列出,请填写完整:
  10. 写出创建商品表的SQL语句。
  11. 分别查看创建表语句和表结构。
  12. 向goods表中插入记录,各种insert语句都使用一遍。

    ?

    ?

    [注:下面的题目(13-27)都是ecshop商城中的ecs_goods表来练习,为使结果清晰,建议只选择所需的列,而不要用select * ]

  13. 查询主键为30的商品。
  14. 查询不属于第三个栏目的所有商品。[说明:栏目是指cat_id列,下同]
  15. 查询本店价格高于3000的商品。
  16. 查询本店商品价格低于或等于100元的商品。
  17. 取出第4个栏目或第11个栏目的商品(两种方式)。
  18. 取出本店价格大于100小于500的商品(两种方式)。
  19. 取出名字以"诺基亚"开头的商品。
  20. 取出名字为"诺基亚Nxx"(比如诺基亚N96)的商品。
  21. 取出不在第3个栏目和不在第11个栏目的商品。
  22. 取出名字不以"诺基亚"开头的商品。
  23. 取出价格大于100且小于300,或者大于4000且小于5000的商品。
  24. 取出第3个栏目下面价格在1000到3000之间,并且点击量大于5,以"诺基亚"开头的系列商品。
  25. 取出第3个栏目下面价格小于1000或价格大于3000,并且点击量大于5的系列商品。
  26. 将商城价格低于100元的商品的商城价格和市场价格上调50元。
  27. 删除所有的充值卡,即cat_id为13、14和15的列。

    ?

    ?

    [注:下面的练习(28-35)都以自己的商品表,即goods表进行操作,]

  28. 将表名goods更改为my_goods。
  29. 将cat列和brand列,分表更名为cat_id和brand_id,并且其类型更改为smallint。
  30. 将goods_weight的列类型更改为decimal(10,2)。
  31. 在goods_weight前面增加click_count列(表示点击量),类型为int。
  32. 在is_hot列后面,增加is_best(是否精品),is_new(是否新品),类型为tinyint。
  33. 删除add_time列。
  34. 删除主键(注意不是删除goods_id列,而是删除主键,这一列仍然保留)。
  35. 增加主键,主键仍为goods_id列。

    ?

  36. mark和jack各自创建了一张表,用来存储创下纪录的的鱼的信息。Mark的表中列有鱼的俗名、学名、捕获地点以及重量。Jack的表????也有鱼的俗名,重量,还包括了捕获者的姓名,捕获日期,而且他的地点也被分成两列,分别纪录捕获鱼的水域和州名。你认为哪个表设计的更好?

    技术分享技术分享

    技术分享

    技术分享技术分享

    ?

    技术分享

    ?

  37. 实体之间的关系有几种?
  38. mysql中,使用外键要注意些什么?
  39. 规范化表有哪些好处?常见的规范有哪几种?
  40. 第一范式(1NF)的条件是什么?
  41. 什么情况下才会出现部分依赖和传递依赖?
  42. 你认为在设计表的时候,应该达到几范式?
  43. 数据库设计题

    学生

    ?

    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)针对我们自己的商城数据库而言]

  44. 完成类别表category的设计。
  45. 完成品牌表brand的设计。
  46. 完成属性表attribute的设计。
  47. 完成商品属性对应表goods_attr的设计。
  48. 完成订单表order的设计。(可以扩展完成相关表的设计)
  49. 完成订单商品对应表的设计。

    ?

    [注:下面的题目(50-67)都是ecshop商城中的ecs_goods表来练习]

  50. 查出最贵商品的商品信息。
  51. 查出最大(最新)的商品的编号。
  52. 查出最便宜商品的价格。
  53. 取出最小(最旧)的商品编号。
  54. 查出本店所有商品的库存量(注:goods_number表示库存量)。
  55. 查出本店所有商品的平均价格。
  56. 查出本店共有多少种商品。
  57. 查出本店商品价格和市场价格的差价。
  58. 查出每个商品所积压的货款。(注:货款 = 本店价格 * 库存量,下同)
  59. 查询本店积压的总货款。
  60. 查询出每个栏目下积压的总货款。
  61. 查询比市场价省200元以上的商品及该商品所省的钱 (分别用where和having实现)。
  62. 查询积压货款超过2W的栏目,以及该栏目积压的货款。
  63. 按价格由高到低排序。
  64. 按栏目由低到高排序,栏目内部按价格由高到低排序。
  65. 取出价格最高的前三名商品。
  66. 取出点击量前3到前5名的商品。
  67. 查出每个栏目下的最贵的商品。(^_^,有难度哦

    ?

  68. 设有成绩表如下所示,试查询两门及两门以上不及格同学的平均分。

    编号

    姓名

    科目

    分数

    1?

    张三

    数学

    90?

    2?

    张三

    语文

    50?

    3?

    张三

    地理

    40?

    4?

    李四

    语文

    55?

    5?

    李四

    政治

    45?

    6?

    王五

    政治

    30?

    ?

    ?

    ?

    ?

    [注:下面的题目(69-76)都是ecshop商城中的ecs_goods表来练习]

  69. 取出第3个栏目下的商品的商品ID,商品名,栏目名,价格。
  70. 取出第4个栏目下的商品的商品ID,商品名,品牌名,价格。
  71. 取出所有商品的商品ID,商品名,栏目名,品牌名,价格。
  72. 统计每个类别下商品的种类,结果要显示类别名和种类数。
  73. 查询出最新一行商品。(多种方法)
  74. 查出每个栏目下的最贵的商品。(多种方法,^_^,有难度哦
  75. 查出有商品的栏目的栏目信息。(多种方式)
  76. 查出每个栏目的父栏目,一并显示出来。

    ?

  77. 此题以43题的数据库为基础,在school数据库中,我们有一张student数据表用来记录学生、一张grade_event表来记录已经发生的考试或测验事件,还有一个score数据表来列出每位学生的每次考试或测验成绩。如果某个学生在某次测验或测试的当天生病了,score表就不会有该名学生在那次事件中的成绩。因故误考的学生需要参加补考,请你找出这些误考学生的详细信息,包括姓名、日期和事件(Q或者T)。注,若没有数据,可以用school.sql文件。(^_^,有难度哦

    ?

    ?

  78. 为了记录足球比赛的结果,设计表如下,

    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练习题的主要内容,如果未能解决你的问题,请参考以下文章

0519考试练习题

Mysql练习题

MySQL 练习题附加题

MySQL操作命令(其二)

mysql练习

6.7 如何插外键 mysql 练习题