--使用昨天创建好的lianxi0425的数据库 --1.创建一个学生信息表xinxi --列名分别为: --code(int) not null --name(varchar(50)) not null --birth(varchar(50)) not null --sex(char(10)) not null --score(decimal(18,2)) --banji(varchar(20)) not null --创建表格 use lianxi0425 go 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, ) go --插入信息: --插入十个人的信息,插入班级时要求有两个班级 --创建一班数据 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,'一班') --创建二班数据 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,'二班') --1)查询全部 select *from xinxi --2)查询一列(姓名) select name from xinxi --3)查询多个列(姓名、性别、生日) select name,sex,birth from xinxi --4)根据条件查询一行(code=102) select * from xinxi where code=102 --5)根据条件查找一个数据(code为102的姓名) select name from xinxi where code =102 --6)根据条件查找多个数据(code为102的姓名性别) select name , sex from xinxi where code=102 --7)插入一条数据(自己的信息) insert into xinxi values(206,'张全蛋','1989年3月3日','男',60,'二班') --8)更改code为102的学生的生日为1990-1-1 update xinxi set birth='1990年1月1日' where code=102 --9)删除code为205的学生的数据 delete from xinxi where code=205 --查询所有分数在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 '%四' --下划线表示此位置只有一个完整字符 --查看姓李的并且名字只有两个字 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 求最小 --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(6,4) --ROUND 四舍五入,逗号后边表示小数点后有几位 select ROUND(44.444,0) --SQRT 平方根 select SQRT(4) --square 2次方 select SQUARE(4) --字符串函数 --ASCII 将字符转化为数值 select ASCII('a') select ASCII(name) from xinxi --CHAR 将数值转化为字符 select CHAR(97) select CHAR(score) from xinxi --CHARINDEX 查看此字符串首次出现的位置 select CHARINDEX('efg','abcdefghijklmn') --left 从左侧截取多少个 select LEFT('abcdefg',3) --right 从右截取几个 select RIGHT('abcdefg',3) --LEN 查看字符串的长度,前面的空格算,后面的不算 select LEN(' abc ') --时间日期函数 SET DATEFIRST 1 SELECT @@DATEFIRST AS '1st Day', DATEPART(dw, GETDATE()) AS 'Today' SELECT GETDATE()--获取当前时间 select SYSDATETIME()--获取更精确的系统时间