测试机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;
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;
select sno,sname from t_student;
select distinct job from emp;
select * from emp where sal > 1000;
select * from emp where sal > 1000 and deptno=10;
select * from emp where sal > 3000 or job='MANAGER';
select * from emp where (sal > 2500 or job='MANAGER') and deptno=10;
select * from emp where sal>=3000 and sal<=5000;
select * from emp where sal between 3000 and 5000;
select * 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;
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';
select * from emp where ename like '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;
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;
正在持续更新…