ORACLE SQL

包括Oracle、DB2、SQL Server、MySQL数据库概述;数据定义语言DDL、数据操作语言DML、事务控制语言TCL、数据查询语言DQL、数据控制语言DCL语言介绍;NUMBER
、CHAR、VARCHAR2、DATE数据库类型;CHAR和VARCHAR2的存储编码、CHAR和VARCHAR2的最大长度、LONG和CLOB类型。


一、数据库概述

1、DB和DBMS

(1)、数据库(Database,jianchengDB)是按照数据机构来组织、存储和管理数据的仓库

注:SQL语句本身不区分大小写,但是出于可读性的目的,我们通常会将SQL中的关键字全部大写,非关键字全部小写

(2)、数据库管理系统(Database Management System,简称DBMS):管理数据库的软件

2、Oracle数据库概述

(1)、Oracle是著名的Oracle(甲骨文)公司的数据库产品

(2)、Oracle是世界上第一个商品化的关系型数据库管理系统

(3)、Oracle采用标准SQL(结构化查询语言),支持多种数据类型,提供面向对象的数据支持,具有第四代语言开发工具,支持UNIX、WINDOWS、OS/2等多种平台

(4)、Oracle公司的产品丰富,包括Oracle服务器、Oracle开发工具和Oracle应用软件,其中最著名的就是Oracle数据

3、DB2数据库概述

(1)、DB2是IBM公司的关系型数据库管理系统

(2)、DB2有很多不同的版本,可以运行在从掌上产品到大型机不同的终端机器上

(3)、DB2 Universal Database Personal Edition和DB2 Universal Database Workgroup Edition分别是单用户和多用户系统,可以运行在OS/2和Windows上

(4)、DB2是Oracle的主要竞争对手

4、SQL Server数据库概述

(1)、Microsoft SQL Server是微软的产品,运行在Windows NT服务器上

(2)、Microsoft SQL Server的最初版本适用于中小企业,但是应用范围不断扩展,已经触及到大型、跨国企业的数据

5、MySQL数据库概述

(1)、MySQL是开放源代码的小型关系型数据库管理系统,广泛应用在中小型网站中

(2)、总体拥有成本低、规模较Oracle和DB2小

(3)、2008年1月16日,Sun被Oracle公司收购,所以MySQL现在属于Oracle公司

二、SQL概述

1、表的概念

(1)、一个关系数据库由多个数据表(Table)组成,数据表是关系数据库的基本存储结构

(2)、表是二维的,由行和列组成

(3)、表的行(Row)是横排数据,也被称作记录(Record)

(4)、表的列(Column)是纵列数据,也被称作字段(Field)

(5)、表和表之间存在关联关系

2、结构化查询语言

(1)、SQL(Structured Query Language):结构化查询语言

(2)、SQL是在关系数据库上执行数据操作、检索及维护所使用的标准语言,可以用来查询数据,操纵数据,定义数据,控制数据

(3)、所有数据库都使用相同或者相似的语言

(4)、SQL可分为:

  • 数据定义语言(DDL):Data Definition Language

  • 数据操作语言(DML):Data Manipulation Language

  • 事物控制语言(TCL):Transaction Control Language

  • 数据查询语言(DQL):Data Query Language

  • 数据控制语言(DCL):Data Control Language

3、数据定义语言(DDL)

(1)、Data Definition Language:用于建立、修改、删除数据库对象

(2)、包括:

  • CREATE:创建表或其他对象的结构

  • ALTER:修改表或其他对象的结构

  • DROP:删除表或其他对象的结构

  • TRUNCATE:删除表数据,保留表结构

4、数据操作语言(DML)

(1)、Data Manipulation Language:用于改变数据表中的数据

(2)、和事务相关,执行完后需要经过事务控制语句提交后才真正的将改变应用到数据库

(3)、包括:

  • INSERT:将数据插入到数据表中

  • UPDATE:更新数据表中已存在的数据

  • DELETE:删除数据表中的数据

5、事务控制语言(TCL)

(1)、Transaction Control Language:用来维护数据一致性的语句

(2)、包括:

  • COMMIT:提交,确认已经进行的数据改变

  • ROLLBACK:回滚,取消已经进行的数据改变

  • SAVEPOINT:保存点,使当前的事务可以回退到指定的保存点,便于取消部分改变

6、数据查询语言(DQL)

(1)、Data Query Language:用来查询所需要的数据

(2)包括:SELECT语句

7、数据控制语言(DCL)

(1)、Data Control Language:用于执行权限的授予和收回操作

(2)、包括:

  • GRANT:授予,用于给用户或角色授予权限

  • REVOKE:用于收回用户或角色已有的权限

  • CREATE USER:创建用户

三、Oracle数据类型

1、NUMBER

(1)、NUMBER表示数字类型

(2)、经常被定义成NUMBER(P,S)形式,其中:P表示数字的总位数,S表示小数点后面的位数

(3)、例如在表emp中的sal列的定义如下:sal NUMBER(6,2)

表示sal列中的数据,整数位最大为4位,小数位最大位数是2位,也就是最大值:9999.99

2、CHAR

(1)、表示固定长度的字符类型

(2)、经常被定义成CHAR(N)形式,N表示占用的字节数
最大长度是2000字节

(3)、例如在表emp中的ename列的定义如下:
ename CHAR(20);

表示ename列中最多可存储20个字节的字符串,并且占用的空间是固定的20字节(如果输入的字节数不足20位,会在后面补空格)

3、VARCHAR2

(1)、表示变长的字符类型

(2)、定义格式是VARCHAR2(N),N表示最多可占用的字节数,最大长度是4000字节

(3)、例如在表emp中的job列的定义如下:
job VARCHAR2(100);

表示job列中最多可存储长度为100个字节的字符串,根据其中保存的数据长度,占用的空间是变化的,最大占用空间为100个字节

4、DATE

(1)、用于定义日期时间的数据

(2)、长度是7个字节,默认格式是:DD-MON-RR,例如:11-APR-71

(3)、SYSTEM是一个系统函数,返回当前系统日期和时间

(4)、例如在表emp中的hiredate列的定义如下:hiredate DATE;

表示hiredate列中存放的是日期数据

5、CHAR和VARCHAR2的存储编码

(1)、默认单位是字节,可指定为字符

  • CHAR(10),等价于CHAR(10 BYTE)

  • 指定单位为字符:CHAR(10 CHAR),20个字节

  • VARCHAR2(10),等价于VARCHAR2(10 BYTE)

  • 指定单位为字符:VARCHAR2(10 CHAR),20个字节

(2)、每个英文字符占用一个字节,每个中文字符按编码不同,占用2-4个字节

  • ZHS16GBK:2个字节

  • UTF-8:2-4个字节(变长编码集)

6、CHAR和VARCHAR2的最大长度

(1)、CHAR最大取值为2000字节,最多保存2000个英文字符,1000个汉字(GBK)

(2)、VARCHAR2最大取值为4000字节,最多保存4000个英文字符,2000个汉字(GBK)

(3)、CHAR可以不指定长度,默认为1,VARCHAR2必须指定长度

7、LONG和CLOB类型

(1)、LONE:VARCHAR2加长版,存储变长字符串,最多达2GB的字符串数据

(2)、LONG有诸多限制:每个表只能有一个LONG类型列;不能作为主键;不能建立索引;不能出现在查询条件中…

(3)、CLOB:存在定长或变长字符串,最多达4GB的字符串数据

(4)、ORACLE建议开发中使用CLOB代替LONG类型


Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐