ORACLE语句基础

Oracle数据库的主要特点

1.支持多用户、大量的事务处理
2.数据库安全性和完整性控制
3.支持分布式数据处理
4.可移植性
oracle数据库基于客户端/服务器技术(TCP/IP协议)
客户端发送请求到服务器
服务器响应请求发回客户端

会话

会话是用户与Oracle服务器的单个连接
当用户与服务器建立连接时创建会话
当用户与服务器断开连接时关闭会话

连接跟会话跟事务

先创建连接,连接上可以创建0个或多个会话
会话里可以创建0个或多个事务

sql*plus

sql*plus 是Oracle允许输入和执行SQL语句和PLSQL块的交互工具,能运行脚本语言,生成报表,启动和停止Oracle,执行SQL

SQL分类

DDL:create alter drop truncate
DCL:grant revoke
DML:select insert delete update
TCL:commit rollback savepoint

用户

CREATE USER user
IDENTIFIED BY password;

ALTER USER user IDENTIFIED BY newpassword;

DROP USER user ;
例如:
CREATE USER kiki
IDENTIFIER BY a123456

权限

GRANT给予
GRANT CONNECT TO user; CONNECT角色允许用户连接至数据库,并创建数据库对象
GRANT RESOURCE TO user; RESOURCE角色允许用户使用数据库的存储空间
REVOKE回收
REVOKE CONNECT TO user;
REVOKE SELECT ON XXXXXX FROM user; 回收查询某个表的权限

建表 与mysql相同 尺寸必须指定
CREATE TABLE table
(
col1 type1() primary key,
col2 type2(),

)

备注

COMMENT ON TABLE table IS ‘xxxx’;
COMMENT ON COLUMN table.col IS ‘xxxx’;
查看备注
可以
select all_col_comments where Table_Name=’xx’;
select table_name from user_tables;
select table_name from all_tables;

数据类型

字符:
固定长度的字符串,使用char,1-2000个字节
可变长度字符串用varchar,1-4000个字节
LONG存储可变长度字符数据,最大可达2gb

数值:
可以存储整数、浮点数和实数,最高精度为38位
number(p,s)
p代表精度,s代表小数点的位数

日期时间:
DATE:存储日期和时间部分,精确到秒
TIMESTAMP:存储日期、时间和时区信息,精确到小数点后6位

RAW/LONG RAW:
存储二进制数据
RAW最多存储2000字节
LONG RAW 最多存储2gb

LOB:
存储大对象数据类型,最多4gb,例如一些非结构化的如音频视频等文件
LOB:数据类型允许对数据进行高效、随机、分段的访问
CLOB:能存储大量字符数据
BLOB:存储较大的二进制对象,如图形、视频和声音文件
BFILE:讲二进制数据存储在数据库外部操作系统文件中

修改

但凡修改都会有alter
改表名
ALTER TABLE table RENAME TO table1;
改字段名
ALTER TABLE table1 RENAME COLUMN col TO col1;
改字段类型
ALTER TABLE table1 MODIFY (col1 newtype);
添加字段
ALTER TABLE table1 ADD COLUMN (col2 type2());
删除字段
ALTER TABLE table1 DROP COLUMN col2;
删除表
DROP TABLE table1;
清空表
TRUNCATE TABLE table1;

删除表以后数据和结构都被删除
正在运行的事务被提交
相关索引被删除
drop table语句不能回滚
truncate table语句不能回滚
也可以用delete删除数据

约束

表级强制规定
not null
unique
primary key
foreign key
default
建表的同时或建表之后创建约束
列级: col COLUMN CONSTRAINT con_name con_type;
表级(在左右列定义完以后): CONSTRAINT con_name con_type (col_name);
外键:
例如constraint emp_dept_fk foreign key (departmant_id) references departments (department_id);
表外添加约束:
ALTER TABLE table ADD CONSTRAINT con_name con_type (col_name);
删除约束:
LATER TABLE table DROP CONSTRAINT con_name;

序列

一般用于提供主键,不会重复
CREATE SEQUENCE seq_name
INCREMENT BY xx
START WITH xx
MAXVALUE xx
NOCACHE
NOCYCLE;

删除序列
DROP SEQUENCE seq_name;

DML语法

跟MYSQL差不多
插入多条数据:
insert all into table_name()
value()
select * from dual;

插入日期(同mysql):
例如:insert into t_user821 (nage,dregdate) values(30,to_date(‘2008-12-29’,’yyyy-mm-dd’) );

事务

事务由一个或多个DML语句组成
或者1个DDL语句
或者1个DCL语句

事务是最小的工作单元
COMMIT 提交并结束事务
ROLLBACK 撤销事务中已完成的工作

事务只有在
COMMIT或ROLLBACK后
或DDL或DCL语句后
或者会话正常结束后
或者系统异常终了后
才能结束

自动提交在以下情况执行:
DDL或DCL语句
不使用COMMIT或ROLLBACK正常结束会话
会话或系统异常会自动回滚

使用COMMIT和ROLLBACK语句可以:
1.确保数据完整性
2.数据改变被提交之前预览
3.将逻辑上的相关操作分组

别名

与mysql大致相同
但在oracle中给表起别名不能用as会报错,其余一致

连接符

||可以把不同字段连一起
例如:select name||id as “合成” from student;

in

例如:
select * from student where id in(10,20,30);

rowid

行数据在物理文件中的索引地址

rownum

对查询出来的结果中每一行进行一个编号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值