Oracle是第一个商品化的数据库管理系统,由甲骨文公司(Oracle)推出,其采用标准SQL,支持多种数据类型和平台,功能强大。同类产品还有IBM的DB2,Sybase,微软的SQL Server和现属于Oracle公司的MySQL.
结构化查询语言
SQL(Structured Query Language)结构化查询语言,是在关系型数据库中执行检索及维护的标准语言,可以用来操作,定义和控制数据。
所有的数据库都是用相同或者相似的语言,SQL可以分为以下几类:
- 数据定义语言(DDL):Data Definition Language
- 数据操纵语言(DML):Data Manipulation Language
- 事务控制语言(TCL):Transaction Control Language
- 数据查询语言(DQL):Data Query Language
- 数据控制语言(DCL):Data Control Language
DDL
用于建立,修改和删除数据库对象,此类语言的操作都和数据库的结构挂钩,所以凡是对表结构做出改动的都属于DDL
- CREATE: 创建表或者其他对象的结构
CREATE TABLE emp (
id NUMBER(5),
name VARCHAR2(20),
gender VARCHAR2(1),
hiredate DATE
);
- ALERT: 修改表或其他对象的结构
ALERT TABLE emp ADD (
salary NUMBER(6,2)
);
ALERT TABLE emp MODIFY(
gender VARCHAR2(1) DEFAULT 'M'
);
- DROP: 删除表或其他对象的结构
ALERT TABLE emp DROP(name);//删除字段
DROP TABLE emp;//删除表对象
- TRUNCATE: 删除表数据,保留表结构
TRUNCATE TABLE emp;
DML
数据操纵语言,用于操作数据库数据,例如增加,修改和删除数据等,和事务相关,执行完毕后必须提交才能生效。这里解释一下数据库事务这个概念。事务是指作为数据库工作过程当中的单个逻辑单元,要么完全的执行,要么完全的不执行。比方说一次银行转账操作,与数据库相关的操作包括检查账户和密码,账户余额,取款,转账,更新账户余额信息等。这一系列操作如果任意一个环节出错都不允许对数据库数据进行更改,账户信息必须还原到初始状态,否则数据库将会产生混乱,而事务则正是用来保证这一系列操作过程的稳定性和可预测性。
- INSERT:将数据插入到数据库中
INSERT INTO emp
(id,name,gender)
VALUES
(10001,kevin,M);
- UPDATE 更新数据库中已有的数据
UPDATE emp
SET name='zhangsan' WHERE id=10001;
- DELETE 删除数据库中数据
DELETE FROM emp WHERE name='zhangsan';
修改和删除表中数据时都必须使用WHERE关键字做条件限定,若不指定,将修改和删除表中所有数据。
DELETE,DROP和TRUNCATE关键字都有删除的作用,这三者的区别是:
相同点
- TRUNCATE和不带WHERE子句的DELETE,DROP都会删除表中数据
- TRUNCATE和DROP都是DDL语句,执行后直接提交不可回退
- TRUNCATE和DELETE只会删除表数据,不会删除表结构。
** 不同点**
- 事务操作上 DELETE是事务操作语言,操作可以回退,其他两者无法回退
- 执行效率上 DELETE每次删除一行,逐行删除,TRUNCATE针对整张表数据进行删除,DROP针对整张表对象删除,因此通常删除效率上 DROP>TRUNCATE> DELETE