oracle从入门到精通(2)------数据类型,约束

时间:2022-09-21 11:10:51

oracle从入门到精通(2)

-----------------------------------
1、数据类型
2、约束
-----------------------------------

授权  用户houston可以访问  austin下面的inf表

-------------------------------------------------------

如果是系统管理员,可以授权一个用户对另一个用户下的表进行相关操作



1、先切换到sysdba的权限

conn  /as sysdba

2、执行下列授权语句
grant select on austin.inf to houston;
grant insert on austin.inf to houston;
grant update on austin.inf to houston;
grant delete on austin.inf to houston;

grant all on austin.inf to houston;
授权houston可以对austin用户的inf表进行所有操作

撤销权限
reovke all on 用户.表  from  其他用户;

-------------------------------------------------------
如果是当前用户下面的表,也可以授权给某一个用户来访问

grant all on 表名 to 用户名;
撤销其他用户对表的访问权限
revoke all on 表名  from 用户名;

---------------------------------------------------------------------------


查看当前用户删除过的表
show recyclebin;

恢复删除的表
flashback  table  表名  to before drop;

不进回收站,直接删除表
drop table 表名 purge;

清空屏幕

clea scre


Oracle中的数据类型:(5种类型)

1、数值类型 (int,float,double,number) ####   number

2、字符类型 (varchar,char,nvarchar,nchar,varchar2,nvarchar2)
3、日期类型 (date)
4、大对象类型 (clob,blob,bfile)
5、特殊类型 (rownum,rowid)

------------------------------------------------
数据类型:
在oracle中,数值是number类型,由于所有的数据库必须要遵循一个行业规范,所有有数据必须有int,float,char,varchar

在oracle推荐用number来表示数值类型的数据

age number:  表示,声明一个字段age,数据类型为数值类型,默认长度是38位
age number(11),表示,长度为11位
age number(12,3)  表示,12位有效长度,小数点之后,保留3位

varchar 与  char的区别

oracle的约束,使用正则表达式来进行验证:

tel varchar2(20) check(regexp_like("tel","^1(3|5|8)[0-9]{9}$|^[0-9]{3}-[0-9]{8}$|^[0-9]{4}-[0-9]{7,8}$"))

正则表达式的规则:

^1(3|5|8)[0-9]{9}$          手机

^[0-9]{3}-[0-9]{8}$         座机  027-12345678

^[0-9]{4}-[0-9]{7,8}$        0710-1234567        0755-12345678


^1(3|5|8)[0-9]{9}$|^[0-9]{3}-[0-9]{8}$|^[0-9]{4}-[0-9]{7,8}$

[a-z]{9} --------9个任意的小写字母
[a-z|A-Z]{9} ---------9个不区分大小写的字母