oracle的几种账户
Oracle数据库为关系型数据库,它有一下几种账户,每个账户对应的操作权限也是不一样的。
- Sysdba : 数据库管理员,全线包括打开数据库服务,
- Sysyoper : 数据库操作员
- Normol : 普通用户,只有查询某些表的数据
如何连接oracle的账户
Conn 用户名/密码as 连接身份
eg :Conn lucy/1234 as sysdba 2、conn HR/root as sysdba
Oracle的创建用、授权、更改、撤销、删除用户操作
1、创建用户并设置密码:create user 用户名 identified by “密码”;
eg: Create user lucy identified by “1234”;
2、账户解锁与锁定:alter user 账户 account unlock(或lock);
举例:alter user Lucy account unlock;
3、授权:Grant 权限 to 用户
eg:Grant connect,resource,dba to lucy;
4、更改密码:Alter user 用户名 identified by “新密码”;
eg: alter user lucy identified by “5678”
5、撤销权限:Revoke 权限 from 用户名
eg:Revoke connect,resource,dba from Lucy;
6、创建角色:create role 角色的名字
eg:create role myrole
7、给角色授权:Grant 权限 to 角色名
eg:Grant create table to myrole
8、删除角色:drop role 角色名
eg:drop role myrole
9、删除用户:Drop user 用户名
eg:drop user Lucy
10、删除带有表的用户:Drop user 用户名 cascade;
Oracle角色的权限
connect角色,主要应用在临时用户,可以与服务器建立连接会话
Resource角色,可以创建他们自己的表、序列,过程,触发器,索引
Dba角色拥有所有权限,用户system拥有dba角色。
oracle中主要的数值类型
Oracle数据库的核心是表,表中的列使用到的常见数据类型如下
类型 含义
- Char(length) 储存固定类型的字符串,参数length指定了长度,如果储存的字符串长度小于length,用空格填充,默认长度是1,最长不超过2000;
- varchar(length) 存储固定长度对的字符串
- Varchar2(length) 储存可变长度的字符串,length指定了该字符串的最大长度,默认长度是1,最长不超过4000;
- NUMBER(p,s) 既可储存浮点数,又可以储存整数,p表示数字的最大位数,如果是小数包括整数部分和小数部分和小数点,p默认是38位,s是指小数位数。
- Date 储存日期和时间,储存纪元、位年、月、日、时、分、秒,储存时间从公元前4712年1月1日到公元后4712年12月31日。
Timestamp 不但存储日期的年月日,时分秒,以及秒的后6位,同时包含时区。 - Clob 存储大的文本,比如存储结构化的XML文档
- BLOB 存储二进制对象,如图形视频,声音等
SQL语句分类
SQL语句被称为结构化查询语句(structured query language),SQL是操作和检索关系型数据库的标准化语言,在oracle中SQL语句不区分大小写,包括登录用户名。密码都是不区分大小写,但是规定关键词大写。
select 查询语句
DML语句(数据库操作语句)insert、update、delete、merger
DDL语句(数据库定义语句)create、alter、drop、truncate
DCL语句(数据控制语句)grant、revoke
DQL语句(数据库查询语言)order by、group by
事物语句 Commit、rollback、savepoint
约束
Not null非空约束:强制字段始终包含值,不向字段添加值就无法插入新纪录或者无法更新记录。
Primary key:主键约束,主键必须包含唯一的值,主键不能包含null的值,而且每个表只能有一个主键,如果使用alter table语句修改主键,必须把主键列声明为不包含null值。(不懂)
Default默认约束:如果没有规定其他的值,那么将会默认值添加到所有新纪录。
什么是空值
空值是无效的,未指定的,未知的,或不可预知的,空值不是空格或者0
oracle中判空 用is关键字:
select * from emp where comm = null;(错误)
select * from emp where comm is null;(正确)
注意SQL中的null:
1.包含null的表达式都为null
2.空值永远不等于空值
3.如果集合中有null不能使用not in但可以使用in
4.null的排序,orale中null值最大
5. --null 值,组函数会自动滤空
滤空函数nvl(a,b):如果 a 为 null 则返回 b
SQL语句简单知识点
1 SQL语句在查询中可以对数值类型进行+ - * /
2 sql语句取别名可以用as 也可以不用as,可以用""也可以不用
3 在算术表达式中,出现null,得到的数据就是null,null不等于0.0
4 包括null的任何算术运算表达式都等于空
5 用||可以把多列连接在一起,在连接过程中字符型数据必须’ ’
6 包括null值的连表达式等于与控制符串连接,也就是原来的数据串
7 任何类型都支持null
8 对于日期型的数据可以使用±运算符
简单的SQL语句
– 字符型的数据对大小写是敏感的
SELECT * FROM Employee WHERE name = ‘smith’;
SELECT * FROM Employee WHERE name = ‘Smith’;
–对于日期型的数据格式是敏感的,使用日期型数据的格式是(DD–MM-YYYY 年月日)
SELECT * FROM Employee WHERE hiredate = ’ 20-2月-1980’;编码中文的必须在月份上加上月,如果是英文版的不用加
– 改变当前会话的日期格式,
alter session set nis_date_format = ‘YYYY-MM-DD HH:MI:SS’
SELECT * FROM Employee WHERE hiredate = ’ 1980-2-12’;
–LIKE用于字符型数据类型的查询,%表示0个或多个任意字符
_表示一个字符
–对于null值用is null
运算符
-
比较运算符
=, >=, <, <=, <>(!=) -
其他运算符
BETWEEN AND 在两个值之间(包含边界)
IN(SET) 等于值列表中的一个
LIKE 模糊查询
IS NULL 空值 -
逻辑运算符
AND 逻辑并
OR 逻辑或
NOT 逻辑否
Where语句是从右到左执行的:where condition1 and condition2
4. 其他运算符
1.Between and 含义:在两个值之间,包含边界
2.小值在前大值在后
2.in在集合中In(set)等于值列表中的一个|not in
Is null 空值
–in 在集合中
–null如果集合中含有null不能使用 not in但可以使用in(原因是什么)
3–模糊查询like
‘%’表示0个或者多个任意字符
_代表一个字符
查询名字一s打头
Select*
From emp
Where enamel like ‘s%’
查询名字含下划线的,使用转义符\进行查询like ‘%%’
Select*
From emp
Where enamel like‘%_%’escape‘\’
4–ORDER BY
ASC(ascend):升序
DESC(descend):降序
ORDER BY后面+列,表达式,别名,序号
Order by (asc)作用于后面所有的列,先按照第一个列排序,再后
Oracle中空值最大的解决方法
可以用滤空函数解决 或者 null last:
select * from emp order by comm desc nulls last