表空间操作
1.创建一个表空间
create tablespace emp(空间名) datafile 'emp.dbf' size 10M autoextend on ; →表空间名字 / 物理文件地址 和名字 / 空间大小
2.修改表空间大小
alter database datafile ' emp.dbf ' resize 20M ; →文件名字 / 修改的大小
3.查看表空间
select * from dba_tablespaces ; (查询的内容比较详细) 或者
select * from v$tablespace;
4.删除表空间,不删除dbf物理文件
drop tablespace emp(空间名字)
5.删除表空间同时 删除dbf物理文件
drop tablespace emp including contents and datafiles;
用户的操作
1.创建用户
create user shx identified by 123 default tablespace emp; →用户名 / 密码 / 表空间名称
2.给用户授权
grant dba to shx; → 权限名 / 用户名
3.撤销权限
revoke dba from shx ;→ 权限名 / 用户名
4.删除用户(用户已连接报错删不掉用)
1.查看用户连接状态
select username,sid,serial# from v$session;
2.找到要删除的sid和serial 并且删除
alter system kill session 'xx,xx';
3.删除用户
drop user shx(用户名) cascade ; →用户名
表的操作
1.切换用户登录
conn 用户名 / 密码
2.查询该用户下面所有的表
select * from tab;
3.查看当前表用户
show user;
4.创建序列
create sequence seq_student;
5.创建表
create table 表明(
sid number not null primary key,
sname varchar2(10) not null,
gz numeric(7,2) check (gz between 5000 and 50000)
);
6.更改表字段
alter table student(表明) modify (sname varchar2(20) not null); → 表明 字段名
7.查看表结构
desc student; →表明
8.添加列
alter table student add (age number(10,0)); →表明 字段名
9.删除列
alter table student drop coiumn sex; →表明 关键字 字段名
10.删除多列
alter table student drop ( password ,cid); → 表明 字段
11.删除数据不删除表结构
truncate table student ; →表明
12.给表重命名
rename student to students ;
13.给列重命名
alter table 表明 rename column 列明 to 新列明 ;
14.添加主键
alter table student add primary key(字段名); →表明
15.删除主键
alter table student drop primary key(字段名); →表明
16.给表中的某一列添加唯一约束
alter table student add constraint u_sname unique(sname);
17删除表
drop table 表明;
18.创建视图
create view 视图名 as select statment;
19.删除视图
drop view 视图名;
数据的操作
1.插入一条数据
insert into 表明(字段名) values(值);
例:insert into emp(empid) values(1);
2.更新修改一条数据
update 表明 set 字段名='值' where 字段名 ='值';
例:update emp set empname='小明' where empid =1;
3.条件查
查询1999年后出生 并且性别为女的员工信息 并按照年份降序排
select * from emp
where to_char(bir,'yyyy')>1999
and sex = '女'
order by to_char(bir,'yyyy')desc; → to_char 作用是将日期只取年份
4.取年份
select to_char(字段名,'yyyy') from 表明; →代表的是日期的字段
5.查询年龄
select floor( months_between(sysdata,bir)/12) from emp ; →关键字 sysdata代表的现在时间
6.||字符串连接符
select '员工编号是:' || empid || '姓名是:' || name from emp;
7.行号 rownum 只支持 < <=
select name,bir,rownum from emp where rownum<=5;
8.排名
select row_number() over(order by 字段名 desc/asc) 名次 from 表明;
例子:
select empid,name,height,row_number() over(order by height desc) 名次 from emp; →关键字
9.身高相同 名次显示相同 不跳号
select empid,name,height,dense_rank() over (order by heiger) 名次 from emp ;
10.左连接
select * from emp lefft join kq on emp.emp.empid=kq.empid;
或者
select * from emp,kq where emp.empid = kq.empid(+);
11.右连接
select * from emp right join kq on emp.emp.empid=kq.empid;
或者
select * from emp,kq where emp.empid(+) = kq.empid;
12.全连接
select * from emp full join kq on emp.empid=kq.empid;
13.模糊查询
select * from 表明 where 字段 like '%条件%' ;