




已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WhatsSQL,SQL是StructuredQueryLanguage(结构化查询语言)的缩写SQL是操作关系数据库的标准语言SQL功能强大、简单易学、使用方便,数据表,例如每一列表示一个数据分类。例如学号、姓名、性别、出生日期等,分别表示了“学生”的各种信息。术语称一列为一个字段并且字段名称在表中必须唯一;而每一行则表示数据的具体描述,例如第一行就记录了学生“李玉红”的基本信息。术语称一行为一条记录。,SQL作用,数据定义:定义数据库、基本表、视图和索引数据操纵:数据查询、插入、修改、删除数据控制我们只关注第二类,数据查询,基本格式:SELECT目标表的列名或列表达式集合FROM基本表或(和)视图集合WHERE条件表达式GROUPBY列名集合HAVING组条件表达式ORDERBY列名集合,简单查询,有选择地查询某些字段:Select字段1,字段2,字段3,from表名例:Select编号,姓名,性别,年龄from学生表查询所有字段:Select*from表名例:Select*from学生表,简单查询,数据库中有个表:Student(学生名单)Select*from学生表,选出所有的列,没有查询条件,就是要取得表中所有行,Select*from学生名单where性别=女(查出所有的女生)Select姓名from学生名单where性别=女查出所有女生的姓名,通配符,Select姓名from学生表where姓名like张*是通配符,可以用其来匹配多个字符,姓名like张*也就是表示所有姓张的。Select姓名from学生表where姓名like*明则表示找出名字的最后一个字是明的学生。Select姓名from学生表where姓名like*明*表示找出名字中包含明字的学生,And,Or,Select*from学生表where年龄20and性别=男And表示两个条件都要满足Select*from学生表where年龄20or性别=男Or表示两个条件只要满足其中一个,Orderbyasc/desc,Select*from学生表where性别=女orderby学号选出所有女生并且按学号排序(升序,默认)Select*from学生表where性别=女orderby学号ascSelect*from学生表where性别=女orderby学号desc,Ascend上升Descend下降,升序,降序,查询记录应符合的条件;准则表达式,And与操作“A”And“B”Or或操作“A”Or“B”BetweenAnd指定范围操作Between“A”And“B”In指定枚举范围In(“A,B,C”)Like指定模式字符串Like“张*”,BetweenAnd指定条件范围Between“A”And“B”,查询年龄在18至20岁学生信息:select*from学生表where年龄Between18And20,In指定枚举范围In(“A,B,C”),select*from学生表where年龄in(18,19,20)In前面加上notin,表示不在枚举范围:比如查询18岁以外所有学生信息select*from学生表where年龄notin(18),多表查询,假设有三个表:学生表、选课表一个课程表,三表查询,SELECT学生表.姓名,选课表.课程编号,课程表.课程名称,选课表.成绩FROM学生表,课程表,选课表,简单连接查询,连接查询在FROM子句中,用于将多个表按照一定的字段关系连接起来语法是:FROMJOINON连接类型包括:内连接、外连接、交叉连接等连接条件,往往是两个表之间的关联字段,一般是等值比较,数据库原理与应用,郑捷,18,连接与其他查询手段,对于连接查询而言,经过JOIN的两个表,构成了一个新表我们在之前所讲述的所有查询手段,都可以应用于这个新表,数据库原理与应用,郑捷,19,多表连接,在实际应用中,参与连接的表可以不止两个,可以为多个多表连接,一般是分部进行的,以内连接为例,语法如下FROMINNERJOINONINNERJOINON我们可以理解为先连接前两个,形成一个新表,然后新表再连接第三个表,数据库原理与应用,郑捷,20,SELECT学生表.姓名,选课表.课程编号,课程表.课程名称,选课表.成绩FROM学生表INNERJOIN(课程表INNERJOIN选课表ON课程表.课程编号=选课表.课程编号)ON学生表.编号=选课表.学生编号,聚集函数(汇总函数),一个聚集函数从多条记录计算出一个结果count(数目),sum(和),avg(平均值),max(最大值)和min(最小值)对行集合的特定域进行计算,count,算出符合条件的有多少条记录SELECTCount(性别)FROM学生表WHERE(学生表.性别)=女);,实操,查询:选修英语(102)的有多少?(涉及多表查询、count、子查询),sum,汇总计算符合条件的所有行的指定域的值的和Selectsum(成绩)from选课表where课程编号=101,学生成绩:选课表,avg,计算所有符合条件的行集合的指定域的平均值Selectavg(成绩)from选课表where课程编号=101,max,min,计算所有符合条件的行集合的指定域的最大,最小值Selectmax(成绩)from选课表where课程编号=101,查询经过计算的值,SELECT子句的可以为:算术表达式字符串常量函数列别名,查全体学生的姓名及其出生年份。(注意,表中只有年龄,没出生日期,那么,出生日期今年年龄)SELECT姓名,2012-年龄FROM学生表输出结果:姓名2012-年龄李勇1984刘晨1985,查询经过计算的值(续),表达式中的计算,A+B两个数字型字段值相加,两个文本字符串连接A-B两个数字型字段值相减A*B两个数字型字段值相乘A/B两个数字型字段值相除AB两个数字型字段值相除四舍五入取整ABA的B次幂Mod(A,B)取余,A除以B得余数A,嵌套最多可达32层,例:查询和学号为“980102”的学生同龄的所有学生的编号,姓名和性别。select编号,姓名,性别,年龄from学生表where年龄=(select年龄from学生表where编号=980102),子查询(嵌套查询),即在一个查询的内部某个部位,有另外一个查询出现外部的查询语句称为外查询,里面的查询语句称为子查询,数据库原理与应用,郑捷,36,例:查询英语成绩比英语课程平均成绩高的学生记录SELECT学生编号,成绩FROM选课表WHERE成绩80),IN子查询(列表子查询),前面的子查询只返回一个值。创建和使用返回多行的子查询使用有关的IN和NOTIN运算符。在外查询的条件中,使用某个子查询作为IN谓词的右端,就构成了IN子查询这种子查询只允许返回一个字段,但是返回值可以是一个或者多个,甚至是0个记录,返回值之间也允许重复,in子查询,例:查询85分以上考试成绩的课程,显示课程号字段。selectdistinct课程编号from选课表where成绩in(select成绩from选课表where成绩85),子查询,在后面的更新、删除等查询操作再介绍。思考:查询英语成绩最高的学生的信息注意:工资最高的人可能不止一个,有可能几个并列最高,略,可以通过三种语法形式来创建子查询:comparisonANY|ALL|SOME(sqlstatement)expressionNOTIN(sqlstatement)NOTEXISTS(sqlstatement),更新,UPDATE表名SET字段名=xxx,字段名XXXWHERE条件表达式,更新(一个记录中)一个数据,UPDATE学生表SET姓名=刘小力WHERE姓名=刘力(注意,更新时,把表关闭才行),同时改变多列,UPDATE学生表SET姓名=刘红,年龄=20,入校日期=#9/1/2000#,团员否=1WHEREname=刘小红,修改多个记录的值,例将所有学生的年龄增加1岁UPDATE学生表SET年龄=年龄+1;,更新语句,例将全体女学生的英语成绩改为80。UPDATE学生表INNERJOIN选课表ON学生表.编号=选课表.学生编号SET选课表.成绩=80WHERE(学生表.性别)=女)AND(选课表.课程编号)=102);,插入行,INSERTINTOtable_name(column1,column2,.)VALUES(value1,value2,.)若没有指定column系统则会按表格内的栏位顺序填入资料。,Insertinto学生表values(990404,黄华,女,19,#1985-8-15#,1,u0,777),Insertinto学生表(编号,年龄,性别,姓名,入校日期)values(990404,18,女,李美丽,#1990-2-2#),插入(续),INTO子句字段的顺序可与表中字段的顺序不一致没有指定字段时,按顺序插入指定部分字段时,注意对应VALUES子句提供的值必须与INTO子句匹配值的个数值的类型,删除,DELETEFROMtable_nameWHERE条件表达式删除符合条件的行注意使条件表达式正确,避免删错行,Deletefrom学生表注意:没有指明条件,删除表中所有行!,Deletefrom学生表where编号=990404删除学号为990404的学生信息,创建表查询,生成表查询可以从一个或多个表/查询的记录中制作一个新表。在下列情况下使用:把记录导出到其数据库。如创建一个交易已完成的订单表,以便送到其它部门。把记录导出到Excel/Word之类的非关系应用系统中。等,创建表查询的简化:,Select字段1,字段2,字段3Into新表名From表名此外,新建表中的数据并不继承原始表中的字段属性或主键设置。要建立主键、定义数据类型等。使用查询设计器来创建表,ADO,使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年食品感官检验题库及答案
- 天车工模拟考试题及答案
- 家庭按摩技能考试题及答案
- 青岛农行面试题目及答案
- 2025年福建省莆田市荔城法院招聘2名速录员模拟试卷及完整答案详解1套
- 担保方面的面试题及答案
- 黄职招生考试试卷及答案
- 区块链人才能力框架构建-洞察与解读
- 2025湖北襄阳市农业科学院招聘急需专业技术人才4人考前自测高频考点模拟试题及1套参考答案详解
- 个人营销店的营销方案
- 学术论文文献阅读与机助汉英翻译智慧树知到答案2024年重庆大学
- (初级)航空油料特设维修员(五级)理论考试题库-上(单选题)
- 医疗质量医疗安全十八项核心制度培训模板
- 预应力混凝土管桩(L21G404)
- 2023年山西省普通高中学业水平考试真题物理试题(含答案解析)
- 国家职业技术技能标准 4-07-02-05 商务数据分析师S 2024年版
- 模具开发进度管理表
- 成都中医药大学药学院毕业实习鉴定表
- 投标货物质量标准的详细描述
- 镇墩稳定计算
- 2023-2024学年辽宁省沈阳市郊联体高二上学期10月月考物理试题(解析版)
评论
0/150
提交评论