一. 数据查询基础
1. 查询所有数据
select * from 表名
2. 根据限制条件查询数据
select * from 表名 where 限制条件
3. 根据特定列进行排序,默认为升序排列
select * from 表名 order by 排序列名 升序/降序
4. 使用别名AS
select StudentName as 学生姓名,GradeId as 年级编号 from Student
5. 使用=号命名别名
select 学生姓名=StudentName,年级编号=GradeId from Student
6. 使用+号拼接数据
SELECT StudentNo+GradeId AS 学生信息 FROM Student
注意:
1. + 连接的数据类型必须兼容
2. 如果 + 连接字符型数据,结果为字符串数据的连接
3. 如果 + 连接数值型数据,结果为数值的和
7. 查询空值
select * from Student where Emial IS NULL
8.使用常量列
SELECT StudentName AS 学生姓名,'北京昌平' AS 住址 FROM Student
9.使用Top限制数据行
9.1 限制特定数据行数
SELECT top 10 * from Student
9.2 限制特定数据百分比
SELECT TOP 60 PERCENT * FROM Student
二. 多表查询
思路:确定要查询的列,以及确定要查询的表,然后找表与表之间的关系
--查询学生信息(学生姓名,年级名称,出生日期以及邮箱),找引用关系
select studentName,GradeName,BornDate,email from Student,Grade where Student.GradeId=Grade.GradeId
--查询S1年级下的科目名称
select SubjectName as 科目名称 from Subject,Grade where Grade.GradeName='S2' AND Subject.GID=Grade.GradeId
--查询S1年级下所有学生姓名
select StudentName as 学生姓名 from Student,Grade where Grade.GradeName='S1' AND Student.GradeId=Grade.GradeId
--查询学生编号为1的考试科目以及考试成绩
select SubjectName,StudentResult from Result,Subject,Student where Student.StudentNo=1
AND Result.StudentNo=Student.StudentNo And Result.SubjectId=Subject.SubjectId
三. SQL函数
1.字符串函数
用于控制返回给用户的字符串
2.日期函数
用于操作日期值
3.数学函数
用于对数值进行代数运算
4.系统函数
获取有关SQL Server中对象和设置的系统信息
详情请见书上SQL函数表
年满20周岁的条件
DATEDIFF(DD,BornDate, GETDATE())>=365*20
获取Email的域名
RIGHT(Email, LEN(Email) - CHARINDEX('@',Email) )
获取当前日期的年、月、日
CONVERT(VARCHAR(4), DATEPART(YYYY,GETDATE()))
获取4位随机数
RIGHT(RAND(),4)