之前一段时间闲来无事,因而利用此时间对Oracle的语法进行了一次系统的学习,现将学习笔记分享一下,希望对需要之人有所帮助,若有什么错误之处,请不吝赐教。
一 对用户进行操作:
前提:之行该命令的用户必须有DBA权限
给表空间添加新用户:
CREATE USER tom(用户名) IDENTIFIED BY tom(密码)
DEFAULT TABLESPACE inspur(默认表空间)
TEMPORARY TABLESPACE TEMP(临时表空)
给用户指定角色:
ALTER USER tom DEFAULT ROLE "CONNECT";
给用户授权的方法:
1) 直接将权限授予用户
2) 通过角色间接将权限授予用户
Char | 用于描述定长的字符型数据,长度<=2000字节 |
varchar2 | 用于描述变长的字符型数据,长度<=4000字节 |
nchar | 用来存储Unicode字符集的定长字符型数据,长度<=1000字节 |
nvarchar2 | 用来存储Unicode字符集的变长字符型数据,长度<=1000字节 |
number | 用来存储整型或者浮点型数值 |
Date | 用来存储日期数据 |
Long | 用来存储最大长度为2GB的变长字符数据 |
Raw | 用来存储非结构化数据的变长字符数据,长度<=2000字节 |
Long raw | 用来存储非结构化数据的变长字符数据,长度<=2GB |
rowid | 用来存储表中列的物理地址的二进制数据,占用固定的10个字节 |
Blob | 用来存储多达4GB的非结构化的二进制数据 |
Clob | 用来存储多达4GB的字符数据 |
nclob | 用来存储多达4GB的Unicode字符数据 |
Bfile | 用来把非结构化的二进制数据存储在数据库以外的操作系统文件中 |
urowid | 用来存储表示任何类型列地址的二进制数据 |
float | 用来存储浮点数 |
varchar和varchar2的区别:
目前没有本质的区别 但是:
varchar2是oracle提供的独特的数据类型oracle保证在任何版本中该数据类型向上和向下兼容,但不保证varchar,这是因为varchar是标准sql提供的数据类型有可能随着sql标准的变化而改变
表的约束:
PRIMARY KEY约束:这个约束称为主键约束,主键约束列不能为空,而且主键不能重复
FOREIGN KEY约束:这个约束称为外键约束或参照完整性约束,一个外键对应于另一个表中的主键,外键引用另外一个表的主
键值
【在Oracle中当一个表中的一个字段(即做为外键)要引用另外一个表中的字段做为主键时,该字段在本表必须存在。例如:
create table test1(
t1_id varchar2(20) not null primary key,
name varchar(2) ,
constraint t1_id foreign key (t2_id) referenses test2(t2_id)
)
】
NOT NULL :约束的列值不能为空,也就是每一行的这列上都必须有值,可使用SQL语句将某列设置为非空
(例如:ALTER TABLE EMP MODIFY(USERNAME VARCHAR2(20) NOT NULL)
UNIQUE约束: 这个约束说明被约束列的值必须独一无二,即表中这个列值不能重复
CHECK约束:列值必须满足CHECK约束,利用CHECK约束可以强制这个列值必须满足某些条件,这个值是PL/SQL表达式,如果表达式返回结果为真,就允许这个值存储
(例如
CREATE TABLE DEMO_TAB5(
ID VARCHAR2(2),
SAL NUMBER(10,2) CHECK (SAL>0)
)
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。