Oracle 建表空间以及curd的语法

1.创建表空间

/*创建表空间*/

create tablespace   root_tablespace

datafile 'e:\data\root.dbf'

size 3m

autoextend on next 1m

maxsize 10m

创建用户,指明表空间

创建用户同时设置默认表空间

create user 用户名 identified by 密码

default tablespace 表空间名

如下:

/*创建用户,指明表空间*/

create user root  IDENTIFIED by   root

default tablespace root_tablespace

赋予用户权限

resource, connect, dba

connect 连接数据库的权限,

resource创建对象的权限如create table ,create index ,create sequence 等,

DBA无限的访问权限

查看用户角色权限

select * from user_role_privs;

查看用户表权限

select * from user_tab_privs;

grant 权限1,权限2 to 用户名;

grant select on 表名 to 用户名;

grant insert on 表名 to 用户名;

grant read,write on directory dpdata1 to scott;

grant  dba to scott;

/*给新建的root账号赋予权限*/

grant dba to root

给用户无限表空间权限

grant unlimited tablespace to 用户名;

撤销权限

revoke 权限1,权限2 from 用户名;

 

给用户指定表空间

用户存在的情况下指定默认表空间

alter user 用户名 default tablespace 表空间名;

查询用户默认的表空间

select username,default_tablespace from user_users;

删除表空间

drop tablespace 表空间名 including contents;

  • oracle的数据类型

--mysql与oracle/sqlserver列类型的区别

报错:将截断二进制字符串(列的长度不够)

 

varchar2(6)   6个字母 3个汉字

nvarchar2(6)  6个字母 6个汉字

varchar2与char的区别

varchar2(6) abc ==>占了3个   

char(6)   abc==>占了6个  

 

admin表  user    pwd char(10)  admin    

            mysql                             oracle 

整数     int/decimal(5,2)      number(10,0)/number/number(10)     

address  varchar(50)         varchar2(50)/ nvarchar2(50)/nchar(50)/char(50)

增删改查语法

插入日期2种方式

insert into emp values(7936,'kevin','clerk',7934,'11-6月-2014',4000,0,10)

insert into emp values(7937,'hanmeimei','clerk',7934,to_date('1980-9-11', 'yyyy-mm-dd'),4000,0,1)

删除    与mysql相同

delete from emp where EMPNO=1

修改  与mysql相同

update emp  set ename='周星驰' where EMPNO=9527

查询    与mysql相同

SELECT  * from  emp;

创建序列实现自增长

create sequence 序列名

increment by 1 -- 每次加几个                                                           

start with 1  -- 从1开始计数

minvalue 0  --最小值(不加默认为1,无法从0开始计数)

nomaxvalue  --无最大值

nocycle    --不循环

nocache; --设置为无缓存

如下:

create sequence privileges_seq
start with 1
increment by 1
maxvalue 1000
nocycle
nocache;

使用序列的语法 :序列名.nextval

INSERT INTO "privileges" VALUES (privileges_seq.nextval, '干掉管理员', 'function/deleteadmin.jsp', '我是超级管理员,我要干掉所有人');

/*1. 添加唯一约束*/

语法:

alter table 表名

 add  constraint 约束名称  unique(列名);

如下:

alter table "privileges"
add  constraint uq_gradename  unique("name");

/*添加约束*/

/*check约束*/

alter table student

add constraint ck_age check(age between 0 and 150)

/*默认约束*/

 alter table student modify address default '光谷';

 alter table student modify borndate default sysdate;--默认值为当前时间

/*外键约束*/

alter table 外键表名

add constraint    fk_gradeid    foreign key  (外键表字段)    references   主键表名   (主键表字段);

alter table "userrole"
add constraint "userrole_ibfk_1"  foreign key("user_id") references "users"("id");

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值