创建用户及赋予权限和撤回权限
创建用户
create user 用户名 identified by 指令(密码)
-- 如果提示公共用户名无效,失败。那就再用户名前加一个c##
create user c##用户名 identified by 指令(密码)
赋予权限
grant connect, resource to 用户名
删除用户
drop user 用户名
-- 若用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,可删除用户所有的对象,然后再删除用户。
drop user 用户名 cascade;
-- 撤销权限
revoke connect, resource from 用户名
创建表格
举例:
create table user(
id number primary key not null,
name varchar(10) not null,
)
数据库关系图
以下代码都基于上传的数据库
--查询s_emp表的所有信息
select * from s_emp
--如果是开发人员建议写下面的格式用来方便开发时的操作便捷
select ID, LAST_NAME, FIRST_NAME, USERID, START_DATE, MANAGER_ID, COMMENTS, TITLE, DEPT_ID, SALARY, COMMISSION_PCT from s_emp
--查询s_emp表的指定字段信息
select COMMISSION_PCT, MANAGER_ID, DEPT_ID, SALARY, TITLE from s_emp
--查询出每个员工的姓名
select FIRST_NAME ||' '|| LAST_NAME from s_emp
--别名
select FIRST_NAME ||' '|| LAST_NAME as 名字 from s_emp
--查询出s_emp表每个员工的每月薪水
--nvl(表达式或者默认名,默认值),当表达式或者列名得到的值为null时,使用默认值,不为空时,就用表达式或者列名的值
select ID, LAST_NAME, FIRST_NAME, USERID, START_DATE, MANAGER_ID, COMMENTS, TITLE, DEPT_ID, SALARY, COMMISSION_PCT,
SALARY*nvl(SALARY*COMMISSION_PCT,0)/100 as 提成,SALARY+SALARY*nvl(SALARY*COMMISSION_PCT,0)/100 as 薪水 from s_emp
--请查询出s_dept表的部门名称
--distinct去重复值
select distinct NAME from s_dept
--查询出s_emp表中所有的员工的部门ID及职称:
select distinct DEPT_ID, TITLE from s_emp
--请查询出s_emp表中部门ID为50并且工资大于1500的员工的信息:
select * from s_emp where DEPT_ID=50 and SALARY>1500
--请查询出s_emp表中工资在1500到2000之间的员工信息:
select * from s_emp where SALARY between 1500 and 2000
--请查询出s_dept表中region_id为1,3的部门信息:
select * from s_dept where region_id=1 or region_id=3
select * from s_dept where region_id in(1,3)
-- _表示占一位,%表示可以0位或者是多位
--请查询出s_emp表中姓中含有字母a的员工信息:
select * from s_emp where LAST_NAME like '%a%'
----请查询出s_emp表中姓中首字母a A的员工信息:
select * from s_emp where LAST_NAME like '%a%' or LAST_NAME like '%A%'
----请查询出s_emp表中姓中第三位字母b的员工信息:
select * from s_emp where LAST_NAME like '__b%'
--请查询出当前用户下所有以‘s_’开头的表
select table_name
from user_tables
where table_name like 'S\_%' escape '\'
--'\'为转义字符
--查询出s_emp表中非销售职位的员工信息
--空值查询要用is null 不可以用=
select * from s_emp where COMMISSION_PCT is not null
--SELECT <列名> FROM <表名> [ where 条件] [order by [列名1,列名1,.可以多个.] [asc 升序|desc 降序]]
--查询出s_emp表将部门ID为41的员工的工资按从高到低排列显示出来
select * from s_emp where DEPT_ID =41 order by SALARY desc
--查询一名last_name以“M”开头的员工,他的好像是’3X’
select * from s_emp where last_name like 'M%' and dept_id like '3%'
--查询工资在1200至1500之间的员工
select * from s_emp where SALARY between 1200 and 1500
--查询来自部门ID为(41,42,43)的员工
select * from s_emp where DEPT_ID in(41,42,43)
(未完持续)。。。