SQL杂练1

1、删除

①若想删除表中全部数据,建议使用truncate

truncate特点:
1>truncate语句不能跟where条件(无法根据条件来删除,只能全部删除数据)
2> 同时自动编号恢复到初始值。
3>使用truncate删除表中所有数据要比delete效率高的多。
4> truncate删除数据,不触发delete触发器。

truncate table 表名

②一般删除的语法

 delete from 表名 where ...
 delete语句如果不加where条件,表示将表中所有数据都删除,加Where条件后,会按照Where条件进行删除。

若用delete语句删除含有自动编号的表数据时,自动编号不会恢复,会继续编号

2、约束
--为EmpId增加一个主键约束
alter table Employees add constraint PK_Employees_EmpId primary key(EmpId)

--非空约束,为EmpName增加一个非空约束(修改列)
alter table Employees alter column EmpName varchar(50) not null

--为EmpName增加一个唯一约束
alter table Employees add constraint UQ_Employees_EmpName unique(EmpName)


--为性别增加一个默认约束,默认为'男'
alter table Employees add constraint DF_Employees_EmpGender default('男') for EmpGender


--为性别增加一个检查约束,要求性别只能是:'男' or '女'
alter table Employees add constraint CK_Employees_EmpGender check(EmpGender='男' or EmpGender='女')


--为年龄增加一个检查约束:年龄必须在0-120岁之间,含岁与岁。
alter table Employees add constraint CK_Employees_EmpAge check(EmpAge>=0 and EmpAge<=120)
3、数据查询
-- * 表示显示所有列
-- 查询语句没有加where条件表示查询所有行
select *
from TblStudent

---只查询表中的部分列
select tsid,tsname,tsgender from TblStudent


--根据条件,只查询部分行(使用where条件筛选部分行显示)
select * from TblStudent where tsclassId=5


--为查询结果集中的列起别名
select tsid as 学生编号,tsname as 学生姓名,tsgender as 性别 from TblStudent


--并不是说select必须配合from一起来使用,可以单独使用select
select 
	当前系统时间=getdate()
	
select 
	班长='严守卫',
	班花='待定',
	班草='待定',
	班主任='宋词'
	
	
	
	
select * from MyStudent

--distinct关键字 ,针对已经查询出的结果然后去除重复
select distinct * from TblStudent
select distinct tsname,tsgender,tsaddress from TblStudent


--Between…and …    在...之间,(闭区间,包含两个端点值)
--查询年龄在20-30岁之间的男学生
--查询math成绩在80-90分之间的所有学生
select * from TblScore where tMath between 80 and 90
4、排序
--按照年龄,降序排序
select * from TblStudent order by tsage desc  --降序排序
--按照年龄,升序排序
select * from TblStudent order by tsage asc --升序排序
select * from TblStudent order by tsage  --默认就是升序排序

select * from TblScore order by tMath desc
select * from TblScore order by tEnglish

--查询数学成绩最高的前5名
select top 5 * from TblScore order by tMath desc

--获取数学成绩最低的前5个
select top 5 * from TblScore order by tMath

--如果top后跟的不是数字,而是一个表达式一定要使用()把表达式括起来。
select top (2*2) * from TblScore order by tMath desc

--会查询出4条数据。
select top 35 percent * from TblScore order by tMath desc

--获取年龄最小的五个学生
select*from MyStudent

select top 5 * from MyStudent order by FAge asc

--获取年纪最大的10%的学生
select top 10 percent * from MyStudent order by FAge desc
5、聚合函数

1.sum()求总和
2.count() 求记录条数
3.max() 求最大值
4.min() 求最小值
5.avg() 求平均值

--统计出所有人的年龄的总和
select sum(age) as 年龄总和 from NewPerson(表名,此处是newperson)

--计算年龄最大的
select max(age) as 年龄最大 from NewPerson

--计算年龄最小的
select min(age) as 年龄最小 from NewPerson

--计算年龄的平均值
select avg(age) as 平均年龄 from NewPerson

--统计总共有多少条记录
select COUNT(autoId) as 记录的条数 from NewPerson

聚合函数的一些其他问题

1.聚合函数不统计空值

select count(tsid) from TblStudent
select avg(tsage) as 平均年龄 from TblStudent

select tsage from TblStudent where tsage is not null  order by tsage desc --avg()也是不统计空值

select sum(tsage) from TblStudent --sum()对于null值,认为是0

2.如果使用聚合函数的时候,没有手动group by分组,那么聚合函数会把整个表中的数据作为一组来统计

6.模糊查询
--模糊查询
--通配符: _ % []

--    _表示任意的单个字符

--姓张,两个字
select * from MyStudent where FName like '张_'
--姓张,三个字的
select * from MyStudent where fname like '张__'

-- % 匹配任意多个任意字符
--无论姓名字数,只要第一个字符是'张'的就查询出来
select * from MyStudent where FName like '张%'

select * from MyStudent where FName like '张%'


--[] 表示筛选
select * from TblStudent
select * from TblStudent where tsname like '张[0-9]妹'

select * from TblStudent where tsname like '张_妹'

select * from TblStudent where tsname like '张[a-z]妹'

select * from TblStudent where tsname like '张[a-z0-9]妹'

select * from TblStudent where tsname like '张[^0-9]妹'

select * from TblStudent where tsname not like '张[0-9]妹'

update TblStudent set tsname=replace(tsname,'(女)','')
7.空值处理
-----------------空值处理--------------------------------------
select * from TblStudent
--查询所有年龄是null的同学信息
--null值无法使用=或<>来进行比较
--unknown
--判断null值必须使用is null或者is not null

select * from TblStudent where tsage is null  --有结果显示
select * from TblStudent where tsage=null     --无报错 但无任何结果显示
--查询所有年龄不是null的同学

select * from TblStudent where tsage <> null    --无报错 但无任何结果显示

select * from TblStudent where tsage is not null  --有结果显示


select * from TblStudent where tsage=25
select * from TblStudent where tsage<>25

--任何值与null进行计算,得到的结果还是null
select 2000+null
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本火锅店点餐系统采用Java语言和Vue技术,框架采用SSM,搭配Mysql数据库,运行在Idea里,采用小程序模式。本火锅店点餐系统提供管理员、用户两种角色的服务。总的功能包括菜品的查询、菜品的购买、餐桌预定和订单管理。本系统可以帮助管理员更新菜品信息和管理订单信息,帮助用户实现在线的点餐方式,并可以实现餐桌预定。本系统采用成熟技术开发可以完成点餐管理的相关工作。 本系统的功能围绕用户、管理员两种权限设计。根据不同权限的不同需求设计出更符合用户要求的功能。本系统中管理员主要负责审核管理用户,发布分享新的菜品,审核用户的订餐信息和餐桌预定信息等,用户可以对需要的菜品进行购买、预定餐桌等。用户可以管理个人资料、查询菜品、在线点餐和预定餐桌、管理订单等,用户的个人资料是由管理员添加用户资料时产生,用户的订单内容由用户在购买菜品时产生,用户预定信息由用户在预定餐桌操作时产生。 本系统的功能设计为管理员、用户两部分。管理员为菜品管理、菜品分类管理、用户管理、订单管理等,用户的功能为查询菜品,在线点餐、预定餐桌、管理个人信息等。 管理员负责用户信息的删除和管理,用户的姓名和手机号都可以由管理员在此功能里看到。管理员可以对菜品的信息进行管理、审核。本功能可以实现菜品的定时更新和审核管理。本功能包括查询餐桌,也可以发布新的餐桌信息。管理员可以查询已预定的餐桌,并进行审核。管理员可以管理公告和系统的轮播图,可以安排活动。管理员可以对个人的资料进行修改和管理,管理员还可以在本功能里修改密码。管理员可以查询用户的订单,并完成菜品的安排。 当用户登录进系统后可以修改自己的资料,可以使自己信息的保持正确性。还可以修改密码。用户可以浏览所有的菜品,可以查看详细的菜品内容,也可以进行菜品的点餐。在本功能里用户可以进行点餐。用户可以浏览没有预定出去的餐桌,选择合适的餐桌可以进行预定。用户可以管理购物车里的菜品。用户可以管理自己的订单,在订单管理界面里也可以进行查询操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值