数据库创建两个表格及模糊查询,函数

--创建表格
create table xinxi
(
 code int not null,
 name varchar(50) not null,
 birth varchar(50) not null,
 sex   char(10)  not null,
 score  decimal(18,2) not null,
 banji  varchar(20)  not null,
)
--创建一班数据
insert into xinxi values(101,'张三','1990年3月2日','',86,'一班')
insert into xinxi values(102,'王丽','1991年5月5日','',95,'一班')
insert into xinxi values(103,'王五','1990年10月3日','',86,'一班')
insert into xinxi values(104,'李四','1992年11月11日','',89,'一班')
insert into xinxi values(105,'张红','1990年9月5日','',80,'一班')
--查询一班列表
select *from xinxi
go
--创建二班数据
insert into xinxi values(201,'赵六','1990年4月2日','',94,'二班')
insert into xinxi values(202,'赵红','1991年6月6日','',95,'二班')
insert into xinxi values(203,'马七','1990年5月9日','',86,'二班')
insert into xinxi values(204,'刘九','1992年12月20日','',78,'二班')
insert into xinxi values(205,'马丽','1990年7月5日','',92,'二班')

--查询二班数据
select *from xinxi
go
--查询一班所有的姓名
select name from xinxi where banji='一班'
go
--查询二班所有的姓名
select name from xinxi where banji='二班'
go
--查询所有的姓名
select name from xinxi
go
--查询二班第二列所有内容
select *from xinxi where code=202
go
--查询班级,姓名,分数
select name,score,banji from xinxi
go
--查询分数为86的人的名字
select name from xinxi where score=86
go
--删除二班内容
delete from xinxi where banji='二班'
go
--创建二班数据
insert into xinxi values(201,'赵六','1990年4月2日','',94,'二班')
insert into xinxi values(202,'赵红','1991年6月6日','',95,'二班')
insert into xinxi values(203,'马七','1990年5月9日','',86,'二班')
insert into xinxi values(204,'刘九','1992年12月20日','',78,'二班')
insert into xinxi values(205,'马丽','1990年7月5日','',92,'二班')
--查看一下信息
select *from xinxi
go
--查询所有分数在90分以上的
select * from xinxi where score between 90 and 100
select * from xinxi where score>90


--模糊 查询,用%表示
--%可以表示任意的字符,不管长度如何
--like  关键词,像
--查看所有姓赵的
select * from xinxi where name like '赵%'
--查看姓李的并且名字只有两个字
--下划线代表任意一个字符
select *from xinxi where name like '李_'

--分数从小到大排列  后缀为asc 默认不写,就是升序
select * from xinxi order by score
--降序 后缀为desc
select * from xinxi order by score desc

--查看分数排名前三名人员所有的信息
select top 3 *from xinxi order by score desc


--聚合函数
--AVG 求平均数
--as表示列命显示为
--求平均分数
select AVG(score) as 平均分 from xinxi
--查询一班的平均分
select AVG(score)as 一班平均分 from xinxi where banji ='一班'



--count 求个数
select COUNT(*)from xinxi
--查询姓王的有几个
select  COUNT(*)from xinxi where name like '王%'


--MAX 求最大
select MAX(score)from xinxi where banji='二班'

--MIN 求最小
select MIN(score)from xinxi where banji='二班'

--sum 求总和
select SUM(score)from xinxi where banji='一班'


--group by 分组
select banji from xinxi group by banji

--分组之后看看每个班级的平均分
select banji, AVG(score)as 平均分 ,COUNT(*)as 人数 from xinxi  group by banji 


--having 后面只能跟聚合函数
select banji,AVG(score) as 平均分 from xinxi where score>85  group by banji having COUNT(*)>3



--select 作用 查询
select 7+19




--数学函数 
--ABS 绝对值
select ABS(-44)

--ceiling 上线
select CEILING(3.14)
--floor 下线
select FLOOR(3.14)

--POWER 谁的几次方

select POWER(3,3)

--ROUND  四舍五入,逗号后面表示小数点后有几位
select ROUND(44.444,0)

--SQRT 平方根
select SQRT(8)
--SQUARE 平方
select SQUARE(2)


--字符串函数
--ASCII 将字符转化为数值
select ASCII('a')
select ASCII('name')from xinxi

--CHAR 将 ASCII值转换为字符
select CHAR(97)

--CHARINDEX 查看此字符串首次出现的位置
select CHARINDEX('d','abcdefg')
--字符串拼接+

--left 从左侧截取多少个
select LEFT('abcdefghigk',3) 


--right从右侧截取多少个
select right('abcdefghigk',3) 

--LEN 查看字符串的长度,前面的空格算,后面的空格不算
select LEN('    abc   ')

--LTRIM RTRIM 删除左侧右侧的位置

-- 时间日期函数
set DATEFIRST 1
SELECT @@DATEFIRST AS '1'

--DATEDIFF  时间差  参数1指定哪个数,参数2是开始,参数3是结束
SELECT SYSDATETIME()--获取更精确的系统时间



--数据类型转换CAST CONVERT
SELECT CAST(123 AS VARCHAR(20)) 
原文地址:https://www.cnblogs.com/fengsantianya/p/5575264.html