资源描述:
《数据的查询与修改.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据的查询与修改1数据查询查询功能是SQL语句的核心功能,是数据库中使用最多的操作,查询语句也是SQL语句中比较复杂的语句。1.1查询语句的基本结构查询语句是从数据库中检索满足条件的数据。查询的数据源可以是一个表或多个表或视图,查询结果是由0行(没有满足条件的数据)或多行记录组成的记录集,并允许选用一个或多个字段作为输出字段。查询语句的基本语句结构:SELECT<目标序列名>FROM<数据源>[WHERE<检索条件表达式>][GROUPBY<分组依据列>][HAVING<组提取条件>][ORDERBY<排序依据序列>]1.2简单查询1.2.1选择表中的若干列1.
2、查询指定的列例1查询全体学生的学号和姓名。SELECTSno,SnameFROMStudent例2查询全体学生的学号、姓名和所在系。SELECTSno,Sname,SdeptFROMStudent2.查询全部列例3.查询全体学生的详细记录SELECT*FROMStudent3.查询经过计算的列例4.查询全体学生的姓名及出生年份SELECTSname,2002-SageFROMStudent例5.查询全体学生的姓名及出生年份和所在系,要求写字母表示所在的系名SELECTSname,‘YearofBirfh’,2002-Sage,Lower(Sdept)FROMSt
3、udent改变列标题的语法格式:列名
4、表达式[AS]列标题或:列标题=列名
5、表达式例如:SELECTSname姓名,‘YearofBirfh’出生年月,2002-Sage年份,Lower(Sdept)所在系FROMStudent1.2.2选择表中的若干元组1.消除取值相同的行例6在修课表中查询有哪些学生修了课程,要求列出学生的学号。SELECTSnoFROMScSELECTDISTINCTSnoFROMSc2.查询满足条件的元组(1)比较大小例7查询计算机系全体学生的姓名SELECTSnameFROMStudentWHERESdept=‘计算机系’例8查询所有年
6、龄在20岁以下的学生姓名及年龄SELECTSname,SageFROMStudentWHERESage<20或:SELECTSname,SageFROMStudentWHERENOTSage>=20例9查询考试成绩不及格的学生的学号SELECTDISTINCTSnoFROMScWHEREGrade<60(2)确定范围BETWEEN…AND和BETWEEN…AND是一个逻辑运算符,可以用来查找属性值在或不在指定范围内的元组,其中BETWEEN后边指定范围的下限,AND后边指定范围的上限。格式为:列名
7、表达式[NOT]BETWEEN下限值AND上限值例10查询年龄在
8、20-30岁之间的学生姓名、所在系和年龄。SELECTSname,Sdept,sageFROMStudentWHERESageBETWEEN20AND23例11查询年龄不在20-30岁之间的学生姓名、所在系和年龄。SELECTSname,Sdept,sageFROMStudentWHERESageNOTBETWEEN20AND23(3)确定集合IN是一个逻辑运算符,可以用来查找属性值属于指定集合的元素。格式为:列名[NOT]IN(常量1,常量2,…,常量n)例12查询信息系、数学系和计算机系学生的姓名和性别。SELECTSname,SsexFROMStudent
9、WHERESdeptIN(‘信息系’,‘数学系’,‘计算机系’)例13查询不是信息系、数学系和计算机系学生的姓名和性别。SELECTSname,SsexFROMStudentWHERESdeptNOTIN(‘信息系’,‘数学系’,‘计算机系’)(4)字符匹配LIKE用于查找指定列名与匹配串常量匹配的元组。匹配串不仅可以包含普通字符,而且还可以包含通配符。LIKE运算符的一般形式:列名
10、[NOT]LIKE<匹配串>通配符:—(下划线):匹配任何一个字符;%(百分号):匹配0个或多个字符;[]:匹配[]中的任意一个字符。如[abcd]表示匹配a或b或c或d,如果[]
11、中的字符是有序的,则可以用连字符-来简化[]中的内容,例如[abcd]可以简写为[a-d];[^]:不匹配[]中的任意一个字符。例14查询姓“张”的学生的详细信息。SELECT*FROMStudentWHERESnameLIKE‘张%’例15查询学生表中姓“张”姓“李”和姓“刘”的学生的详细信息。SELECT*FROMStudentWHERESnameLIKE‘[张李刘]%’例16查询名字中第二个字为“小”或“大”的学生的姓名和学号。SELECTSname,SnoFROMStudentWHERESnameLIKE‘_[大小]%’例17查询不姓“刘”的学生的姓名和
12、学号。SELECTSna