基本数据类型及SQL语法
Oracle 中用于访问数据库的主要查询工具有 SQL*Plus、iSQL*Plus 和企业管理器
Pl/SQL Developer的使用
Oracle 服务器由Oracle 数据库和 Oracle 实例组成
Oracle 中的 SYSTEM 用户和 SYS 用户具有管理权限,而 SCOTT 用户只有基本的权限
SQL语言的组成
DDL(数据定义语言):维护(定义、修改、删除)SQL模式对象
DML(数据操纵语言):包括数据查询和数据更新(增删改查)
DCL(数据控制语言):对数据的访问控制(授予权限、取消权限)
TCL(事务控制语言):对事务的控制(提交、回滚、保存点)
SQL应用
通过SQL可以实现与Oracle服务器的通信;
Oracle使用该语言存储和检索信息
Oracle数据类型
字符、数值、日期时间、LOB
Oracle数据类型---数值型
1、可以存储整数、浮点数和实数
2、最高精度为38位,默认是18位
3、范围-1*10130——9.999…99*10125
Oracle数据类型---日期时间型
日期时间数据类型存储日期和时间值,包括年、月、日,小时、分钟、秒
主要的日期时间类型有: DATE - 存储日期和时间部分,精确到整个的秒
TIMESTAMP - 存储日期、时间和时区信息,秒值精确到小数点后6位
获得当前系统日期:select sysdate from dual;
select systimestamp from dual;
Oracle数据类型 ---大对象
LOB称为“大对象”数据类型,可以存储多大4GB的非结构化信息,例如:声音剪辑和视频文件等
LOB数据类型允许对数据进行高效、随机、分段的访问
Oracle数据类型---伪列
Oracle中伪列就像一个表列,但是它并没有存储在表中
伪列可以从表中查询,但不能插入、更新、删除他们的值
常用的伪列有rownum和rowid
rowid是表中行的存储地址,该地址可以唯一地标识数据库中的一行,可以使用rowid伪列快速地定位表中地一行
rownum是查询返回地结果集中行的序号,可以使用它来限制查询返回的行数
DDL(数据库定义语言)
创建表 create table
修改表结构 alter table 表名 add/modify/drop(增加/修改/删除)列名 类型名(增加/修改时写出)或增加/修改/删除约束
增加字段:ALTER TABLE t_student Add f_address char(50);
修改字段:ALTER TABLE t_student Modify f_address varchar2(50);
删除字段:ALTER TABLE t_student Drop column f_address ;
添加约束: ALTER TABLE t_student Add constraint uk_Sname Unique(Sname);
截断:Truncate table 基本表名
注: 1、截断表是将表中所有记录删除,但保留表结构,并且不写日志
2、trancate table 是DDL语言,delete from table_name 是DML语言
删除表:drop table 基本表名
DROP TABLE t_student;
数据完整性
实体完整性
约束方法:唯一约束、主键约束
域完整性
约束方法:限制数据类型、检查约束、默认值、非空约束
参照完整性(引用完整性)
约束方法:外键约束
自定义完整性
约束方法:规则、存储过程、触发器
完整性总结:数据存放在表中,数据完整性的问题大多是由于设计表引起的,创建表的时候,就应该保证以后数据输入是正确的,错误的数据不允许输入
DML(数据操纵语言)
insert命令的基本语法
insert into 基本表名[(columns_list)] values(values_list)
插入日期类型的值
日期类型默认格式为“DD-MON-RR”
INSERT INTO t_student VALUES(‘10014’, ‘许文强’, ‘m’, ‘25-5月-88’, ‘13202010118',1);
使用TO_DATE函数转换
INSERT INTO t_student(SID,Sname,Ssex,Sbirthday) VALUES (‘10015’,‘冯程程','f',TO_DATE('1990-10-18', 'YYYY-MM-DD'));
插入来自其他表中的记录(相当于复制表结构)
CREATE TABLE t_stutemp AS SELECT * FROM t_student WHERE 1=2;
INSERT INTO t_stutemp SELECT * FROM t_student WHERE Sclass=3;
INSERT INTO t_stutemp(SID,Sname,Stel) SELECT SID,Sname,Stel FROM t_student WHERE Sclass=2;
update命令
UPDATE <table_name> SET column_name = value [, column_name = value,……] [WHERE condition];
delete命令
DELETE [FROM] <table_name> [WHERE condition];
TCL(事务控制语言)
事务是最小的工作单元,作为一个整体进行工作
保证事务的整体成功或失败,称为事务控制
用于事务控制的语句有: COMMIT - 提交并结束事务处理
ROLLBACK - 撤销事务中已完成的工作
SAVEPOINT – 标记事务中可以回滚的点
DCL(数据控制语言)
数据控制语言为用户提供权限控制命令
用于权限控制的命令有:grant 授予权限
revoke 撤销已授予的权限
GRANT SELECT ON t_student TO user1 WITH GRANT OPTION;
REVOKE SELECT, UPDATE ON t_student FROM user1;