




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Oracle 11g系列7SQL 基础学习 电脑资料 本章详细介绍select语句、DMT语句、事物控制等等知识, 一。SQL语言概述 SQL(Structured Query Language,结构化查询语言),用来实现关系运算中的查询、选择等操作,是一个综合的、功能极强同时也是一种简单易学的语音。 1.1 SQL 语言的特点 SQL语言采用集合操作方式,对数据的处理是成组进行的 执行SQL语句时,每次只能发送并处理一条语句 执行SQL语句时,用户只需要知道逻辑含义,无需关心SQL的具体执行 1.2 SQL语言分类 查询语言 比如select 数据操纵语言(Data Manipulation Lanuage,DMT) Insert Update Delete Merge(合并 插入 修改) 数据定义语言(Data Definition Language,DDL) Create Drop Rename Truncate(删除表的全部内容) 事物控制(Transaction Control ,TC)语句 Commit 永久性的保存对行所做的修改 Rollback 取消对行所做的修改 Savepoint 设置一个“保存点”,可以将对行的修改回滚到此处 数据控制语言(Data Control Language,DCL) Grant 授予其他用户对数据库结构的访问权限 Revoke 收回用户数据库结构的权限 1.3 SQL语句的编写规则 SQL关键字不区分大小写,也就是大小写不敏感 对象名和列名不区分大小写 字符值和日期值区分大小写 具体一些 看后记中的 _ 二。数据查询语法 Select All|Distinct , . from where Group by Having Order by ASC|DESC OK,上面就是查询语句的语法。这个怎么看呢?很简单。貌似以前也说过。就是方括号()中的内容是可选的,尖括号()是一定要选择的。 测试数据 我新建了3个表,如下 学生表:Student(Sno,Sname,Ssex,Sage,Ddept) 课程表:Course(Cno,Cname,Cpno(先行课),Ccredit(学分) 这里需要解释一下,什么叫先行课:就是比如你要学C#,那么你需要一定的计算机基础的知识,那么这个计算机知识就是先行课。 学生选课表:SC(Sno,Cno,Grade) 三。数据查询-单表查询 顾名思义就是在一个表中查询。这个是最简单的查询咯! 3.1选择表中的若干列 查询指定列 【例子1】从student表中查出所有学生姓名和学号 查询所有的列值 【例子2】从course表中查出所有的课程信息 查询经过计算的值 【例子3】从student表中查出学生的姓名和生日日期 不仅可以是算数表达式,还可以是字符串常量、函数等。 【例子4】我现在要找出全体学生的姓名、出生年份以及院系,但要求院系都要小写!如下: 用户可以通过指定别名来改变查询结果的列标题,例子如下: 3.2选择表中的若干元组 消除取值重复的行 需要记住的关键字是:distinct 【例子5】使用distinct 查询满足条件的元组 我们都知道查询满足指定条件是可以通过Where字句来实现的,where字句常用的查询条件如下: (1)比较大小 【例子6】查询计算机系全体学生的名单 【例子7】查询年龄在20岁以下的学生 (2)确定范围 【例子8】查询年龄在2025(包括20 和25)岁之间的学生名字、系别和年龄。 同理,如果不在这个范围,则使用not between关键字, (3)确定集合 谓词in可以用来查找属性属于指定集合的元组 【例子9】查找计算机系(CS)、数学系(MA)的学生姓名和性别。 与in相对应的谓词是not in,用于查找不在这个范围的值。 (4)字符匹配 用like可以进行字符串的匹配,语法如下: not like escape 其含义是找出指定的属性列值与匹配串的结果。匹配串可以是字符串,也可以是通配符%和_,含义如下: %(百分号):代表任意长度。比如a%b,则表示aeweb,或者ab _(下划线):代表任意个字符。比如a_b则代表,a开头,b结尾的3个字符串。 【例子10】找出名字中以 Hong结尾的名字 很明显,找出不在字符串中的匹配是not like。 【例子11】找出学生名字xiao后面只有2个字符的名字: 得到的结果是XiaoLi,因为上面图的缘故,所以只能看到一条下划线,其实有2个。 NOTE:如果用户要查询的字符串本身就包含通配符%或_中,那怎么办呢?在上面的语法中,我们提到。这个时候,我们就需要使用escape 换码字符 这个知识了,对通配符进行转义了。 啥意思呢?就是在escape 换码字符后面的字符串是正常的字符串。 【例子12】找出课程名DB_开头,并且倒数第三个字符为i的课程的详细信息。 这个怎么看呢?escape 表示 为换码字符。这样匹配串中紧跟在“”后面的字符串“_”不在具有匹配符的含义,和普通字符一样。所以,第一个“_”被转义为普通字符,第二和第三个的前面没有换吗码字符,所以依然是匹配符。 (5)涉及空值的查询 【例子13】查询缺少成绩的学生号和课程号,因为有些学生没有参加课也很正常。 OK,可能有些园子的朋友会觉得 这里的is 用“=”代替,可以吗?结果如下: 得出的结果是不可以的,所以在判断为空的时候用is,而不是“=” (6)多重条件查询 逻辑运算符 and和or可以用来连接多个查询条件。and的优先级高于or的哦。亲。 【例子14】查询年龄在20岁以下且是计算机系的学生 【例子15】在例子9中,我们使用了in,其实,我们也可以用or来代替找出在学生的系在CS和MA的学生。 啊 3.3Order by 字句 用户可以使用order by语句来进行对查询结构的列进行升序(ASC)或者降序(DESC) 【例子16】从course表中,查找出课程号2及其的学生成绩,结果按分数降序 排列。 对于空值,若按升序排列,含空值的元组会最后显示。若降序排列,空值的元组会最先显示。 3.4 集合函数(Aggregate function) SQL 提供了许多的集合函数,主要有: Count(Distinct|All*) 统计元组个数 Count(Distinct|All* ) 统计一列中值的个数 Sum(Distinct|All* )计算一列值的综合 Avg(Distinct|All* ) 计算一列值的平均值 Max(Distinct|All* ) 求一列值中最大值 Min(Distinct|All* ) 求一列值最小值 【例子17】求student表中的学生数 【例子18】计算选择1号课程的平均成绩 在聚集函数遇到空值的时候,除了count(*),都跳过空值而只是处理非空值。注意where字句中是不能聚集函数作为条件表达式的。 【例子19】求学号为4选修课的总学分数: 3.5 Group by group by字句将查询结果按某一列或多列的值分组,值相等的为一组。对查询结果分组是为了细化聚集函数的作用。 【例子20】求每个课程号及相应的的选课人数 该语句对查询结果按Cno的值分组,所以具有相同Cno值的元组都为一组,然后对每一组进行统计个数。 如果分组后还需要按照一定的条件对这些组进行刷选,则可以使用having短语指定刷选条件。 【例子21】 这里选用group by字句按照sno进行分组,在用聚合函数count对每一组进行统计,having给出了条件,只有满足条件的组才会显示出来。因为Sno=3的课程人数只有1人,所以没有显示出来。 where和having的区别是:where字句作用于基本表或视图;而having作于元组中(就像我们这里一样)。 3.6 Order By 排序 Order By主
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 住宅小区保安培训大纲
- 妇产科诊疗常规
- 古诗活动教师培训
- 支原体肺炎治疗
- 血管造影术后护理
- 掌骨骨折第四护理常规
- 肿瘤放疗进修护士专题汇报
- 服务语言技巧培训
- 财务政策培训
- 员工培训成果应用
- 全国二卷2025年高考数学真题含解析
- 护理急诊急救培训课件
- 2025年卫生系统招聘考试(公共基础知识)新版真题卷(附详细解析)
- 2024年司法局司法辅助岗招聘考试笔试试题(含答案)
- 2025邯郸武安市选聘农村党务(村务)工作者180名笔试备考试题及答案详解一套
- 重庆市普通高中2025届高一下化学期末学业质量监测试题含解析
- 2025年人力资源管理师考试试卷及答案
- 北方华创招聘笔试题库2025
- 2025郑州航空工业管理学院辅导员考试试题及答案
- 浙江省嘉兴市2023-2024学年高一下学期6月期末考试英语试题(含答案)
- 多模态数据融合的智能告警机制-洞察阐释
评论
0/150
提交评论