oracle基本命令集合(1)--基本操作

来源:互联网 发布:淘宝 手办时光机 编辑:程序博客网 时间:2024/05/22 06:46

测试机oracle参数
版本:oracle 11g
用户/密码:sys/orcl,system/manager,scott/tiger

序:
SQL语言是数据库的核心语言。全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言,它的前身是SQUARE语言。
SQL语言大致可分为以下几组:
1.DML(Data Manipulation Language,数据操作语言):用于检索或者修改数据
SELECT:查询表中数据
UPDATE:更新表中记录
INSERT:向表中添加新记录
DELETE:删除表中记录
2.DDL(Data Definition Language,数据定义语言):用于定义数据的结构,如创建、修改或者删除数据库对象
CREATE:创建数据库对象
ALTER:修改数据库对象
DROP:删除数据库对
truncate:删除表中记录,不可回退
3.DCL(Data Control Lanaguage,数据控制语言)
GRANT:授权命令
REVOKE:撤消权限命令

一.登陆sqlplus

3种方法,因地制宜
1)、在命令行下输入sqlplus按提示输入用户名,密码
2)、直接输入sqlplus scott/tiger
3)、以管理员身份登录:sqlplus sys/orcl as sysdba

二.创建表(create)

这里写图片描述

 create table t_class(cno varchar2(10) primary key, cname varchar2(20) not null);
create table t_student(sno varchar2(20) constraint pk_student primary key,sname varchar2(20) constraint chk_name not null,sex char(2) constraint chk_sex check (sex in('男', '女')),birth date,idcard varchar2(10)  references t_class(cno));

这里写图片描述

三.插入(insert)

 insert into t_class values('c001', '2班');
 insert into t_class values('c002', '1班');
insert into t_student values('s002', '李斯','男',sysdate,'c001');
insert into t_student(sno, sname,sex) values('s001','张飒','男');

四.修改(alter)

用SET UNUSED选项标记一个或多个未使用的列
用DROP UNUSED COLUMNS选项删除被标记为未使用的列

alter table t_student set unused column sno; --标记表头sno
alter table t_student drop unused columns; --删除被标记为使用的列

添加列

SQL> alter table t_student add  in_date date;

删除列

alter table t_student drop column in_date;

五.更新(update)

 update t_student set name='张3',sex='女'   --修改所有 update t_student set name='张3',sex='女' where sno='s001'

六.查询(select)

1.普通查询

select * from tab;   --查询本用户所有的表select sno,sname from t_student;   --只查询sno,snameselect sno,sname from t_student;   --将查询结果以“学号          名字      sex”的格式显示select distinct job from emp;     --去重复显示emp表中job信息
select * from emp where sal > 1000;select * from emp where sal > 1000 and deptno=10;--数据段本身区分大小字select * from emp where sal > 3000 or job='MANAGER';--一个sql中既有and又有or一定用括号指定分组select * from emp where (sal > 2500 or job='MANAGER') and deptno=10;--工资在3000至5000之间的员工select * from emp where sal>=3000 and sal<=5000;select * from emp where sal between 3000 and 5000; --小数在前,大数在后--查询null/not nullselect * from emp where comm is null;select * from emp where comm is not null;select * from emp where sal > 3000;select * from emp where not sal > 3000;--查询工作岗位是CLERK,MANAGER,ANALYST的员工的信息select * from emp where job='CLERK' or job = 'MANAGER' , job = 'ANALYST';select * from emp where job='CLERK' or job = 'MANAGER' , job = 'ANALYST';select * from emp where job in ('CLERK', 'MANAGER','ANALYST');select * from emp where job not in ('CLERK', 'MANAGER','ANALYST');

2.模糊查询

select * from emp where ename like 'KING';--查询姓名以s开头的员工信息select * from emp where ename like 'S%';--以S结尾的员工信息select * from emp where ename like '%S'; --查询姓名是四个字符的员工信息select * from emp where ename like '____';select * from emp where ename like '%\_%' escape \;select * from emp where ename like '%#_%' escape '#';--指定转义符为“#”

3.排序

select * from emp order by sal asc;--默认升序--降序排select * from emp order by sal desc;--多条件排--部门降序,工资升序select * from emp order by deptno desc,sal;--desc只作用于使用它的列select empno,ename,job,sal from emp where job='CLERK' order by deptno ,sal desc;
--按列别名SQL> select empno,ename,job,sal 工资 from emp order by 工资; --按列序号SQL> select empno,ename,job,sal 工资 from emp order by 1 desc;SQL> select empno,ename,job,sal 工资 from emp order by 4 ;

七.删除

1.删除整个表

(1)至回收站

drop table 表的名字;

(2)永久删除

drop table 表的名字 purge;

2.永久删除表中记录

truncate table 表的名字;

truncate 语句是个快速数据删除语句,越过Oracle 中的事物控制,使数据改变具有不可恢复性。截断表总是比不带where 子句的delete 语句快,但完成这个操作之后,就无法恢复数据,除非对数据进行备份。

3.删除表中记录到回收站

delete * from 表的名字;

4.查看/清空回收站

–查看回收站

 show recyclebin

(1)删除回收站所有垃圾信息

purge recyclebin;

(2)清除选中信息

purge table 表的名字;purge index 索引的名字

5.闪回

SQL> flashback table "BIN$gNXtmTKZT72wL38EHVrFeQ==$0" to before drop;闪回完成。

另外一些常用命令及注意事项:

show user : 显示当前登录用户
conn 用户名/密码:切换至另一用户
desc[ribute] 表名:查看指定表的表结构
select * from tab:查看当前用户所拥有的表
set serveroutput on:打开服务器端输出
set pagesize 100:设置每页显示多少条记录
set linesize 200:设置每行显示多少字符
alter session set nls_date_format=‘yyyy-mm-dd’:设置当前环境下日期的使用格式
cl[ear] sc[reen]:清除屏幕
spool c:\test.sql :脱机至指定文件
spool off:结束脱机
save c:\test.sql:保存上条sql语句
start或@ c:\test.sql:执行指定文件中的sql语句
ed[it]:找开文本编辑工具,编辑上一条命令
/:执行上一条命令
store set c:\test.out:保存环境设置
set timing out:输出每条命令的执行时间
password :修改当前用户密码
disc[onnect]:断开连接


  • –开头为注释(两个杠)
  • oracle监听端口为1521
  • 删除所有数据
    delete from table_name; DML, 逐行删除,速度慢,会记日志,可撤消
    truncate table table_name; DDL,先摧毁后重建,速度快,不记日志,不可撤消

drop table table_name;

在表中的所有数据和结构都被删除任何未决的事务都被提交
所有的索引被删除
你 不能 回退DROP TABLE语句
任何视图和同义词被保留但无效

八.回退

rollback;   --对truncate无效

正在持续更新…

1 0