/*创建*/
/*对象级别*/
create database 数据库名 /*创建数据库*/
drop database 数据库名 /*删除数据库*/
create table 表名 /*创建表*/
drop table 表名 /*删除表*/
create view 视图 /*创建视图*/
create function 函数名 /*创建函数*/
create procedure/proce 存储过程 /*创建存储过程*/
create trigger 触发器/*创建触发器*/
create login 登录 /*创建登录*/
create user /*创建用户*/
/*记录级别*/
表的行:记录
表的列:属性
/*数据库文件*/
1.主数据库文件
只能有一个,必须有
后缀名:.mdf
2.次数据库文件
可以有多个,可以没有
后缀名:.ndf
3.日志文件
可以有多个,必须有
后缀名:.ldf
/*一、创建数据库*/
create database 数据库名
on primary(
/*逻辑文件名*/
name=studb,
/*存储路径*/
filename='D:\sql\studb.mdf',
/*初始化大小*/
size=100,
/*数据库文件最大值,unlimted不限制大小*/
maxsize=200,
/*文件增长*/
/*1,绝对大小增长2.百分比增长*/
filegrowth=5%
)
log on(
/*逻辑文件名*/
name=studblog,
/*存储路径*/
filename='D:\sql\studblog.ldf',
/*初始化大小*/
size=100,
/*数据库文件最大值,unlimted不限制大小*/
maxsize=200,
/*文件增长*/
/*1,绝对大小增长2.百分比增长*/
filegrowth=5%
)
/*创建数据库bookDB,初始大小150MB,逻辑名book,不限制文件大小,主数据库文件存在D盘的bookdb下的bookdata.mdf,每次增长25%,日志文件同一目录,逻辑名和文件名都加上log,日志文件最大值不超过200MB,日志每次增长12MB*/
create database bookDB
on primary(
name=book,
filename='D:\bookdb\bookdata.mdf',
size=150,
maxsize=unlimited,
filegrowth=25%
)
log on(
name=booklog,
filename='D:\bookdb\bookdatalog.ldf',
size=150,
maxsize=200,
filegrowth=12
)
select * form stu where name='张三';
/*几个关键字的用法*/
use 数据库名
exec 执行存储过程
go 执行某一条语
/*修改数据库(对象级别)*/
/*创建*/
create database 数据库名
/*修改*/
alter database 数据库名
add:增加
modify:修改
remove:删除
/*删除*/
dorp database 数据库名
/*修改数据库(记录级别)*/
/*插入*/
insert xxx into xxx;
/*修改*/
update xxx from xxx;
/*删除*/
delete from xxx;
/*创建数据库studentDB,按系统默认参数生成*/
create database 创建数据库studentDB
/*删除数据库marketinfo的数据库文件markndf*/
alter database marketinfo
remove file markndf
/*为教学管理数据库增加容量,原来的数据库文件JXGL.mdf的初始分配空间3MB至10MB*/
alter database JXMG
modify file(
name=JXMG,
size=10
)
/*数据库重命名,使用系统的存储结构sp=systeam proceure*/
sp_renamedb '原数据库名','新数据库名'
/*把学生数据库studentDB改成stu_DB*/
exec sp_renamedb 'studentdb','sru_DB'
/*变量*/
@:局部变量
@@:全局变量
/*分离*/
sp_detach_db '数据库名'
/*分离teaching数据库,并将skipchecks设为ture*/
exec sp_detach_db 'teaching','ture'
/*附加*/
/*方式1:T-SQL语句*/
create database 数据库名
on (
filename='C:\sql\sru.mdf'
)
for attach
/*方式2:使用系统储存过程*/
/*单一文件附加*/
exec sp_attach_simple_file_db
@dbname='数据库名',
@physname='C:\data\teaching.mdf'
/*多文件附加,中间加逗号'*/
exec sp_attach_db
@dbname='数据库名',
@filename='C:\data\teaching.mdf',
@filename='C:\data\teaching_log.ldf'
/*附加teaching数据库到当前服务器*/
exec sp_attach_db
@dbname='teaching',
@physname=
/*备份*/
sa:system_administrator
dbo:da_owner
/*创建一个备份设备*/
exec sp_addbackupdevice '设备类型','逻辑名','路径'
/*设备类型*/
tape:磁带
DISK:硬盘
/*1.完全数据库备份*/
backup database 数据库名
to DISK='\路径\xxx.bak'
/*附加条件*/
/*设置名称*/
with name=名称
/*是否覆盖*/
with init | noinit
/*设置密码*/
password='123456'
/*设置日期*/
date='日期'
/**/
/*把bookDB数据库备份到硬盘D盘下的back文件夹下的bookdb.bak,追加到原来备份后面*/
backup database bookDB
to DISK='D:\back\bookdb.bak'
with noinit
/*2.差异数据库备份*/
backup database 数据库名
to DISK='\路径\xxx.bak'
with differential
/*附加条件*/
/*设置名称*/
with name=名称
/*是否覆盖*/
with init | noinit
/*设置密码*/
password='123456'
/*设置日期*/
date='日期'
/*备份数据库stu,到C盘sql文件夹,文件名自定义,差异备份,覆盖原文件*/
backup database stu
to disk='C:\sql\back.bak'
with differential
with init
/*3.文件或文件组备份*/
backup database 数据库名
/*4.事务日志备份*/
backup log 数据库名
to 设备
with
/*还原,只能还原备份的数据*/
restore database 数据库名
from disk='路径\xxx.bak'
with
name=''
deccription=''
第二节课
一、数据类型
1.数值类型:不用单引号
整数
int:整形,有正负之分
smallint:短整型
bit:比特 0或1
小数
float(n):浮点型,n:数的总长
double:
real:实型,小数
numeric(p.s):p:数的整体位数,s:小数位数
money:货币
2.字符类型
字母,汉字,特殊字符
chat(n):定长字符,n:字长多少位
身份证:char(18)
手机号:chat(18)
varchar:变长字符类型
nchar()
nvarchar()
ASCII码:8位二进制
bit:0或1
byte:字节 8位
word:2byte 16位 汉字是2字节
1KB=1024byte
1MB=1024KB
1GB=1024MB
3.日期类型
date:YYYY-MM-DD
time:HH:MM:SS
datetime:YYYY-MM-DD HH:MM:DD
datetime2:
getdate():获取当前日期
year(参数):返回年,返回数值类型
month(参数):返回月,返回数值类型
day(参数):返回日,返回数值类型
4.其他类型
boolean:布尔值:true|false
binary:二进制
image:图片设计
text:文本类型
二、约束
1.实体约束
2.参照约束
3.自定义约束
1.空值约束
null, not null
2.主键:关系数据库,能唯一区分其他记录的属性的组合
关键字:primary key
行:记录
列:属性
属性
主键必须唯一
不允许空值
3.外键:另一张表的主键,用于保持两张表之间的数据一致
关键字:foreign key(本表属性名) references 另一张表名(主键)
4.自增长约束
identity(m,n):m初始值,n:步长
只能是整形,主键,系统自动管理,不允许用户修改
5.唯一性
unique:
6.用户自定义约束:具体应用中要符合常理
check(表达式):
sex in():括号里面是并列元素,同一种数据类型,有逗号分隔,或者关系
7.缺省值
default(值):默认值
三、创建表
语法:
create table 表名(
属性1 数据类型 约束1 约束2 约束3,
属性2 数据类型 约束2 约束3 约束1,
)
约束:
行级约束:只针对一个属性,可以写在属性同一行
表级约束:至少与两个或两个以上属性关联,必须用逗号分隔另起一行写约束,外键
/**/
create table Employees
(
Emp_id int not null primary key indentity(1,1),
Emp_name varchar(20) not null unique,
Sex char(2) check(Sex='男' or '女'),
Title varchar(50) default('员工'),
Wage float(2) check(Wage > 0),
IdCard varchar(20) not null,
Dep_id int,
foreign key(Dep_id) references department(DEP_id)
)
第三节课
一、constraint关键字
constraint 主键名
(
testid int,
test varchar(20),
constraint pk_test primary key(test_id)
)
/*修改表*/
alter table 表名
add:增加
alter column:修改
drop column:删除
/*在学生表中增加字段tele*/
alter table 表名
add tele char(11) NOT NULL
/*修改tele字段为tel*/
alter table 表名
alter column tele tel
/*删除表字段*/
alter table 表名
drop column tel
/*修改数据库名称*/
exec sp_renamedb '旧名称','新名称';
/*修改表名*/
exec sp_rename '旧表名','新表名';
/*修改列名*/
exec sp_rename '表名.列名','新名','column';
二、关系数据库中表的记录
/*学生信息表如下*/
create table stuinfo
(
Sno int primary key,
sname varchar(50) unique,
birthday date NOT NULL,
CID int,
sex char(2) check(sex='男' or sex='女'),
dept varchar(20),
dele char(11) NULL,
homeland varchar(50) NULL,
foreign key(CID) references class(CID)
)
1.insert 增加
/*属性个数和值的个数一致切一一对应*/
insert into student(属性1,属性2) values(值1,值2)
/*属性位置可以任意调换*/
insert into student(属性2,属性1) values(值2,值1)
/*属性数据类型和值一致*/
insert into student(name,age) values('zs',12)
/*属性可以省略,默认是全部属性*/
insert into values(值1,值2)
/*如果属性值为空,该属性可以省略*/
insert into student(name) values('zs')
/*如果数据有空值,在值列表也要写上*/
insert into student(name,age) values('zs',NULL)
/*插入数据,张姗 2004年8月14号*/
insert into stuinfo(Sno,sname,birthday,cid,sex,dept,tel,homeland) values(202411105,'张姗','2004-08-14',8,'女','机械2班',NULL,'大连');
/*上一条省略电话号*/
insert into stuinfo(Sno,sname,birthday,cid,sex,dept,homeland) values(202411105,'张姗','2004-08-14',8,'女','机械2班','大连');
/*省略属性列表*/
insert into stuinfo values(202411105,'张姗','2004-08-14',8,'女','机械2班',NULL,'大连');
2.update 修改
update 表名 set 属性1=新值1,属性2=新值2 where 查询条件;
/*超市数据库*/
create table goods
(
GID char(10) primary key,
Gname varchar(50) unique,
Gnum int,
Gprice float(10) check(Gprice >= 0),
Expdate date,
Gtype varchar(30),
foreign key(PID) references provider(PID)
)
/*1.把所有面包降价10%*/
update Ginfo set Gprice = Gprice*0.9 where Gtype='面包';
/*2.把库存大于等于20,价格大于8的牛奶,价格增加15%*/
update Ginfo set Gprice = Gprice*1.15 where Gnum >= 20 and Gprice > 8 and Gtype='牛奶';
/*3.把价格在50到80之间的白酒库存清零,价格增加15%*/
update Ginfo set Gnum=0,Gprice=Gprice*1.15 where Gprice>=50 and Gprice<=80;
/*4.把一周后到期的面包价格减掉3元*/
update Ginfo set Gprice=Gprice-3 where day(Expdate) - day(getdate()) == 7 and Gtype='面包';
/*5.把桃李供应商(12)供应的饮料和啤酒库存增加25%*/
update Ginfo set Gnum=Gnum*0.25 where PID=12 and (Gtype='啤酒' or Gtype='饮料') and Gprice>=10;
update Ginfo set Gnum=Gnum*0.25 where PID=12 and Gtype in('啤酒','饮料') and Gprice>=10;
/*6.把价格大于10元的方便面和火腿肠的库存清零*/
update Ginfo set Gnum=0 where Gprice>10 and Gtyle in('火腿肠','方便面');
/*7.把华润供应商(18)供应的调料和化妆品价格上调5元*/
update Ginfo set Gprice=Gprice+5 where PID=18 and Gtype in ('调料','化妆品');
/*8.把商品信息表增加备注属性description varcher(50) 允许空*/
alter table Ginfo
add description varchar(50) NULL;
/*9.修改备注的属性,改成desc*/
alter table Ginfo
alter column description desc;
/*10删除备注属性*/
alter table Ginfo
drop column desc;
3.delete 删除
delete from 表名 where 条件
/*1.删除所有商品信息*/
delete from Ginfo;
/*2.删除桃李供应商保质期在今天之前的*/
delete from Ginfo where CID=12 and day(expdate) < day(getdate());
/*3.删除库存小于3的面包啤酒牛奶*/
delete from Ginfo where Gtype in('面包','啤酒','牛奶')
/*4.删除价格大于100元的饮料和价格小于10元的白酒*/
delete from Ginfo where Gprice>=100 and Gtype='饮料' or Gprice<=10 and Gtype='白酒';
/*5.删除华润供应商(18)价格大于20元以上的面包和桃李(12)供应商库存小于等于12的牛奶*/
delete from Ginfo where PID=18 and Gprice>=20 and Gtype='面包' or PID=12 and Gprice<=10 and Gtype='牛奶';
/*6.删除过期的饮料,啤酒,酸奶,火腿肠*/
delete from Ginfo where expdate < getdate() and Gtype in('饮料','啤酒','酸奶','火腿肠');
/*7.删除价格在15到30直接的酸奶*/
delete from Ginfo where Gprice between 15 and 30 and Gtype='酸奶';
/*8.删除价格15以内和30以上的酸奶*/
delete from Ginfo where Gprice not between 15 and 30 and Gtype='酸奶'
第四节课 2024.10.29
DDL:数据定义语言
DML:管理语言(insert、insert into、delete from)
DCL:控制语言
DBA:database administrator
DBO:database owner
一、创建、修改、删除索引
/*创建索引*/
create [unique],[clustered] index 索引名 on 表名
(
属性,ASC|DESC
)
unique:唯一索引
clustered:聚簇索引(存储数据有id号)
一个基本表只能建立一个聚簇索引
ASC:升序(从小到大)
DESC:降序(从大到小)
/*超市数据库*/
create table goods
(
GID char(10) primary key,
Gname varchar(50) unique,
Gnum int,
Gprice float(10) check(Gprice >= 0),
Expdate date,
Gtype varchar(30),
foreign key(PID) references provider(PID)
)
/*创建唯一索引,按商品编号索引*/
creare unique index g_id on Ginfo
(
gid
);
/*创建一个聚簇索引,按商品名称降序*/
creare clustered index g_nam on Ginfo
(
gname DESC
);
/*删除索引*/
drop index 索引名
二、查询语句-select
select [top n|distinct|percent] 属性n
from 表名
where 表达式
order by
group by
having
1.top n:查询前n条记录
2.distinct:去掉重复值
3.属性,题目中指定了具体的查询属性,不能用*代替,*代表全部属性,可以是计算表达式,也可以包涵函数
/*图书信息表*/
create table binfo
(
Bid int primary key,
bname varchar(50) unique,
btype varchar(30),
Bprice float,
Bnum int,
author varchar(20),
PID int,
pdate date
)
/*1.查询图书信息表中前80条记录*/
select top 80 from * binfo;
/*2.查询图书信息表中前35%的记录*/
select top 35 percent * from binfo;
/*3.查询图书信息表中,清华大学出版社(12)的书名,作者名,价格,数量*/
select bname,author,bprice,bnum from binfo where pid=12;
/*4.查询工业出版社(15)的图书类型,去掉重复项*/
select distinct btype from binfo where gid=15;
/*5.查询C语言编程这本书的书名,作者,价格,出版年份*/
select bname,author,bprice,year(ptate) from binfo where bname='C语言编程';
/*6.查询计算机类图书的书名,2024年查询,作者你好,价格*/
select bname,'2024年查询',author+'你好',bprice,bnum from binfo where btype='计算机类';
别名:属性和表的别名(别名可以是中文)
select 字段 as 别名;
select bname as 书名 from binfo;
4.where条件
运算符:+、-、* 、%
比较符:>,<,>=,<=,!=
逻辑运算:
and:同时满足,同时为真才真
or:或者,有真则真
not:否,真就假,假则真
in():括号里是同一种数据类型,值并列地位,位置可以互换。
not in():
between and:大于等于多少到小于等于多少,包含边界
not between and:
any、some:有一个是真则真
all():全是真才真
exists():有一个查询结果为真,就真
优先级:
1.括号
2.* 、/ 、%
3.+ 、-
4.* 、\ 、%
5.and
6.or
5.排序
order by 属性1 DESC, 属性2 ASC;
1.位置有先后顺序
2.排序按属性顺序排,可以是数字、字符、日期
3.属性后可以跟ASC|DESC
ASC:升序,可以省略
DESC:降序,不能省略
/*图书信息表*/
create table binfo
(
Bid int primary key,
bname varchar(50) unique,
btype varchar(30),
Bprice float,
Bnum int,
author varchar(20),
PID int,
pdate date
)
/*1.查询清华大学出版社(12)和电子出版社(21)出版的电器类图书。*/
select * from binfo where pid in(12,21) and btype='电器类';
/*2.查询现代文学类和古典文学类的图书的价格、书名、作者、数量、按价格降序排序*/
select Bprice,bname,author,Bnum from binfo where btype in('现代文学类','古典类') order by bprice DESC;
/*3.查询不是艺术类号体育类图书的书名、作者、价格,以中文名称显示查询结果,按作者升序,价格降序排列*/
select bname as 书名, author as 作者,Bprice as 价格 where Gtype not in('艺术类','体育类') order by author, bprice DESC;
/*4.查询价格在50-120之间清华大学出版社的2010年以后的图书信息,按书名降序,数量升序排列*/
select * from binfo where Gprice between 50 and 120 and pid=12 and yaer(pdate) > 2010 order by bname DESC,bnum;
/*5.查询2010年至2020年期间机械工业出版社(21)出版的图书的书名、作者、价格,按出版日期降序排序*/
select bname,author,bprice from binfo where pid=21 and year(pdate) between 2010 and 2020 order by pdate DESC;
6.模糊查询
在where条件里
like '关键字'
必须是字符类型
1.通配符
%:匹配0到任意多个字符
_:匹配一个英文字母
__:匹配一个汉字
[]:匹配其中括号中的一个字母
[^]:不匹配括号中的内容
/*图书信息表*/
create table binfo
(
Bid int primary key,
bname varchar(50) unique,
btype varchar(30),
Bprice float,
Bnum int,
author varchar(20),
PID int,
pdate date
)
/*1.查询姓王的计算机类的图书*/
select * from binfo where btype='计算机类' and author like '王%';
/*2.查询图书中包含C语言的图书的信息*/
select * from binfo where bname like '%C语言%';
/*3.查询作者名称姓刘的三个字姓名的机械类图书*/
select * from binfo where btype='机械类' and (author like '刘_ _ _ _' or author like '刘_ _ _ _');
/*4.查询书名第二个和第三个字是”数据”的图书书名、作者、价格。*/
select bname,author,bprice from binfo where bname like '_ _ 数据%';
/*5.查询以“实用教程”结尾的机械出版社(21)出版的图书的名称、价格、作者*/
select bname,author,bprice from binfo where bname like '%实用教程' and pid=21;
第五节课
一、聚合函数(聚集函数) - 统计或计算
1.count(属性):统计个数 属性唯一
count(distinct | all *)
2.sum(属性):求和 属性需为数值型
sum(score)
3.avg(属性):求平均值 属性需为数值型
avg(distinct | all 属性)
4.max(属性):求最大值 属性需为数值型
5.min(属性):求最小值 属性需为数值型
/*超市数据库*/
create table goods
(
GID char(10) primary key,
Gname varchar(50) unique,
Gnum int,
Gprice decimal(8,2),
Expdate date,
Gtype varchar(30),
foreign key(PID) references provider(PID)
)
/*1.统计超市多少种牛奶*/
select count(*) from goods where Gtype='牛奶'; /*返回200*/
select Gname from goods where Gtype='牛奶'; /*返回200条记录*/
/*2.统计超市娃哈哈矿泉水和雪碧商品的库存数量*/
select sum(Gnum) from goods where Gname in('娃哈哈矿泉水','雪碧');
/*3.统计超市白酒的平均价格*/
select avg(Gprice) from goods where Gtype='白酒';
/*4.查询超市最贵的啤酒的价格*/
select max(Gprice) from goods where Gtype='啤酒';
/*5.查询超市最贵的啤酒的信息*/
select Gname,Gprice,Gnum,Expdate from goods where Gtype='啤酒' and Gprice in (select max(Gprice) from goods where Gtype='啤酒';)
/*6.查询超市价格在10元以上的饮料的最低的价格*/
select min(Gprice) from goods where Gtype = '饮料' and Gprice > 10.00;
6.group by
聚合没有group by,作用于所有记录
聚合有group by,作用于分组
group by classid
/*查询选修了三门课程以上的学生*/
select sno from sc group by sno having count(*) > 3;
二、连接查询
1.内连接
关键字:inner join 表名 on 连接条件
含义:
1.只返回满足where查询条件的记录,去掉重复值
2.连接条件:表1.外键=表2的l.主键
goods.PID=provider.pid
3.连接中的where和and是同时满足关系
/*查询华润供应商供应的商品的种类名称价格供应商名称电话地址*/
select Gtype,Gname,Gprice,Pname,Ptele,Paddress from goods inner join provider on goods.pod=provider.pid where Pname='华润供应商';
select Gtype,Gname,Gprice,Pname,Ptele,Paddress from goods,provider where goods.PID=provider.PID and Pname='华润供应商';
4.表名.属性名称
(1)如果表之间有相同的属性名称,属性前必须加上表名
(2)如果属性名称在多表中是唯一的,可以省略
表名.Gname, goods.Gname
2.外连接
关键字:outer join 表名 on 连接条件
(1)左外连接 left outer join ... in
返回左边表全部记录,右边是满足where条件的记录,做笛卡尔乘积
(2)右外连接 right outer join ... in
返回右边表全部记录,左边是满足where条件的记录,做笛卡尔乘积
(3)全连接 full outer join ... in
/*超市数据库*/
create table goods
(
GID char(10) primary key,
Gname varchar(50) unique,
Gnum int,
Gprice decimal(8,2),
Expdate date,
Gtype varchar(30),
foreign key(PID) references provider(PID),
)
/*供应商表*/
create table provider
(
PID int,
Pname varchar(50),
Ptele char(20),
Paddress varchar(50),
)
/*1.查桃李供应商和华润供应商供应牛奶和啤酒商品的名称,价格,供应商名称,电话,地址。2种写法*/
select Gtype,Gname,Gprice,Pname,Ptele,Paddress from goods inner join provider on goods.pid=provider.pid where provider.Pname in('华润供应商','桃李供应商') and goods.Gtype in('牛奶','啤酒');
select Gtype as 商品类型,Gname as 商品名称,Gprice as 商品价格,Pname as 供应商价格,Ptele as 电话,Paddress as 地址 from goods,provider where goods.PID=provider.PID and provider.Pname in('华润供应商','桃李供应商') and goods.Gtype in('牛奶','啤酒');
三、嵌套查询
1.一个select包含了子查询
(1)in () 的子查询属性和where条件的属性一致
(2)使用in()
(3)子查询还可以有子查询
(4)子查询不能使用order by
/*查张红的班级*/
select class from student where sname='张红';
/*查计算机2班的女同学数量*/
select count(*) from student where class='计算机2班”
/*查跟张红一个班的女同学的个数*/
select count(*) from student where class in(select class from student where sname='张红x');
/*超市数据库*/
create table goods
(
GID char(10) primary key,
Gname varchar(50) unique,
Gnum int,
Gprice decimal(8,2),
Expdate date,
Gtype varchar(30),
foreign key(PID) references provider(PID),
)
/*供应商表*/
create table provider
(
PID int,
Pname varchar(50),
Ptele char(20),
Paddress varchar(50),
)
/*1.查与雪碧同一供应商供应的牛奶类商品的名称,价格,数量*/
select Gname,Gprice,Gnum from goods where Pname in(select pid from provider where Gname='雪碧');
/*2.查饮料商品中最便宜的带有‘矿泉水’的商品的名称,价格,数量*/
select Gname,Gprice,Gnum from goods where Gtype='饮料' and Gname like '%矿泉水%') and Gprice in(select max(Gprice) from goods where Gtype='饮料' and Gname like '%矿泉水%');
四、创建视图(视图是虚表)
1.语法:
create view 视图名称 (属性1,属性2,...)
[with encryption]
as
select 查询
[with check option]
(1)视图名称和视图属性可以用中文
(2)属性列表可以省略
(3)视图属性有函数和算数表达式不能省
/*1.创建[加密]视图“牛奶和饮料商品信息表”,中文显示商品名称,种类,价格,数量,供应商名称,供应商电话*/
create view 牛奶和饮料商品信息表 [with encryption] as select Gname as 商品名称,Gtype as 种类,Gprice as 价格,Gnum as 数量,Pname as 供应商名称,Ptele as 供应商电话 from goods,provider where Gtype in('牛奶','饮料') and goods.pid=provider.pid;
/*2.在牛奶和饮料商品信息表视图中查询价格在8到12之间的牛奶和饮料的名称,价格,供应商名称:*/
select 商品名称,价格,供应商名称 from 牛奶和饮料商品信息表 where 价格 between 8 and 12 and 种类 in('牛奶','饮料');
/*3.删除饮料商品信息表视图*/