Oracle数据库的基本语句
一、对显示的数据的格式进行调整
1、设置每行显示的数据长度:SET LINESIZE 300; //300及30是可以自己设置的
2、设置每次显示的行数,设置分行:SET PAGESIZE 30;
3、针对某行进行格式操作:COL 列名称 FOR A 长度 例:col job FOR A20;
二、常用的数据库的操作
1、查看当前用户:show user
2、切换用户:conn 用户名【/密码 】【as sysdba】
范例:切换到system用户 CONN system/manager
范例:切换到sys用户 CONN sys/change_on_install AS SYSDBA
三、SQL的三大语言
1、DML(数据操作语言):数据库的更新与查询(SELECT,FROM,INSET,GROUP BY, HAVING,UPDATE, DELETE),在开发之中几乎都是以DML操作为主的。
2、DDL(数据定义语言):数据库对象的定义语言,例如:数据表,约束,索引,同义词,用户在设计数据库设计的时候都必须掌握。
3、DCL(数据库控制语言):数据库的权限控制。
四、SQL基础查询语句
一、基本查询操作
1、 SELECT [DISTINCT] * | 列1[别名1],列2[别名2],……
FROM 表名称[表别名];
例1:select * from emp; 查询emp表的全部内容
例2:select empno ,ename ,sal ,job form emp; 查询emp表中的雇员编号、姓名、职位、基本工资的信息
例3:select empno 雇员编号,sal*12 年薪 from emp; 查询emp表中的empno且计算员工的年薪,在输出表格中,设置别名显示
二、限定查询
1、逻辑运算可以保证连接多个条件,主要的逻辑连接符有AND,OR,NOT
范例:要求查询出不是办事员,但是工资低于3000的雇员
SELECT *
FROM emp
WHERE job<>’CLERK’ AND sal < 3000 ;
范例:查询出职位是办事员,或者工资低于1200的所有雇员
SELECT *
FROM emp
WHERE job=’CLERK’ AND sal<1200;
范例:查出工资低于2000的员工的信息
SELECT *
FROM emp
WHERE NOT sal > 2000;
三、范围限定查询
BETWEEN…AND 的主要功能是进行范围的查询,其使用语法形式如下:
WHERE 字段|数字BETWEEN 最小值 AND 最大值。
范例:查询出工资在1500-3000之间的所有雇员
SELECT *
FROM emp
WHERE sal BETWEEN 1500 AND 3000;
四、空判断
对于数据库中的数据,除了限定了非空约束的列,其他的数据是允许存在空值的,但是在任何情况下,一个数字与null进行计算,那么结构还是为null。所以在进行查询计算的时候,应该要进行空判断,之后要对null进行处理。
范例:
SELECT *
FROM emp
WHERE comm IS NOT NULL;
五、in、not in 操作符
IN,NOT IN指的是根据一个指定的范围进行数据查询。
范例:查询出雇员编号是7369、7566、7788、9999的雇员信息。
SELECT *
FROM emp
WHERE empno IN (7369,7566,7788,9999);
注意:在使用NOT IN的时候如果查找的数据范围之中包含有null值,那么不会有任何的查询结果返回,IN操作无此限制。
六、模糊查询:like
LIKE可以实现数据的模糊查询操作,如何要想使用LIKE则必须使用如下的两个符号:
“.”:匹配任意的一位符号;
“%”:匹配任意的符号(包含匹配0位,1位,多位);
范例:查询所有雇员姓名中一字母A开头的雇员信息
SELECT *
FROM emp
WHERE ename LIKE 'A%';
范例:查询所有雇员姓名中第二个字母是A的所有雇员
第一位可以人任意,但是必须占一位字符,使用“_”;
后面的位随便,使用“%”。
SELECT *
FROM emp
WHERE ename LIKE '_A%';
范例:查询雇员姓名中任意位置上存在有字母A的雇员信息
SELECT *
FROM emp
WHERE ename LIKE '%A%';
七、指定顺序查询
ORDER BY 排序字段 [ASC|DESC],排序字段 [ASC|DESC], …
升序:ASC,默认不写排序也是升序;
降序:DESC,由高到低进行排序。
范例:按照工资由高到底排序(降序)
SELECT * FROM emp ORDER BY sal DESC;
范例:按照工资由高到底排序(降序),如果工资相同,则按照雇佣日期由早到晚排序。
SELECT * FROM emp ORDER BY sal DESC,hiredate ASC;