1 --使用昨天创建好的lianxi0425的数据库 2 --1.创建一个学生信息表xinxi 3 --列名分别为: 4 --code(int) not null 5 --name(varchar(50)) not null 6 --birth(varchar(50)) not null 7 --sex(char(10)) not null 8 --score(decimal(18,2)) 9 --banji(varchar(20)) not null 10 --创建表格 11 use lianxi0425 12 go 13 create table xinxi 14 ( 15 code int not null, 16 name varchar(50) not null, 17 birth varchar(50) not null, 18 sex char(10) not null, 19 score decimal(18,2) not null, 20 banji varchar(20) not null, 21 ) 22 go 23 24 25 26 --插入信息: 27 --插入十个人的信息,插入班级时要求有两个班级 28 --创建一班数据 29 insert into xinxi values(101,'张三','1990年3月2日','男',86,'一班') 30 insert into xinxi values(102,'王丽','1991年5月5日','女',95,'一班') 31 insert into xinxi values(103,'王五','1990年10月3日','男',86,'一班') 32 insert into xinxi values(104,'李四','1992年11月11日','男',89,'一班') 33 insert into xinxi values(105,'张红','1990年9月5日','女',80,'一班') 34 35 --创建二班数据 36 insert into xinxi values(201,'赵六','1990年4月2日','男',94,'二班') 37 insert into xinxi values(202,'赵红','1991年6月6日','女',95,'二班') 38 insert into xinxi values(203,'马七','1990年5月9日','男',86,'二班') 39 insert into xinxi values(204,'刘九','1992年12月20日','男',78,'二班') 40 insert into xinxi values(205,'马丽','1990年7月5日','女',92,'二班') 41 --1)查询全部 42 select *from xinxi 43 --2)查询一列(姓名) 44 select name from xinxi 45 --3)查询多个列(姓名、性别、生日) 46 select name,sex,birth from xinxi 47 --4)根据条件查询一行(code=102) 48 select * from xinxi where code=102 49 --5)根据条件查找一个数据(code为102的姓名) 50 select name from xinxi where code =102 51 --6)根据条件查找多个数据(code为102的姓名性别) 52 select name , sex from xinxi where code=102 53 --7)插入一条数据(自己的信息) 54 insert into xinxi values(206,'张全蛋','1989年3月3日','男',60,'二班') 55 --8)更改code为102的学生的生日为1990-1-1 56 update xinxi set birth='1990年1月1日' where code=102 57 --9)删除code为205的学生的数据 58 delete from xinxi where code=205 59 60 --查询所有分数在90分以上的 61 select * from xinxi where score between 90 and 100 62 select * from xinxi where score>90 63 64 --模糊查询 用% 表示 65 --%可以表示任意的字符,不管长度如何 66 --like 像 67 --查看所有姓赵的 68 select * from xinxi where name like '赵%' 69 select * from xinxi where name like '%四' 70 --下划线表示此位置只有一个完整字符 71 --查看姓李的并且名字只有两个字 72 select * from xinxi where name like '李_' 73 74 --分数从小到大排出来 后缀为asc 默认不写就是升序 75 select * from xinxi order by score 76 --降序 后缀为desc 77 select * from xinxi order by score desc 78 79 --查看分数排名前三的人员的所有信息 80 select top 3 * from xinxi order by score desc 81 82 83 84 --聚合函数 85 --AVG() 求平均数 86 --求平均分数 as表示列名显示为*** 87 select AVG(score) as 平均分 from xinxi 88 --查询一班的平均分 89 select AVG(score) as 平均分 from xinxi where banji='一班' 90 91 --Count 求个数 92 select COUNT(*) from xinxi 93 --查询姓王的人有几个 94 select COUNT(*) from xinxi where name like '王%' 95 96 --MAX 求最大 97 select MAX(score) from xinxi where banji='二班' 98 --MIN 求最小 99 100 --SUM 求总和 101 select SUM(score) from xinxi where banji = '一班' 102 103 --group by 分组 104 select banji from xinxi group by banji 105 --分组之后看看每个班级的平均分 106 select banji , AVG(score) as 平均分,COUNT(*) as 人数 from xinxi group by banji 107 --having 后面只允许跟聚合函数 108 select banji ,AVG(score) as 平均分 from xinxi where score>85 group by banji having COUNT(*)>3 109 110 111 --select 作用 查询 112 select 7+19 113 114 --数学函数 115 --ABS 绝对值 116 select ABS(-44) 117 --ceiling 上线 118 select CEILING(3.14) 119 --floor 下线 120 select FLOOR(3.14) 121 --POWER 谁得几次方 122 select POWER(6,4) 123 --ROUND 四舍五入,逗号后边表示小数点后有几位 124 select ROUND(44.444,0) 125 --SQRT 平方根 126 select SQRT(4) 127 --square 2次方 128 select SQUARE(4) 129 130 131 --字符串函数 132 --ASCII 将字符转化为数值 133 select ASCII('a') 134 select ASCII(name) from xinxi 135 --CHAR 将数值转化为字符 136 select CHAR(97) 137 select CHAR(score) from xinxi 138 --CHARINDEX 查看此字符串首次出现的位置 139 select CHARINDEX('efg','abcdefghijklmn') 140 141 --left 从左侧截取多少个 142 select LEFT('abcdefg',3) 143 --right 从右截取几个 144 select RIGHT('abcdefg',3) 145 --LEN 查看字符串的长度,前面的空格算,后面的不算 146 select LEN(' abc ') 147 148 149 --时间日期函数 150 SET DATEFIRST 1 151 SELECT @@DATEFIRST AS '1st Day', DATEPART(dw, GETDATE()) AS 'Today' 152 SELECT GETDATE()--获取当前时间 153 select SYSDATETIME()--获取更精确的系统时间