相克军老师-sql从数据库检索信息_第1页
相克军老师-sql从数据库检索信息_第2页
相克军老师-sql从数据库检索信息_第3页
相克军老师-sql从数据库检索信息_第4页
相克军老师-sql从数据库检索信息_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SQL语言分类1、查询语句 select2、数据操纵语言(DML) insert、update、delete3、数据定义语言(DDL) create、alter、drop、rename、truncate4、事务控制语言(TCL) commit、rollback、savepoint5、数据控制语言 grant、revoke创建store模式 SQLPLUS/ASSYSDBA SQL>@store_schema.sql列名全部转换为大写字符日期是左对齐数字是右对齐从表中取出指定的列从表中取出所有的列Oracle数据库中的每一行都有一个唯一的行标识符,或称为rowid。执行算术运算日期运算可以对日期进行加法和减法运算列运算使用列别名列名中间有空格。使用串连操作来合并列的输出结果这样的输出更加友好First_name和Last_name之间多了一个空格。理解空值Oracle使用空值来表示一个未知的值NVL()函数接受两个参数,第一个参数是列,第二个参数是如果为空,那么转换为这个值禁止显示重复行使用where子句进行过滤行使用比较运算符= 等于<>或!= 不等于< 小于> 大于<= 小于等于>= 大于等于ANY 与列表中的任何值进行比较ALL 与列表中的所有值进行比较使用SQL操作符LIKE:匹配字符串IN:匹配值列表BETWEEN:匹配值范围ISNULL:匹配空值ISNAN:NAN表示非数字ISINFINITE:匹配无穷值(BINARY_FLOAT、BINARY_DOUBLE)另外还可以匹配NOTNOTLIKENOTINNOTBETWEENISNOTNULLISNOTNANISNOTINFINITE使用LIKE操作符使用LIKE来匹配字符串。_:匹配指定位置上的一个字符%:匹配从指定位置开始的任何字符匹配a_product。需要使用escape转义字符。使用IN操作符使用BETWEEN操作符使用逻辑操作符 xANDy:当x和y都为true时,返回true xORy:当x和y中有一个是true时,返回true NOTx:如果x为false,则返回true,如果x为true,返回false理解操作符的优先级AND操作符的优先级高于OR比较操作符的优先级高于AND我们通常使用()来改变优先级使用orderby子句对行进行排序默认使用升序进行排序。DESC使用降序进行排序。ASC使用升序进行排序。使用1表示使用第一个列进行排序。执行使用两个表的select语句知道产品名称的同时需要知道产品类别名称。使用表别名笛卡尔积如果在多表查询中不指定连接条件,就会导致将一个表中的所有行都连接到另外一个表中的所有行上,这种情况就是笛卡尔积。…………….两个表的行数的乘积就是笛卡尔积的行数。执行使用多于两个表的select语句连接可以用于连接任意多个表,where子句中需要的连接的个数

查询中使用的表的总个数-1多表连接的书写方法1、首先确定需要查询什么2、需要查询这些内容时,涉及的表有哪些3、这些表之间的主外键关系以及连接条件一个涉及4个表的例子1、已经购买过产品的顾客2、顾客的姓名3、顾客购买过的产品名4、产品类型名根据需要查询的内容,涉及的表分别是:customers、purchases、products、product_type。主外键和关联关系确定如下1、要获得曾经购买过产品的顾客,需要使用customers和purchases表中的customers_id列将两个表连接起来。2、要获得顾客购买的产品,需要使用purchases和products表中的product_id列将这两个表连接起来。3、要获得产品类型名,需要使用products和product_type表中的product_type_id列将这两个表连接起来。selectc.first_name,c.last_name,asPRODUCT,asTYPEfromcustomersc,purchasespr,productsp,product_typesptwherec.customer_id=pr.customer_duct_id=duct_duct_type_id=duct_type_id理解连接条件和连接类型等连接:=不等连接:<、>、BETWEEN、等内连接(innerjoin)外连接(outerjoin)自连接(selfjoin)理解不等连接在连接中使用除等于操作符之外的操作符包括<>、<、>、<=、>=、LIKE、IN、BETWEEN需要看表结构才能够理解不等连接条件。理解外连接即使连接中的列包含空值,外连接也会返回一行。

例如一个表中的连接列中的值在另外一个表的连接列中没有值

一个表的连接列中有空值如果p中有空值,那么这样的行也显示。+放在想显示空值的相反的一方。+放在另外一端,显示的效果不同。左外连接和右外连接左外连接(+放在右边):那么左边的表中所有的行都会显示,即使左边的表中的行的连接列上有空值,或者左边的表中的连接列上的值右边没有。右外连接(+放在左边):那么右边的表中的所有的行都会显示,即使右边的表中的行的连接列上有空值,或者右边的表中的连接列上的值左边没有。外连接的限制1、不能在两端同时使用+2、不能同时使用外连接和IN操作符3、不能同时使用外连接条件和OR条件理解自连接自连接是对同一个表进行的连接,要执行一个自连接,必须使用不同的表别名来标识在查询中每次对表的引用。表employees保存了员工的信息,同时保存了部门经理的信息,部门经理同时也是一个员工。使用自连接来显示每个员工及其管理者的名字。使用SQL/92语法执行连接前面的oracle语法是基于ANSISQL/86标准。在开发oracle9i的时候,数据库实现了ANSISQL/92标准的连接语法。同样对于多个表的连接可以归纳为:join一个表,on一个条件。使用using关键字简化连接1、查询必须是等价连接2、等价连接中的列必须同名所执行的大部分连接都是等价连接,如果主外键总是使用相同的名字,那么就可以使用using关键字。只能使用列名,不能加上表的名字、也不能使用列别名。使用SQL/92执行多于两个以上表的内连接使用SQL/92执行多列的内连接 select… fromtable1jointable2 ontable1.column1=table2.column1 andtable1.column2=table2.column2 sel

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论