数据查询基础
一. 數(shù)據(jù)查詢基礎(chǔ) 1. 查詢所有數(shù)據(jù) select * from 表名 2. 根據(jù)限制條件查詢數(shù)據(jù) select * from 表名 where 限制條件 3. 根據(jù)特定列進(jìn)行排序,默認(rèn)為升序排列 select * from 表名 order by 排序列名 升序/降序 4. 使用別名AS select StudentName as 學(xué)生姓名,GradeId as 年級編號 from Student 5. 使用=號命名別名 select 學(xué)生姓名=StudentName,年級編號=GradeId from Student 6. 使用+號拼接數(shù)據(jù) SELECT StudentNo+GradeId AS 學(xué)生信息 FROM Student 注意:
????1. + 連接的數(shù)據(jù)類型必須兼容
????2. 如果 + 連接字符型數(shù)據(jù),結(jié)果為字符串?dāng)?shù)據(jù)的連接
????3. 如果 + 連接數(shù)值型數(shù)據(jù),結(jié)果為數(shù)值的和 7. 查詢空值 select * from Student where Emial IS NULL 8.使用常量列 SELECT StudentName AS 學(xué)生姓名,'北京昌平' AS 住址 FROM Student 9.使用Top限制數(shù)據(jù)行 9.1 限制特定數(shù)據(jù)行數(shù) SELECT top 10 * from Student 9.2 限制特定數(shù)據(jù)百分比 SELECT TOP 60 PERCENT * FROM Student 二. 多表查詢 思路:確定要查詢的列,以及確定要查詢的表,然后找表與表之間的關(guān)系 --查詢學(xué)生信息(學(xué)生姓名,年級名稱,出生日期以及郵箱),找引用關(guān)系
??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年級下所有學(xué)生姓名
??select StudentName as 學(xué)生姓名 from Student,Grade where Grade.GradeName='S1' AND Student.GradeId=Grade.GradeId --查詢學(xué)生編號為1的考試科目以及考試成績
??select SubjectName,StudentResult from Result,Subject,Student where Student.StudentNo=1
??AND Result.StudentNo=Student.StudentNo And Result.SubjectId=Subject.SubjectId 三. SQL函數(shù) 1.字符串函數(shù)
???用于控制返回給用戶的字符串
??2.日期函數(shù)
???用于操作日期值
??3.數(shù)學(xué)函數(shù)
???用于對數(shù)值進(jìn)行代數(shù)運(yùn)算
??4.系統(tǒng)函數(shù)
???獲取有關(guān)SQL Server中對象和設(shè)置的系統(tǒng)信息 詳情請見書上SQL函數(shù)表
??年滿20周歲的條件
???DATEDIFF(DD,BornDate, GETDATE())>=365*20 獲取Email的域名
???RIGHT(Email, LEN(Email) - CHARINDEX('@',Email) ) 獲取當(dāng)前日期的年、月、日
???CONVERT(VARCHAR(4), DATEPART(YYYY,GETDATE())) 獲取4位隨機(jī)數(shù)
???RIGHT(RAND(),4)
????1. + 連接的數(shù)據(jù)類型必須兼容
????2. 如果 + 連接字符型數(shù)據(jù),結(jié)果為字符串?dāng)?shù)據(jù)的連接
????3. 如果 + 連接數(shù)值型數(shù)據(jù),結(jié)果為數(shù)值的和 7. 查詢空值 select * from Student where Emial IS NULL 8.使用常量列 SELECT StudentName AS 學(xué)生姓名,'北京昌平' AS 住址 FROM Student 9.使用Top限制數(shù)據(jù)行 9.1 限制特定數(shù)據(jù)行數(shù) SELECT top 10 * from Student 9.2 限制特定數(shù)據(jù)百分比 SELECT TOP 60 PERCENT * FROM Student 二. 多表查詢 思路:確定要查詢的列,以及確定要查詢的表,然后找表與表之間的關(guān)系 --查詢學(xué)生信息(學(xué)生姓名,年級名稱,出生日期以及郵箱),找引用關(guān)系
??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年級下所有學(xué)生姓名
??select StudentName as 學(xué)生姓名 from Student,Grade where Grade.GradeName='S1' AND Student.GradeId=Grade.GradeId --查詢學(xué)生編號為1的考試科目以及考試成績
??select SubjectName,StudentResult from Result,Subject,Student where Student.StudentNo=1
??AND Result.StudentNo=Student.StudentNo And Result.SubjectId=Subject.SubjectId 三. SQL函數(shù) 1.字符串函數(shù)
???用于控制返回給用戶的字符串
??2.日期函數(shù)
???用于操作日期值
??3.數(shù)學(xué)函數(shù)
???用于對數(shù)值進(jìn)行代數(shù)運(yùn)算
??4.系統(tǒng)函數(shù)
???獲取有關(guān)SQL Server中對象和設(shè)置的系統(tǒng)信息 詳情請見書上SQL函數(shù)表
??年滿20周歲的條件
???DATEDIFF(DD,BornDate, GETDATE())>=365*20 獲取Email的域名
???RIGHT(Email, LEN(Email) - CHARINDEX('@',Email) ) 獲取當(dāng)前日期的年、月、日
???CONVERT(VARCHAR(4), DATEPART(YYYY,GETDATE())) 獲取4位隨機(jī)數(shù)
???RIGHT(RAND(),4)
轉(zhuǎn)載于:https://www.cnblogs.com/rzbwyj/p/9358015.html
總結(jié)
- 上一篇: MariaDB(MySQL)数据库的介绍
- 下一篇: 微信小程序 之 请求函数封装