1.一个用户可以有多个角色
2、一个用户可以有多个权限
3、一个权限也可以给多个用户
Oracle 系统默认用户
system:是数据库内置的一个普通管理员
sys:用数据库的超级用户,必须以 sysdba 身份登录
scott:简单的样例帐户
sysman:企业管理器帐户
一
创建用户
语句:create user e318 identified by 123456;
赋予e318用户connect,resource角色
语句:grant connect,resource to e318;
收回用户e318用户的角色
语句:revoke connect from e318;
二
创建角色(但是这个角色没有任何的权限,你需要给它赋权限)
语句:create role e318_r1;
赋予角色权限
语句:grant create session,create table to e318_r1;
这个的是创建了一个会话 并且和一个表
收回角色权限
语句:revoke create table from e318_r1;
三
将自己创建的角色赋给用户
语句:grant e318_r1 to e318;
删除用户,角色
删除用户
语句:drop user e318;
删除角色
语句:drop role e318_r1;
锁定用户
alter user e318 account lock ;
解锁用户
语句:alter user e318 account unlock;
数据表的知识
1、实体完整性:主键
特点:唯一,非空
2、参照完整性或引用完整性:外键
3、域完整性
3.1非空字段
3.2唯一字段 如:用户名,手机号,邮箱
3.3检查 如:年龄>=18 ,性别为男还是女
4、用户定义完整性
5、完整性约束条件
非空约束(not null)
唯一约束(unique)
主键约束(primary key)
外键约束(foreign key)
条件约束(check)
建表中常用数据类型:
1、文本( char(n)、nchar(n)、varchar2(n)、nvarchar2(n)、long ) 如:姓名,手机号,订单编号
2、数字():年龄,价格
3、日期和时间( Date )
create table teacher(
教工号 文本 主键 ,
姓名 文本,
性别 数字,
职称 文本
);
create table coureses(
课程号 文本 主键,
课名 文本,
学时 数字,
学分 数字
);
一个字符会有多个字节 一个字节等于8位
ascii字符位一个字节
一个中文字符可能会有两个或多个字节
Oracle数据库字段数据类型
数据: char(n)、nchar(n)、varchar2(n)、nvarchar2(n)、long
char:使**用数据库字符集来存储数据,长度固定,未达到指定长度,自动补足空格;**采用char或byte为计
量单位,最大存储长度为2000个字节;不指定最大长度,默认长度为1
nchar:使用国家字符集来存储数据,长度固定,未达到指定长度,自动补足空格;采用char或byte为计量
单位,最大存储长度为2000个字节;不指定最大长度,默认长度为1
varchar2:使用数据库字符集存储数据,长度可变,未达到指定长度,不自动补足空格;采用char为计量
单位,最大存储长度为4000个字节;必须指定最大长度,长度最小值为1.
nvarchar2:使用国家字符集来存储数据,长度可变,未达到指定长度,不自动补足空格;采用char为计量
单位,最大存储长度为4000个字节;必须指定最大长度,长度最小值为1.
long数据类型用来存储较长文本(如:文章、小说等),最大长度限制是2GB,long类型主要用于不需要
作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型.
通过如下查询语句可以查询char与nchar所使用的字符集
注:oracle 中数字没有int 用的是number
建表1:
create table t_class(
class_no char(5) primary key,
class_name varchar(100)
);
comment on table t_class is '学生表'
comment on column xiaorui.t_class.class_no is '班级编号' 表示:数据库下的表t_class的字段class_no的注释
查看表结构(describe的缩写):
语句:desc 表名 ;
删除表:
语句:drop table 表名;
建表2:
create table t_student(
stu_no char(9) primary key,
stu_name varchar(60),
sex number(1),
class_no char(5)
);
当表创建后,可以 通过sql语句或命令进行修改
添加字段:
alter table 表名 add 要添加的字段名 添加的字段类型 unique; unique表示约束意思表唯一可加可不加
如:alter table t_student add moblie char(11);
删除字段:
语句:alter table 表名 drop column 要删列的名字;
如:alter table t_student drop column moblie;
修改字段:
语句:alter table 表名 modify 要修改的字段 类型;
如:alter table t_student modify stu_name varchar(200); 这个把上表字段的类型修改为200字符
表字段约束的添加与删除
给字段添加唯一约束:
语句:alter table 表名 add constraint 约束名 unqiue(要添加列的字段名);
alter table t_student add constraint US_mobile unqiue(stu_no); 表示给stu_no添加了一个唯一的限制条件 并且给限制取了一个名字 叫 US_mobile
给表字段添加检查约束:
语句:alter table 表名 add constraint 约束名 约束条件;
如:alter table t_student add constraint C_sex check (sex=1 or sex=2); 表示给number 一个选项:1表示男2表示女
删除表字段的约束:
语句:alter table 表名 drop constraint 约束条件的名字;
如:alterl table t_student drop constraint C_sex ; 表示删除性别的约束
添加外键约束:
语句:alter table 表名 add constraint 外键名 foreign key (另外一个表参照字段)
references 参照表名(参照字段)
如:alter table t_student add constraint CF_class_no foreign key(class_no)
references t_class(class_no);表示创建一个外键名叫 CF_class_no 你在t_student中创建数据的时候要参照现实 所以要更加另一个表创建