最近看了遍oracle视频,突然有一种很久都没有系统的学过东西的感觉了,SQL语句用的都不知道多少遍,但是大部分都是不会的就上网查,没有什么章法,或者是对他的一些机制或者分类都不是太明显,甚至有些很简单的SQL语句都能写错,完全借助网络的力量来弥补,在想想其他的学习,无论是VB.NET,还是JAVA,总是有一种没有外界力量的支撑下,两个简单的函数都写不了的感觉,所以,从现在开始,尽量的去系统的总结一下以前学的知识,正好看完ORACLE,所以第一个总结就是关于SQL.
SQL简介:
结构化查询语言(StructuredQuery Language)简称SQL(发音:/??s kju? ??l/ "S-Q-L"),结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
应用
结构化查询语言SQL(STRUCTUREDQUERY LANGUAGE)是最重要的关系数据库操作语言,并且它的影响已经超出数据库领域,得到其他领域的重视和采用,如人工智能领域的数据检索,第四代软件开发工具中嵌入SQL的语言等。
支持标准
SQL 是1986年10 月由美国国家标准局(ANSI)通过的数据库语言美国标准,接着,国际标准化组织(ISO)颁布了SQL正式国际标准。1989年4月,ISO提出了具有完整性特征的SQL89标准,1992年11月又公布了SQL92标准,在此标准中,把数据库分为三个级别:基本集、标准集和完全集。
结构化查询语言包含6个部分:
一:数据查询语言(DQL:Data Query Language):
其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。
这谁最常用的,所以必须熟知,下面列几个在系统中用到,但是又不得不上网查的几个关键字:
DISTINCT:消除重复
IS NULL/IS NOTNULL:查询为空或者不为空,之前总写=Null/!=NULL,吃了不少亏
ROUND(数字|列【保留小数的位数】):四舍五入的操作
TRUNC(数字|列【保留小数的位数】):舍弃指定位置的内容
TO_CHAR/TO_DATE/TO_NUMBER:这些转换用SQL 就可以完成
ROWNUM:加一个列number
IN操作符:用于指定一个子查询的范围
ANY操作符:与每一个内容相匹配,有三种匹配形式
=ANY:功能与IN操作符完全一样的
>ANY:比子查询中返回记录的最大的还要小
<ANY:比子查询中返回的最大的记录还要大
ALL操作符:与每一个内容相匹配,有两种形式
>all:比子查询中返回最大的记录还要大
<ALL:比子查询中返回的最小记录还要小
二:数据操作语言(DML:Data Manipulation Language):
其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。
三:事务处理语言(TPL):
它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。
四:数据控制语言(DCL):
它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。
这里有一个需要注意的地方:
集合操作(理解)
UNION:连接两个查询,相同的部分不显示
UNIONALL:连接两个查询,相同的部分显示
INTERSECT:返回两个查询中的相同部分
MINUS:返回链各个查询中的不同部分
五:数据定义语言(DDL):
其语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。
六:指针控制语言(CCL)
它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERECURRENT用于对一个或多个表单独行的操作。
这个到目前为止从来没有用过,理解的不是到位,说实话,如果不是总结,都忘记还有这么一个东西了,不做总结,知道就好
语言特点
1.一体化:SQL集数据定义DDL、数据操纵DML和数据控制DCL于一体,可以完成数据库中的全部工作。
2.使用方式灵活:它具有两种使用方式,即可以直接以命令方式交互使用;也可以嵌入使用,嵌入到C、C++、FORTRAN、COBOL、JAVA等主语言中使用。
3.非过程化:只提操作要求,不必描述操作步骤,也不需要导航。使用时只需要告诉计算机“做什么”,而不需要告诉它“怎么做”。[1]
4.语言简洁,语法简单,好学好用:在ANSI标准中,只包含了94个英文单词,核心功能只用6个动词,语法接近英语口语。
SQL中能想到的目前就这么多,如果以后需要继续完善的话,继续完善总结。