第九章 數據查詢基礎
阿新 • • 發佈:2018-07-23
表之間 運算 date() ade 信息 edi 特定 rand() 數據查詢
一. 數據查詢基礎 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)
一. 數據查詢基礎 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)
第九章 數據查詢基礎