ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

数据库基础.数据库查询及约束【作业】

2021-05-15 11:03:05  阅读:134  来源: 互联网

标签:CNT goods NAME trademark Price 作业 查询 Type 数据库



文章目录



一、前言

这道题目还是考察了一下对数据库的基本操作是否熟练


二、题目:根据信息创建对应的表单

已知:商品信息表

表名为:Goods,包含ID(自增主键)、NAME(名称、惟一性约束)、Price(价格)、trademark(品牌)和Type(类型,默认值为‘手机’)字段。

表单信息

(1).写出建表语句
(2). 查询价格在2000以下的商品名称和剩余数量

(3). 统计各个类别下的商品数量

(4). 按价格排序输出全部商品

(5). 统计各个类别下的最低商品价格

(6). 查询Samsung品牌下的所有商品

(7). 查询价格最高的前3个商品信息

(8). 查询Apple品牌下的商品类别总数

(9). 写出SQL语句,向表中插入一条记录

(10). 写出SQL语句,修改编号为510093的商品数量为5

(11).写出sql语句,删除数量为0的商品

三、遇到的BUG:

1.自增语句无法使用

我们看到题目要求写出自增语句,对ID进行自增操作,所以我们上网搜寻了一下,找到identity(1,1)是可以作为自增语句来使用的。

Create table Goods (
	ID int primary key identity(1,1), 
	NAME char(30),
	Price int,
	trademark char(30),
	Type char(30) default '手机' );ID primary key identity(1,1);

我们将上述程序在数据库里操作之后,出现以下情况:
程序出现BUG

为什么identity(1,1)不能用在这里?

identity不能用于MySQL的原因:

  • 原因是MySQL没有identity函数,在MySQL中设置自动编号是需要用auto_increment的。
create table student(
	id int primary key auto_increment,
	name varchar(20))#设置自增的初值AUTO_INCREMENT=<你期望的起始id值>ALTER TABLE <表名> AUTO_INCREMENT=<你期望的起始id值>#eg:alter table student auto_increment = 100;

四、答案仅供参考

1.创建表格

//建表create table Goods (ID int auto_increment primary key not null, NAME char(30),Price int ,CNT int ,trademark char(30),Type char(30) default '手机' );//设置自增初值alter table goods auto_increment = 51091;insert into goods (NAME,Price,CNT,trademark,Type) value('MacBook Air MD224',8799,30,'Apple','笔记本');insert into goods (NAME,Price,CNT,trademark,Type) value('Galaxy Note II N7100',5199,100,'Samsung','手机');insert into goods (NAME,Price,CNT,trademark,Type) value('MV800',1499,200,'Samsung','相机');insert into goods (NAME,Price,CNT,trademark,Type) value('K860 四核 3G',2188,300,'Lenovo','手机');insert into goods (NAME,Price,CNT,trademark,Type) value('S7562 3G',1798,200,'Samsung','手机');insert into goods (NAME,Price,CNT,trademark,Type) value('Y470P-IFI',4299,200,'Lenovo','笔记本');insert into goods (NAME,Price,CNT,trademark,Type) value('NP-E3415-J01CN',3300,150,'Samsung','笔记本');insert into goods (NAME,Price,CNT,trademark,Type) value('iPhone 4S 64G',4799,220,'Apple','手机');

此时表格已经创建完毕:

出

2.剩余的题目

#第二题(2). 查询价格在2000以下的商品名称和剩余数量select NAME,CNT,Price from goods where price < 2000;#第三题(3). 统计各个类别下的商品数量select type,sum(cnt) SumType from goods group by type;#(4). 按价格排序输出全部商品select ID, name,price, trademark from goods order by price asc;#(5). 统计各个类别下的最低商品价格select type, min(price) minPriceofType from goods group by type;#(6). 查询Samsung品牌下的所有商品select ID,name from goods where trademark = 'Samsung';#(7). 查询价格最高的前3个商品信息select id, name, price, cnt, type from goodsorder by price desc limit 0,3;#(8). 查询Apple品牌下的商品类别总数select type, count(ID) from goods where trademark = 'Apple' group by type;#(9). 写出SQL语句,向表中插入一条记录insert into goods value(5555,'Legin_Y7000',6999,1,'lenove','笔记本');#(10). 写出SQL语句,修改编号为51093的商品数量为5update goods set cnt = 5 where id = 51093;#(11).写出sql语句,删除数量为0的商品delete from goods where cnt = 0;

执行完所有程序之后:

表格创建完毕!

标签:CNT,goods,NAME,trademark,Price,作业,查询,Type,数据库
来源: https://blog.51cto.com/u_15202146/2777258

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有