SQL Server select语句的各种形式的解决办法
2022-11-12 09:49:11
内容摘要
这篇文章主要为大家详细介绍了SQL Server select语句的各种形式的简单示例,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
代码如下:
文章正文
这篇文章主要为大家详细介绍了SQL Server select语句的各种形式的简单示例,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
代码如下:
Select * from T_Employee
select FName,FAge from T_Employee
select FName from T_Employee where FSalary < 5000
select FName as 姓名,FAge as 年龄,FSalary as 月薪from T_Employee where FSalary < 5000
select FName as 姓名,FAge as 年龄,FSalary as 月薪,getdate() as 当前时间from T_Employee
3.3.1 SELECT命令的格式与基本使用Ø数据查询是数据库中最常见的操作。ØSQL语言提供SELECT语句,通过查询操作可得到所需的信息。ØSELECT语句的一般格式为:SELECT〈列名〉[{,〈列名〉}]FROM〈表名或视图名〉[{,〈表名或视图名〉}][WHERE〈检索条件〉][GROUP BY <列名1>[HAVING <条件表达式>]][ORDER BY <列名2>[ASC|DESC]];ØØ查询的结果是仍是一个表。ØSELECT语句的执行过程是:Ø根据WHERE子句的检索条件,从FROM子句指定的基本表或视图中选取满足条件的元组,再按照SELECT子句中指定的列,投影得到结果表。Ø如果有GROUP子句,则将查询结果按照<列名1>相同的值进行分组。Ø如果GROUP子句后有HAVING短语,则只输出满足HAVING条件的元组。Ø如果有ORDER子句,查询结果还要按照<列名2>的值进行排序。Ø例3.21 查询全体学生的学号、姓名和年龄。SELECT SNO, SN, AGE FROM SØ例3.22 查询学生的全部信息。SELECT * FROM SØ用‘ * '表示S表的全部列名,而不必逐一列出。Ø例3.23 查询选修了课程的学生号。SELECT DISTINCT SNO FROM SCØ查询结果中的重复行被去掉ØØ上述查询均为不使用WHERE子句的无条件查询,也称作投影查询。Ø另外,利用投影查询可控制列名的顺序,并可通过指定别名改变查询结果的列标题的名字。例3.24 查询全体学生的姓名、学号和年龄。SELECT SNAME NAME, SNO, AGE FROM SØ其中,NAME为SNAME的别名3.3.2 条件查询Ø当要在表中找出满足某些条件的行时,则需使用WHERE子句指定查询条件。ØWHERE子句中,条件通常通过三部分来描述:1. 列名;2. 比较运算符;3. 列名、常数。3.3.2.1 比较大小例3.25 查询选修课程号为‘C1'的学生的学号和成绩。SELECT SNO,SCORE FROM SC WHERE CNO='C1'Ø例3.26 查询成绩高于85分的学生的学号、课程号和成绩。SELECT SNO,CNO,SCORE FROM SC WHERE SCORE>85Ø3.3.2.2 多重条件查询Ø当WHERE子句需要指定一个以上的查询条件时,则需要使用逻辑运算符AND、OR和NOT将其连结成复合的逻辑表达式。Ø其优先级由高到低为:NOT、AND、OR,用户可以使用括号改变优先级。Ø例3.27 查询选修C1或C2且分数大于等于85分学生的的学号、课程号和成绩。SELECT SNO,CNO,SCOREFROM SCWHERE(CNO='C1' OR CNO='C2') AND SCORE>=853.3.2.3 确定范围例3.28 查询工资在1000至1500之间的教师的教师号、姓名及职称。SELECT TNO,TN,PROFFROM TWHERE SAL BETWEEN 1000 AND 1500Ø等价于SELECT TNO,TN,PROFFROM TWHERE SAL>=1000 AND SAL<=1500Ø例3.29 查询工资不在1000至1500之间的教师的教师号、姓名及职称。SELECT TNO,TN,PROFFROM TWHERE SAL NOT BETWEEN 1000 AND 15003.2.2.4 确定集合Ø利用“IN”操作可以查询属性值属于指定集合的元组。例3.30 查询选修C1或C2的学生的学号、课程号和成绩。SELECT SNO, CNO, SCOREFROM SCWHERE CNO IN(‘C1', ‘C2')Ø此语句也可以使用逻辑运算符“OR”实现。SELECT SNO, CNO, SCOREFROM SCWHERE CNO=‘C1' OR CNO= ‘C2'Ø利用“NOT IN”可以查询指定集合外的元组。例3.31 查询没有选修C1,也没有选修C2的学生的学号、课程号和成绩。SELECT SNO, CNO, SCOREFROM SCWHERE CNO NOT IN(‘C1', ‘C2')Ø等价于:SELECT SNO, CNO, SCOREFROM SCWHERE CNO!=‘C1' AND CNO!= ‘C2'Ø3.3.2.5 部分匹配查询Ø上例均属于完全匹配查询,当不知道完全精确的値时,用户还可以使用LIKE或NOT LIKE进行部分匹配查询(也称模糊查询)。ØLIKE定义的一般格式为:<属性名> LIKE <字符串常量>Ø属性名必须为字符型,字符串常量的字符可以包含如下两个特殊符号:Ø%:表示任意知长度的字符串;Ø_:表示任意单个字符。例3.32 查询所有姓张的教师的教师号和姓名。SELECT TNO, TNFROM TWHERE TN LIKE ‘张%'例3.33 查询姓名中第二个汉字是“力”的教师号和姓名。SELECT TNO, TNFROM TWHERE TN LIKE ‘_ _力%'Ø注:一个汉字占两个字符。3.3.2.6 空值查询Ø某个字段没有值称之为具有空值(NULL)。Ø通常没有为一个列输入值时,该列的值就是空值。Ø空值不同于零和空格,它不占任何存储空间。Ø例如,某些学生选课后没有参加考试,有选课记录,但没有考试成绩,考试成绩为空值,这与参加考试,成绩为零分的不同。例3.34 查询没有考试成绩的学生的学号和相应的课程号。SELECT SNO, CNOFROM SCWHERE SCORE IS NULLØ注意:这里的空值条件为IS NULL,不能写成SCORE=NULL。
注:关于SQL Server select语句的各种形式的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释