SQL基础

1、SQL概述

                   SQL(结构化查询语言):是用户与数据库交流所需要的

               标准语言SQL是一种在关系型数据库中定义和操纵数据

               的标准语言,是数据库管理系统与数据库进行交互的接口。

                2、SQL语言的特点

                   1)集合性

                   2)统一性

                   3)易于移植性

                3、SQL语言的分类

                   1)数据查询语言(DQL)用于检索数据库中的数据

                        select语句用于查询

                   2)数据操纵语言(DML)用于改变数据库中的数据

                        insert语句用于将数据插入到数据库中

                        update语句用于更新数据库中已存在的数据

                        delete语句用于删除数据库中已存在数据

                 3) 事务控制语言(TCL)用于维护数据的一致性

                        commit语句用于提交对数据库的更改

                        rollback语句用于取消对数据库的更改

                        savepoint语句用于设置保存点

                 4) 数据定义语言(DDL)用于建立、修改和删除数据库对象

                        create table语句创建表

                        alter table语句修改表

                        drop table语句删除表

                 5) 数据控制语言(DCL)用于执行权限授予和权限收回

                        grant用于给用户或角色授予权限

                        revoke用于收回用户或角色所具有的权限

                注:SQL关键字不区分大小写,字符值区分大小写   

                4、用户模式

                1) 模式概念:数据库对象集合

               注:在一个模式内部不可以直接访问其它模式内部数据库对象          

            2) scott用户的主要数据表

                  通过进入scott用户登录,在用select * from tab;即可查询

             scott的表结构。     

                  在其它用户模式下调用某个表或视图结构,用该结构所在

             模式名 .

                  查看scott模式下的表

                   SQL基础

                5、 检索数据

                1)简单查询

                     select [distinct] 获知内容 列[别名],列[别名]

                     from 表名称[别名]

                2)限定查询  

                     select [distinct] 获知内容 列[别名],列[别名]     

                     —— 控制要显示的数据列          

                     from 表名称[别名]    ——确定数据来源

                     [where 条件];     ——根据判断条件选择参与的数行

                     为列指定别名既可以使用as关键字,也可以不使用任

                 何关键字而直接指定

                3)筛选查询

                     注:在筛选查询中注意“!=”与“<>”是等价的。

                     关键字筛选

                          LIKE关键字:字符串模式匹配或字符串模糊查询

                         其常用的通配符有:

                             下划线“_”:代表任意字符

                             百分号“%”:代表任意数量字符

                          IN关键字:测试一个数据值是否匹配一组目标值

                      中的一个 BETWEEN关键字:检索一组数据值是否在

                      给定的范围内IS NULL关键字:空值(NULL)是未

                      知的、不确定的值,与空字符串不同。

                4) 分组查询

                      GROUP BY子句可以基于指定某一列的值将数据集合

                  划分为多个分组,而分组常与聚集函数一起使用。

                       select [distinct] 获知内容 列[别名],列[别名]     

                        —— 控制要显示的数据列            

                     from 表名称[别名]    ——确定数据来源

                     [where 条件];   ——根据判断条件选择参与的数据行

                     [ORDER BY 字段[asc|desc],字段[asc|desc]];

                6、多表关联查询(数据量大的时候,不建议)

                       在多表关联查询时,若多个表之间存在同名的列,则   

                   必须使用表名来限定列的引用。

                       内连接(等值连接)

                   常使用关键字INNER  JOIN 来实现

                       当只使用join关键字,语句只表示内连接。

               范例:

           SQL基础  

                   外连接

                   内连接消除了与另一个表中的任何行不匹配的行,而外连

              接扩展了内连接的结果集,除了返回所有匹配的行外,还会返

              回一部分或全部不匹配的行。

                   外连接的种类,通常有下面三类:

               左外连接:关键字LEFT OUTER JOIN 或 LEFT JOIN

字段=字段(+),“(+)”在等号右边表示左外连接

               范例:

SQL基础

               右外连接:关键字RIGHT OUTER JOIN 或 RIGHT JOIN

                         字段(+)=字段,“(+)”在等号右边表示左外连接

注:“(+)”只有在oracle中能够使用

                补:

                   使用USING子句,用户指定关联字段

                   语法:

                   SELECT  * 字段[别名] from 表 JOIN表 USING(字段)

                   使用ON子句,用户指定关联字段

                   语法:

                   SELECT  * 字段[别名] from 表 JOIN表 ON(条件)

 

               范例:

 SQL基础

   完全外连接:关键字 FULL OUTER JOIN 或 FULL JOIN

   范例:

   SQL基础

  自然连接:检索多个表时,将第一个表的列与第二个表中具有相同名称的 列自动连接。使用“NATURAL JOIN”;

    范例:

 SQL基础

注:在自然连接时,不能为列指定限定词(即表名或表的别名)  

交叉连接:不需要任何连接条件,使用CROSS JOIN 关键字来实现

范例:

SQL基础