mysql练习题

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网站中,一个用户可以关注另一个用户,也可以被另一个用户关注,也可以互相关注,即常说的,我关注的,关注我的,好友。

 

请问,选择要设计一个用户表,如何实现上述功能。

 

 

在这个表中,选择要实现查询我关注的,以及我的好友,如何实现这个功能?

 

 

转载于:https://my.oschina.net/fseqy/blog/967562

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值