《SQL必知必会》总结_第1页
《SQL必知必会》总结_第2页
《SQL必知必会》总结_第3页
《SQL必知必会》总结_第4页
《SQL必知必会》总结_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

《SQL必知必会》总结⽬录第1章了解SQL第2章检索数据第3章排序检索数据第4章过滤数据第5章⾼级数据过滤第6章⽤通配符进⾏过滤第7章创建计算字段第8章使⽤数据处理函数第9章汇总数据第10章分组数据第11章使⽤⼦查询第12章联结表第13章创建⾼级联结第14章组合查询第15章插⼊数据第16章更新和删除数据第17章创建和操作表第18章使⽤视图第19章使⽤存储过程第20章管理实务处理第21章使⽤游标第22章了解⾼级SQL特性--------------------------------------------------------------------------------------------------------------------------------------------第1章:连接数据库数据库(databases):保存有组织的数据的容器表(table):某种特定类型数据的结构化清单模式(schema):关于数据库和表的布局及特性的信息列(colimn):表中的⼀个字段,所有表都是由⼀个或多个列组成的数据类型(datatype):所容许的数据的类型⾏(row):表中的记录主键(primarykey):⼀列(或⼀组列),其值能够唯⼀标识表中每个⾏①任意两⾏都不具有相同的主键值;②每个⾏都必须具有⼀个主键值(主键列不允许NULL值);③主键列中的值不允许修改或更新;④主键值不能重⽤(如果某⾏从表中删除,它主键不能赋给以后的新⾏)SQL(StructuredQueryLanguage,结构化查询语⾔):与数据库通信的语⾔第2章检索数据SELECT语句:从⼀个或多个表中检索数据关键词(keyword):SQL组成部分的保留字,不能⽤作表或列的名字//从Products表中检索⼀个名为prob_name的列SELECTprob_nameFROMProducts;//从Products表中检索多列SELECTprob_name,prob_id,prob_priceFROMProducts;//从Products表中检索所有的列SELECT*FROMProducts;第三章排序检索数据⼦句(clause):SQL语句由⼦句构成,通常由⼀个关键字加上所提供的数据组成可⽤ORDERBY⼦句明确地排序⽤SELECT语句检索出的数据。应保证ORDERBY⼦句是SELECT语句中最后⼀条⼦句。SELECTprob_nameFROMProductsORDERBYprob_name;按多个列排序://⾸先按价格排序,然后按名称排序SELECTprob_id,prob_price,prob_nameFROMProductsORDERBYprob_price,prob_name;按列的位置排序:SELECTprob_id,prob_price,prob_nameFROMProductsORDERBY2,3;指定排序⽅向:(默认升序ASC,降序使⽤DESC关键字)SELECTprob_id,prob_price,prob_nameFROMProductsORDERBYprob_priceDESC;SELECTprob_id,prob_price,prob_nameFROMProductsORDERBYprob_priceDESC,prob_name;第四章过滤数据只检索所需数据需要指定搜索条件(searchcriteria),也称为过滤条件(filtercondition)根据WHERE⼦句中指定的搜索条件过滤,WHERE⼦句在表名(FROM⼦句)之后给出SELECTprod_name,prob_priceFROMProductsWHEREprob_price=3.49;WHERE⼦句操作符:SELECTprob_name,prob_priceFROMProductsWHEREprob_price<=10;SELECTprob_name,vend_idFROMProductsWHEREvend_id<>'DLL01';SELECTprob_name,prob_priceFROMProductsWHEREprob_priceBETWEEN5AND10;SELECTprob_name,FROMProductsWHEREprob_priceISNULL;第5章:⾼级数据过滤组合WHERE⼦句:以AND⼦句的⽅式或OR⼦句的⽅式使⽤SELECTvend_id,prob_price,prob_nameFROMProductsWHEREvend_id='DLL01'ANDprob_price<=4;SELECTvend_id,prob_price,prob_nameFROMProductsWHEREvend_id='DLL01'ORvend_id='BRS01';//悠闲处理AND操作符SELECTprob_price,prob_nameFROMProductsWHEREvend_id='DLL01'ORvend_id='BRS01'ANDprob_price<=4;SELECTprob_price,prob_nameFROMProductsWHERE(vend_id='DLL01'ORvend_id='BRS01')ANDprob_price<=4;IN操作符指定条件范围,范围中的每个条件都可以进⾏匹配。IN取合法值得有逗号分隔的清单,全都在圆括号中。功能与OR相当。优点:①使⽤长的合法选项清单时,IN操作符的语法更清楚、直观。②在⽤IN时,计算次序更容易管理(操作符更少)。③IN操作符⼀般⽐OR操作符清单执⾏更快。④IN最⼤优点是可包含其他SELECT语句,使得更能动态地建⽴WHERE⼦句。SELECTprob_name,prob_priceFROMProductsWHEREvend_idIN('DLL01','BES01')ORDERBYprob_name;NOT操作符可以⽤在要过滤的列前,⽽不仅是在其后SELECTprob_nameFROMProductsWHERENOTvend_id='DLL01'ORDERBYprob_name;第六章⽤通配符进⾏过滤LIKE操作符:在搜索⼦句中使⽤通配符通配符(wildcard):⽤来匹配值的⼀部分的特殊字符搜索模式(searchpattern)由字⾯值、通配符或两者组合构成的搜索条件1)百分号(%)通配符:任何字符出现任意次数SELECTprob_id,prob_nameFROMPrductsWHEREprob_nameLIKE'Fish%';2)下划线(_)通配符:只匹配单个字符;(%能匹配0个字符不⼀样,_总是匹配⼀个字符,不能多也不能少)SELECTprob_id,prob_nameFROMPrductsWHEREprob_nameLIKE'__inch';3)⽅括号([])通配符:指定⼀个字符集,必须匹配指定位置的⼀个字符//[JM]匹配任何以J或M开都的字符串SELECTcust_contactFROMCustomersWHEREcust_contactLIKE'[JM]%'ORDERBYcust_contact;//可以使⽤前缀字符^否定SELECTcust_contactFROMCustomersWHEREcust_contactLIKE'[^JM]%'ORDERBYcust_contact;第7章创建计算字段字段(field):基本上与列意思相同,经常互换使⽤,不过数据库列⼀般称为列,⽽术语字段通常⽤在计算字段的连接上拼接字段(concatenate):将值联结到⼀起构成单个值列别名(alias):是⼀个字段或值的替换名,使⽤AS关键字赋予执⾏算术计算第8章:使⽤数据处理函数⽂本处理函数:⽇期和时间处理函数:数值处理函数:第9章汇总数据聚集函数(aggregatefunction):运⾏在⾏组上,计算和返回单个值的函数AVG()函数:通过对表中⾏数计数并计算特定列值之和,求得该列的平均值COUNT()函数:计数,确定表中⾏的数⽬或符合特定条件的⾏的数⽬1)使⽤COUNT(*)对表中⾏的数⽬进⾏计算,不管表列中包含的是空值(NULL)还是⾮空值;2)使⽤COUNT(column)对特定列中具有值的⾏进⾏计算,忽略NULL值//返回表中客户的总数SELECTCOUNT(*)ASnum_custFROMCustomers;//只对具有电⼦邮件地址的客户计数SELECTCOUNT(cust_email)ASnum_custFROMCustomers;MAX()函数:返回指定列中的最⼤值SELECTMAX(prob_price)ASmax_priceFROMProducts;MIN()函数:返回指定列的最⼩值SELECTMIN(prob_price)ASmin_priceFROMProducts;SUM函数:返回指定列值的和SELECTSUM(quantity)ASitems_orderedFROMOrderItemsWHEREorder_num=20005;组合聚集函数:第10章分组数据创建分组:过滤数组:HAVING过滤分组(类似于:WHERE过滤⾏)SELECTcust_id,COUNT(*)ASordersFROMOrdersGROUPBYcust_idHAVINGCOUNT(*)>=2;分组vs排序:SELECT⼦句排序:第11章使⽤⼦查询⼦查询(subquery):嵌套在其他查询中的查询SELECTcust_idFROMOrdersWHEREorder_numIN(SELECTorder_numFROMOrderItemsWHEREprob_id='RGAN01');作为计算字段使⽤⼦查询SELECTcust_name,cust_state,(SELECTCOUNT(*)FROMOrdersWHEREOrders.cust_id=Customers.cust_id)ASordersFROMCustomersORDERBYcust_name;第12章联结表关系表的设计是要保证把信息分解成多个表,⼀类数据⼀个表,各表通过某些常⽤的值(即关系设计中的关系relational)互相关联。创建联结:规定要联结的所有表以及它们如何关联即可SELECTvend_name,prob_name,prob_priceFROMVendors,ProductsWHEREVendors.vend_id=Products.vend_id;联结多个表:SELECTprob_name,vend_name,prod_price,quantityFROMOrderItems,Products,VendorsWHEREProducts.vend_id=Vendors.vend_idANDOrderIb_id=Pb_idANDorder_num=20007;第13章⾼级联结使⽤表别名SELECTcust_name,cust_contactFROMCustomersASC,OrderASO,OrderItemsASOIWHEREC.cust_id=0.cust_idANDOI.order_num=O.order_numANDprob_id='RGAN01';使⽤不同类型的联结:⾃联结、⾃然联结、外部联结1)⾃联结:问题:发送⼀封信件给为JIMJones所在的公司⼯作的所有客户,需要⾸先找出JimJones⼯作的公司,然后找出为此公司⼯作的客户.⽅法⼀:⼦查询,返回JimJones⼯作的公司的cust_nameSELECTcust_id,cust_na

温馨提示

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

最新文档

评论

0/150

提交评论