摘要:跨表插入,注释,二进制,伪列,日期获取,定义建表,简单增删改查,注释,事物,权限授夺
- 单行注释-- 如: - - xxx
- 多行注释/**/ 如:
/*xxx*/
- 获取当前日期
Select sysdate from dual;
Select systimestamp from dual;
主要的日期时间类型有:
DATE - 存储日期和时间部分,精确到整个的秒
TIMESTAMP - 存储日期、时间和时区信息,秒值精确到
小数点后6位 - 二进制 raw
- RAW 数据类型用于存储二进制数据,最多能存储 2000 字节
LONG RAW 数据类型用于存储可变长度的二进制数据,最多能存储 2 GB - LOB( lob) 称为“大对象”数据类型,可以存储多达 4GB 的非结构化信息,例如声音剪辑和视频文件等,允许对数据进行高效、随机、分段的访问。
- 伪列:
1.常用的伪列有 rowid 和rowunm
2.像一个表列,但是它并没有存储在表中
3.可以从表中查询,但不能插入、更新和删除它们的值 - rowid
ROWID 是表中行的存储地址,该地址可以唯一地标识数据库中
的一行,可以使用 ROWID 伪列快速地定位表中的一行 - rowunm
ROWNUM 是查询返回的结果集中行的序号,可以使用它来限
制查询返回的行数
数据定义语言
- 创建表
创建名为t_student的表
列名1,类型1
列名2,类型2
create table t_student
(
SID char(5) not null primary key, --学号
Sname varchar2(10) not null, --姓名
Ssex char(1) not null, --性别
Sbirthday date null, --出生日期
Stel varchar2(13) null, --联系电话
Sclass int null --班级
)
- 修改表结构:
语法:
alter table 基本表名 ADD/MODIFY/DROP (增加/修改/删除) 列名 类型名(增加/修改时写出)或增加/修改/删除约束
1.增加字段:ALTER TABLE t_student Add f_address char(50);
2.修改字段:ALTER TABLE t_student Modify f_address varchar2(50);
3.重命名字段:ALTER TABLE t_student rename column f_address to f_add;
4.删除字段:ALTER TABLE t_student Drop column f_address ;
5.添加约束:ALTER TABLE t_student Add constraint uk_Sname Unique(Sname); - 截断
语法: truncate table t_student;
1、截断表是将表中所有记录删除,但保留表结构,并且不写日志
2、truncate table 是DDL语言,delete from tabl_name 是DML - 删除表:
DROP TABLE 基本表名
eg:DROP TABLE t_student; - 注释
comment on***** is ***:为表或字段添加注释
COMMENT ON table t_student IS ‘用于存储学生信息 ’; --表添加注释
COMMENT ON column t_student .sname IS ‘姓名 ’; --字段添加注释 - 查询注释
select comments from - 插入 insert
语法:INSERT INTO 基本表名 VALUES( ,,,)
(跨表插入)表中每个字段都插入
eg:insert into tt values(‘10014’,‘许文强’,‘m’, ‘25-5月-88’,‘13202010118’,1);
(跨表插入)表中指定字段插入
eg:insert into tt(SID,Sname,Ssex,Sbirthday) values (‘10015’,‘冯程程’,‘f’,TO_DATE(‘1990-10-18’, ‘YYYY-MM-DD’)); - create table t_stutemp as select * from tt where 1=2;
创建一个字段t_stutemp 与tt表结构一样,但是无记录 - 跨表插入
两个表结构相同时,插入一个行。
insert into t_stutemp select * from tt where Sclass=1;
不全插入,插入部分字段。
insert into t_stutemp(sid,sname,stel,ssex) select (sid,sname,stel,ssex) from tt where sclass=1; - DML – update更新,修改命令
更新tt表里 字段名sname=许文强 的一行中的字段sbirthday的内容为08-1月-88
update tt set sbirthday = ‘08-1月-88’ where sname =‘许文强’; - DML – delete删除命令
delete命令的基本语法: delete[from] <table_name>[where condition];
例:删除表t_student 中学号为10014的学生信息
Delete t_student where SID = ‘10014’;
数据控制语言
- 用于权限控制的命令有:
grant授予权限
eg:grant select on t_student to user1 with grant option;
注:若带有with grant option 可将权限授予第三方,若不带则无法将权限授予第三方
revoke撤销已授予的权限
撤销user1用户中表t_student 的select权限
eg:revoke select , update on t_student from user1;
事务控制语言
- commit- 提交并结束事务处理
- rollback- 撤销事务中已完成的工作
- savepoint– 标记事务中可以回滚的点
- 事务的四大特性
事务应该具有4个属性:原子性、一致性、隔离性、持续性。这四个属性通常称为ACID特性。 - 原子性(atomicity):一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
- 一致性(consistency) :事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
- 隔离性(isolation isolation):一个事务的执行不能被其他事务干扰。即 一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
- 持久性(durability) :持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
下一步:
链接: Oracle一.