目录
两条格式化指令
——设置每行显示的数据长度
SET LINESIZE 300;
——设置每页数据行数
SET PAGESIZE 30;
启动记事本程序,编写代码
ED test;
无后缀,默认为.sql
若不关闭记事本,则cmd处于阻塞状态
执行test.sql记事本中的命令
@test
切换用户
CONN sh/sh
已连接。
切换到管理员
CONN sys/change_on_install AS SYSDBA
已连接。
查看其他用户的表
用户名.表名称
SELECT * from scott.emp;
查询一个用户全部数据表
select * from user_tables;
执行操作系统命令
在sqlplus中可直接执行操作系统的命令,在前加HOST
例如:
host copy e:\a.png e:\b.png
查看一个用户下的所有表:
SELECT * FROM tab;
查看一个表的结构
DESC emp;
指定列所占长度
COL job FOR A10;
SQL简单查询:
查取一张数据表中所有数据行的内容
去除重复数据:
在SELECT后面加上INSTINT
SELECT DISTINCT job,empno FROM emp;
若查询数据为多个列,只有在多个列数据都相同的情况下都相同才消除
使用别名
不建议使用中文
select ename bieming from emp;
将查询结果合并显示
SELECT empno||ename from emp;
常量的三点说明
- 字符串:使用单引号声明,例如'hello'
SELECT '雇员编号:' || empno|| ',雇员名字'||ename from emp;
- 数字:直接编写,例如 12
- 日期:按照日期风格格式编写,使用xx日-xx月-xx年
限定查询 (WHERE)
- 关系运算符:>,<,>=,<=,<>(!=);
- 逻辑运算符:AND,OR,NOT;
SELECT * FROM emp WHERE sal>2000 AND sal<7000;
- 范围运算符:BETWEEN...AND;
SELECT * FROM emp WHERE sal BETWEEN 333 AND 900;
- 谓语范围:IN,NOTIN;
SELECT * FROM emp WHERE NOT sal IN(111,222,333,null);
- 空判断:IS NULL,ISNOTNULL;
SELECT * FROM emp WHERE sal IS NOT NULL;
- 模糊查询:LIKE
SELECT * FROM emp WHERE enaem LIKE '_A%';
- “_”表示任意一个字符
- “%”表示任意零个,一个或多个字符
- 差值:MINUS
- 交集:INTERSECT
不添加关键字则查取全部,
顺序查询
ORDER BY
- ASC(默认)——升序
- DESC————降序
SELECT * FROM emp ORDER BY sal DESC;