--创建表格 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))
时间: 2024-10-13 15:56:37