SQL语言

1.SQL语言的特点

集合性

SQL可以在高层的数据结构上进行工作,工作时不是单条的处理记录,而是对数据进程组的处理。

所有SQL语句都接受集合作为输入,并返回集合作为输出,SQL的集合性特性允许一条SQL语句的

结果作为一条SQL语句的输入。

统一性

SQL为许多任务提供了统一的命令,这样方便用户学习和使用。

易于移植性

因为主要的关系型数据库都支持SQL语言,用户易于将原来使用SQL技能从一个

RDBMS转到另一个,而且用兼容SQL标准编写的程序都是可移植的。

2.SQL语言的分类

数据查询语言DQL

数据操纵语言DML

事物控制语言TCL

数据定义语言DDL

数据控制语言DCL

3.SQL语言的编写

编写规则: sql不区分大小写可以混用,分号结束该语句


操作数据库

1.插入数据INSERT语句

insert into table_name 

[(column_name1[,column_name2]....)]

values(express1[,express2]...)

2.更新数据UPDATE语句

update table_name

set {column_name1=express1[,column_name2=express2....]|

(column_name1[,column_name2...])=(selectSubquery)}

[where condition]

3.删除数据DELETE语句和TRUNCATE语句

delete from table_name [where condition]

truncate table table_name


检索数据

1.简单查询

只包含select子句和from子句的查询就是简单查询,select子句和from子句是select语句

的必选项,每个select语句都包含这两个子句。select子句用于选择要在查询结果中显示

的列,对于这些要显示的列,即可以使用列名来表示,也可以使用星号*表示,在检索数据

时,数据将按照select子句后面指定的列名的顺序来显示:如果使用星号*,则表示检索所

有的列,这时数据将按照表结构的自然顺序来显示。


2.筛选查询

在select语句中,where子句位于from子句之后,其语法格式

    select  columns_list

    from table_name

    where conditional_expression


3.分组查询

在select语句中,group by子句位于from子句之后,其格式为

select columns_list

from table_name

[where conditional_expression]

group by columns_list


4.排序查询

在select语句中,可以使用order by子句对检索的结果进行排序,该子句

位于from子句之后,其语法格式如下

select columns_list

from table_name

[where conditional_experssion]

[group by columns_list]

order by{order_by_experssion[asc|desc]}[,...n]

5.多表关联查询

在实际的应用系统开发中会设计多个数据表,每个表的信息不是

独立存在的,而是若干个表之间的信息存在一定的关系,这样当

用户查询某一个表的信息时,很可能需要查询关联数据表的信息,这就是

多表关联查询。select语句自身是支持多表关联查询的,多表关联查询

要比单表查询复杂,在进行多表关联查询时,可能会涉及到表别名,内

连接,外连接,自然连接和交叉连接等概念。


事物处理

1.事物的概述

数据库事物是单个逻辑工作单元执行的一系列操作,事物有四大特性

    原子性:事物是一个整体的工作单元,事物对数据库所作的操作要么都执行要么全部取消。如果某条语句

                 执行失败,则所有语句全部回滚。

   一致性:事物在完成时,必须使所有的数据都保持一致状态,在相关数据库中,所有规则都必须应用于事物

                的修改,以保持数据的完整性。若事物成功,则所有数据将变成一个新的状态,如果事物失败,则

                所有数据将处于开始之前的状态。

   隔离性:由事物所作出的修改必须与其他事物所作出的修改隔离,事物查看数据时数据所处的状态,要么是

                另一并发事物修改它之前的状态,要么是另一事物修改它之后的状态,事物不会查看中间状态的数据。

  持久性:当事物提交后,对数据库所做的修改就永久保存。


2.操作事物:

oracle 11g的事物是隐式自动开始的,他不需要用户显示的执行开始的事物语句,但对事物的结束处理

则需要用户进行指定的操作,通常在以下情况时,oracle认为一个事物结束了。

1.执行commit语句提交事务。

2.指定rollback语句撤销事物。

3.执行一条数据定义语句,如:create、drop、alter等语句若执行成功,则

oracle系统会自动执行commit命令;否则oracle系统会自动执行rollback命令。

4.执行一条数据据控制命令,如:grant、revoke等控制命令,这种操作执行wanbi

oracle系统会自动执行commit命令。

5.正常的断开数据库的连接,正常的退出sql plus 环境,则oracle系统会自动执行commit命令;j

否则,oracle系统会自动执行rollback命令。


用户模式:

1.模式与模式对象

模式是一个数据库对象的集合。模式为一个数据库用户所有,且具有该用户相同的名称

,如system模式,scott模式,在一个模式内部不可以直接访问其他模式的数据库对象,即使

在具有访问权限的情况下,也需要指定名称才可以访问其他模式的数据库对象。

    模式对象是由用户创建的逻辑结构,用以存储或引用数据。例如表、索引等,以及用户

所拥有的其他非段的数据库对象,这些非段的数据库对象通常包括:约束、视图、同义词、过程

及程序包等。故,模式与模式对象之间的关系是拥有与被拥有的关系,模式拥有模式对象。

2.示例模式scott

oracle提供的scott模式的目的,是为了给用户提供一些示例表和数据来展示oracle数据库的特性

scott模式拥有模式对象都是数据表

scott模式解锁alter user scott account unlock;


子查询的用法

1.子查询定义

子查询是在sql语句内的另一条select语句,也成为内查询或内select语句。在select

、insert、update或delete命令中允许一个表达式的地方都可以包含子查询,子查询

可以包含在另一个子查询中。


2.单行子查询

单行子查询是指返回一行的数据子查询语句。当在where子句中引用单行子查询时,可使用

单行比较运算符(=、>、<、>=、<=、<>)。

3.多行子查询

多行子查询是指返回多行数据的子查询语句。当在where子句中使用多行子查询时,

必须使用多行比较符in 、any、 all。


4.关联子查询

当子查询和多行查询中,内查询和外查询是分开执行的,也就是说内查询的执行与外查询的执行

是没有关系的,内查询仅仅是使用内查询的最终结果。在一些诶特殊需求的子查询中,内查询的执行

需要借助外查询,而外查询的执行又离不开内查询的执行,此时,内查询和外查询是相互关联的,这种

子查询就被称为关联子查询。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值