ORCL设计总结

​文献时间 2019 年 4 月18 日
首先重点学习的是查询,各种各样的查询。
1、SELECT … FROM…的查询
例子:查询全部表内的内容:SEECT,*这个符号是全部的意思,FROM 里面的但是是代表表的意思,意思就是查询“sc”表的全部数据。
在这里插入图片描述
查询选择特定的列,用SELECT指定需要查询的列,意思是:查询“sc”表中的“score”里面的数据,这些还是基础所以不难理解。
在这里插入图片描述
符号的运算:乘除的优先级高于加减,同一优先级运算符从左向右执行,括号内的运算先执行。
这是一个简单的运算,意思是在“sc”表里面查询“score”列里面的数据并且加上300,下图写了对比:加减乘除都是使用同样的方法,和数学一样是有优先级的,先乘除后加减。
在这里插入图片描述
定义空值:空值是无效的,未指定的,未知的或不可预知的值,空值不是空格或者0。
在这里插入图片描述
上面是基础的一些查询,下面说一下创建新用户以及赋权限

创建一个新的用户并赋予权限 (控制用户权限)

1.创建一个新的用户并赋予权限
使用system用户进行创建角色并对其进行赋予权限。

创建代码:–在下方创建了一个名为 TESTROLE 的用户并分配表空间。

CREATE ROLE TESTROLE;
CREATE SESSION 创建会话,
CREATE TABLE 创建表,
CREATE VIEW 创建视图

赋予TESTROLE权限代码:
GRANT CREATE SESSION,CREATE TABLE,CREATE VIEW TO TESTROLE;

IDENTIFIED BY 指定密码 *

现在给TESTROLE 用户创建表空间,再次使用system用户分配表空间给TESTROLE 用户,这样 TESTROLE 用户就可以创建表了。
分配表空间:ALTER USER TESTROLE QUOTA UNLIMITED ON USERS;
创建用户的时候,如果没有给新建的用户 CREATE SESSION 权限的时候,是登录不上数据库的呢!(错误如下)
它会报一个错 ERROR: ORA-01045: user TEST lacks CREATE SESSION pricilege: logon denied
2. 使用用户创建表并初始化数据
在初始化之前,我创建了一个序列来作为我主键的ID
再创建序列之前,我的TESTROLE 用户并没有创建序列的权限,因为赋予它权限的用户里没有创建序列的权限所以,在此之前我 GRANT CREATE SEQUENCE TO TESTROLE ,注意我们每一次都得使用system用户来赋予权限的,因为它是权限最大的用户,相当于是管理者所以我们每次赋权限给其他用户时都得在system用户下操作。
现在来试着创建一个表创建一个表
–用户表
CREATE TABLE YH(
NUM NUMBER(3) PRIMARY KEY,
NAME NVARCHAR2(5) NOT NULL,
SEX NVARCHAR2(3) NOT NULL,
JE NUMBER(10,3),
TJR NUMBER(4)
);
–权限表
CREATE TABLE QX(
NUM NUMBER(5) PRIMARY KEY,
NAME NVARCHAR2(10) NOT NULL,
NUM NUMBER(5)
);
表已创建完毕,那现在就要开始给表初始化数据了!

/初始化用户表的数据/
INSERT INTO YH VALUES (Amp.Net,‘小明’,‘男’,520,NULL);
INSERT INTO YH VALUES (Amp.Net,‘大明’,‘男’,1100,1);
INSERT INTO YH VALUES (Amp.Net,‘朱株’,‘女’,2350,2);
INSERT INTO YH VALUES (Amp.Net,‘凌琳’,‘女’,4305,3);
INSERT INTO YH VALUES (Amp.Net,‘啊哦’,‘男’,2300,4);
INSERT INTO YH VALUES (Amp.Net,‘亿欧’,‘男’,8254,5);
INSERT INTO YH VALUES (Amp.Net,‘咿呀咿呀’,‘男’,87881,5);
COMMIT;
在这里的插入数据!使用了上面已经定义了的 Amp序列来作为我用户表的主键ID,插入数据完成后记得COMMIT(提交)一下 这步提交很重要 没提交就代表没录入数据,所以一定要提交!!!!

/初始化权限表/
INSERT INTO QX VALUES (Amp.Net,‘权限1’,3);
INSERT INTO QX VALUES (Amp.Net,‘权限2’,2);
INSERT INTO QX VALUES (Amp.Net,‘权限3’,1);
COMMIT;
3.查询
SELECT * FROM YH; --最普通最初级的查询语句
使用 where 过滤数据 SELECT * FROM YH WHERE NUM > 2;
意思就是说查询出用户表里的数据用WHERE筛选出NUM大于二的数据。

猜你喜欢

转载自blog.csdn.net/weixin_44552839/article/details/89364121
今日推荐