Oracle数据库--DCT DTL DDL操作

连接命令:
[conn]ect  username/password @本地net服务名


[disc]onnect:断开
exit : 退出:( 断开与用户的连接,并且退出sql*plus)


文件编辑命令
show user


select * from tab:查看用户下存在的表


[ed]it  绝对路径 文件名.sql


@  绝对路径 文件名.sql


截屏信息
spool 绝对路径 文件名.sql


spool off


chmod 777  sqldeveloper.sh


用户管理:
sys:最高权力用户


system:它不能创建数据库


一般用户


conn username /password@本地net服务名:一般




conn / as sysdba:




 创建用户:
create user  用户名 identified by  密码;




权限:
对象权限:表中的数据进行操作的
insert
update
delete
select


grant all on 表名 to 用户;


系统权限:数据库对象进行控制的
 create session:
 create table
 create user
create view
create procedure
....


授予权限


grant  权限 to 用户 with admin option/with grant option;


收回权限


revoke  权限  from 用户




scott --(u1,u2)
scott给u1 对象权限,系统权限(传递)
u1给 u2权限(对象,系统)
收回u1的对象和系统权限,
u2的对象和系统权限是否存在?


u2的系统权限存在,u2对象权限收回;


角色(role):简化权限的管理,是一组权限的集合


1、预定义角色
connect角色
create session


resource角色
对象权限


一些系统权限
dba角色


所有权限
dba>resource>connect
 grant  角色  to  用户;
revoke 角色 from 用户;


2、自定义
create role 角色名 not identified;
create role 角色名 idenfitied by 密码;


grant 权限 to 角色名




删除用户:drop  user 用户名


修改用户: 
alter user 用户名 identified by 密码


alter user 用户名 account lock;--把用户锁住
alter user 用户名 account unlock;---把用户解锁


创建表


查看表结构: desc 表名


数据类型:
1、字符型
varchar2(n):可变长度的
char(n):固定长度的
2、数值型
  number(p,s)
s=0:整数
number(p,0)=number(p):
s>0:精度是p,其中小数点的右边保留S位。
number(4,2);
s<0: 精度是p+|s|,其中小数点的左边数s位
(4,-2)
3、日期型
date


sysdate:查看系统时间


4、lob类型:大对象类型 4G
clob: 大型文本数据
blob:以二进制存储
bfile:


创建表
create table (字段名 数据类型 [default 默认值],
                      字段名 数据类型 [default 默认值,.....])


创建一个person_xxx(pid 身份证号,name 姓名,sex 性别, birthday 生日)


修改表
为表添加一个字段
alter  table  表名 add (字段名 数据类型 [default 默认值],
                      字段名 数据类型 [default 默认值,.....]);
为表修改一个字段(数据类型以及默认值)
alter table 表名 modify (字段名 数据类型  [default 默认值],...);
为表修改字段名
 alter table 表名 rename column  旧的字段名 to 新的字段名


为表重命名
rename  旧的表名 to 新的表名


删除表


drop table 表名;


约束:(constraint)
1、主键约束:(2+3)
    primary key
create table person(pid varchar2(18) primary key,
name varchar2(20),age number(3),
sex varchar2(2) default '女',birthday date)


create table person1(pid varchar2(18),
name varchar2(20),age number(3),
sex varchar2(2) default '女',birthday date,
constraint   person_pid_pk primary key(pid));


写法:
1、 create table (字段名 数据类型 [default 默认值] primary key,
                      字段名 数据类型 [default 默认值,.....])
2、 create table (字段名 数据类型 [default 默认值] ,
                      字段名 数据类型 [default 默认值,.....],
                     constraint  约束名 primary key(字段名))




2、唯一约束:unique 


create table person(pid varchar2(18) primary key,
name varchar2(20) unique,age number(3),
sex varchar2(2) default '女',birthday date)


create table person1(pid varchar2(18),
name varchar2(20),age number(3),
sex varchar2(2) default '女',birthday date,
constraint   person_pid_pk primary key(pid),
constraint  person_name_uq unique(name));


3、非空约束:not null


1、 create table (字段名 数据类型 [default 默认值] not null,
                      字段名 数据类型 [default 默认值,.....])




4、检查约束:check
create table person(pid varchar2(18) primary key,
name varchar2(20) unique,age number(3) check(age<=120),
sex varchar2(2) default '女',birthday date)


create table person1(pid varchar2(18),
name varchar2(20),age number(3),
sex varchar2(2) default '女',birthday date,
constraint   person_pid_pk primary key(pid),
constraint  person_name_uq unique(name),
constraint person_age_ck check(age<=120));




5、外键约束:foreign key
涉及2张表(主表,子表)




create table book(pid varchar2(18) references person(pid),
bid number(4),
bname varchar2(20))


create table book1(pid varchar2(18),
bid number(4),
bname varchar2(20),
constraint  person_book_pid_fy foreign key(pid) references person(pid));
写法:
1、create table (字段名 数据类型 [default 默认值] references 主表(字段名),
                      字段名 数据类型 [default 默认值,.....])
2、 create table (字段名 数据类型 [default 默认值] ,
                      字段名 数据类型 [default 默认值,.....],
                     constraint  约束名 foreign key(子表的字段名) references 主表(字段名))































































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值