Oracle数据库学习(1)——基本操作(表、账号的增删改查)

开篇:SQL语言的分类:

  • DQL(数据查询语言)select

  • DML(数据操作语言)insert、update、delete

  • DDL(数据定义语言)create、alter、drop

  • DCL(数据控制语言)grant、revoke

一、Oracle数据类型、表的创建及对表数据的增删改查:

1、基本数据类型,和mysql整体上比较相似,但是有些地方有细微差别:

——mysql:int(常用数字类型), varchar(20)

——Oracle:number(常用数字类型),varchar2(n)可以容纳两个字符、nvarchar2(n)可以容纳两个汉字

2、表的创建和对表数据的基本增删改查:

2.1、–创建一张表:

CREATE TABLE user2(
	idd NUMBER primary key,
	username VARCHAR2(40),
	pwd VARCHAR2(40)
);

Oracle没有办法像mysql那样使用AUTO_INCREAMENT实现自增,如果想实现自增,需要依靠序列来完成

2.2、–创建序列:

CREATE sequence  us
START WITH 1
INCREMENT by 1;

2.3、现在利用us序列,在向user2表中添加数据时候,实现自增效果:

INSERT INTO user2 (idd, username, pwd) VALUES (us.nextval, '吉桂权', '123');

2.4、查询当前用户所有的序列:

SELECT SEQUENCE_OWNER, SEQUENCE_NAME FROM dba_sequences WHERE SEQUENCE_OWNER = 'JIGUIQUAN';

查询结果为:

image.png

2.5、删除序列:

DROP sequence us;

2.6、查询结果:

SELECT * FROM user2;

2.7、修改数据

UPDATE user2 set PWD = '456' WHERE idd = 4;

2.8、删除数据:

DELETE FROM user2 WHERE idd = 4;

2.9、查看当前账号下有多少张表:

SELECT * FROM user_tables;


二、账号的创建、删除、修改和查询(这类操作必须由超级管理员来完成 system和sys用户)

1、查询所有用户:

SELECT * FROM all_users;

2、创建一个账号:create user 账号名 identified by 初始化密码[account lock/unlock password expired] ;

        ——account lock/unlock:代表账户创建后,是否为锁定状态;

        ——password expired:代表密码是否为一次过期型(第一次登陆可以,但是会要求立即修改密码)

CREATE user zhangsan IDENTIFIED by 123 account LOCK password expire;

此时“zhangsan”这个用户的状态为lock,不可以登陆:

image.png

3、给张三这个用户解锁:

ALTER USER zhangsan account unlock;

现在“zhangsan”这个用户已经被解锁了,登陆时候回理解要求修改口令(密码):

image.png

但是可以看到,即使为“zhangsan”设置了新的口令,依然不可以登陆,原因是:

ORA-01045: user ZHANGSAN lacks CREATE SESSION privilege; logon denied: 

用户张三缺少 CREATE SESSION 的权限(登陆权限);

4、给“zhangsan”授予登陆 oracle 系统的权限:grant 权限名 to 用户

GRANT CREATE SESSION to zhangsan;

至此,用户“zhangsan”就可以登录进oracle系统了:

image.png

5、删除账户:DROP USER 用户名

DROP USER zhangsan;

image.png

报错的意思是,当前处于连接状态的用户,不可以被drop删除,比较人性化,可以使用“disc”断开 zhangsan 的连接,然后就可以正常删除了;

6、查看当前用户的详细信息:

SELECT * from user_users;

image.png

补充:与 disc 断开操作相反的操作为conn连接,conn jiguiquan/456,即可直接连接;

jiguiquan@163.com

文章作者信息...

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐