--已知有一个表:该表的字段有:id,name,date,gradeid,email
--1.插入一条记录:
insert into table_name values (1,'刘世豪','2017-10-21',1,'666@qq.com')
--2.修改
update table_name set name = '张云飞' where id =1
--3.删除
delete from table_name where id = 1
--4.查询全部
select * from table_name
--5.查询name是刘世豪的
select * from table_name where name ='刘世豪'
--6.查询name中姓孙的
select * from table_name where name like '孙%'
--7.查询name中包含层的
select * from table_name where name like '%层%'
--8.按照年级升序排序
select * from table_name order by gradeid asc
--9.按照年级降序排序
select * from table_name order by gradeid desc
--10.查询每个年纪多少人
select count(*) 人数,gradeid 年纪 from table_name group by gradeid 
--11.查询前20条
select top 20 * from table_name 
--12.查询百分之20的数据
select top 20 percent * from table_name 
--13.查询没有邮箱信息的学生
select * from table_name where email is null or email =''
--14.链接查询
select  * from table_name t ,grade g where t.gradeid = g.gradeid
--15.链接查询的第二种
select  * from table_name t join grade g on t.gradeid = g.gradeid
--16.查询每个年纪的男女生人数
select count(*) 人数,gradeid 年纪 ,sex 性别 from table_name group by gradeid,sex 
--17.查询年级总人数超过15的年级
select count(*) 人数,GradeId 年级 from Student group by GradeId having count(*)>15
--18.如果默认邮箱是2451999120@qq.com 插入一条记录
insert into table_name values (1,'刘世豪','2017-10-21',1,default)
--19.查询每科最大的分数
select max(StudentResult) 分数,subjectid 科目 from result group by subjectid  
--20.查询每科平均分数
select avg(StudentResult) 分数,subjectid 科目 from result group by subjectid  
--20.查询每科最少的分数
select min(StudentResult) 分数,subjectid 科目 from result group by subjectid 
--21.查询每个学生的总分数
select StudentNo,sum(studentResult) from result group by StudentNo
--22.查询第五页的数据,每页显示3条记录(oracle分页)
select a1.* from (select emp.*,rownum rn from emp where rownum <=5) a1 where rn >=3;
--23.查询第3页的数据,每页显示4条(sqlserver分页)
select top 4 *  from grade  where gradeid not in (select top (4*3)-1  gradeid from grade)  



--查询m在My Jbns Course里面出现的位置  
SELECT CHARINDEX('m','My Jbns Course')  
--查询My Jbns Course的长度  
SELECT len('My Jbns Course')  
--把传递给他的字符串转换成大写  
SELECT UPPER('my is father');  
--清除字符左边的空格  
SELECT ltrim('     你是谁      ')  
--清除字符右边的空格  
SELECT rtrim(' 你是谁      ')  
--从字符串右边返回指定的字符,4代表截取几个字符  
SELECT RIGHT('买卖提5吐尔松',4)  
--替换一个字符串中的字符:把(我)替换成(你)  
SELECT replace('我是谁','我','你')  
--在一个字符串中,删除指定长度的字符,并在改位置插入一个新字符,1是从第一个开始,5是截取5个  
SELECT stuff('abcdefg',1,5,'明朝的皇帝是谁?')  
  
--日期函数  
--取得系统当前的日期  
SELECT getdate()  
--将指定的数值添加到指定的日期部分后的日期(yy:年,mm:月,dd:日,5代表加的数字)  
SELECT DATEADD(yy,5,'01/01/2009')  
--两个日期中指定日期的间隔(yy:年,mm:月,dd:日,输出一个整型)  
SELECT DATEDIFF(yy,'2017-05-08','2019-05-04')  
--日期中指定日期部分的字符串形式(yy:年,mm:月,dd:日,输出一个字符串:星期六)  
SELECT datename(dw,'2015-05-09')  
--日期中指定日期部分的整数形式  
SELECT datepart(day,'2014-05-09')  
  
--数学函数  
--返回0-1之间的随机数float值  
SELECT rand()  
--取大于或等于指定数值、表达式的最小整数  
SELECT ceiling(45.6)  
--取数值表达式的绝对值  
SELECT abs(-8)  
--取小于或等于指定数值、表达式的最大整数  
SELECT floor(32.8)  
--取数值表达式的幂值(5的2次方)  
SELECT power(5,2)  
--取数值表达式四舍五入为指定的精度(2代表保留2位,其余的都是0)  
SELECT round(3.1415926,2)  
--对于正数返回+1,对于负数返回-1,对于0则返回0  
SELECT sign(-1)  
--取浮点表达式的平方根  
SELECT sqrt(9)  
  
--系统函数  
--用来转变数据类型  
SELECT CONVERT (VARCHAR (5),12345)  
--返回当前用户的名字  
SELECT CURRENT_USER  
--返回用于指定表达式的字节数  
SELECT DATALENGTH ('中国A联盟')  
--返回当前用户所登录的计算机名字  
SELECT HOST_NAME()  
--返回当前所登录的用户名称  
SELECT SYSTEM_USER  
--从给定的用户ID返回用户名  
SELECT USER_NAME(1)