本节内容:
oracle语句实例
字符类型
varchar2 2000字符
number 数值型
long 变长字符数据,最长为2G
date 日期型
raw 二进制数据,最长为255
long raw 变长二进制,最长为2G字节
rowid 二六进制串,表示唯一的地址
char 定长字符数据,最长为255
在创建好了oracle数据库之后,系统会有默认的用户scott下的一些表,我们可以使用这些表来自己联系。
scott.emp----员工信息表
scott.dept----部门信息表
scott.bonus----津贴信息表
scott.salgrade----销售等级表
使用sql命令:
1、确定表的结构
SQL->desc scott.dept;
备注:
1)在使用Oracle命令的时候,语句结尾后面要添加分号——;,否则查询不出结果
2)要指明该表是由谁创建的,否则会提示该表不存在
2、查询某一列
复制代码 代码示例:
SQL->select dname from scott.dept;
3、更改日期的格式
检索日期列与检索其他列没有任何区别。注意,日期数据的默认显示格式为“DD-MON-YY",如果希望使用其他显示格式(YYYY-MM-DD),那么必须使用TO_CHAR函数进行转换。
复制代码 代码示例:
select TO_CHAR(hiredate,'DD-MM-YYYY') from scott.emp;
4、取消所有重复的内容
复的显示结果,完成这项任务可以使用DISTINCT关键字。
示例1:显示所有部门号及岗位(保留重复行)
复制代码 代码示例:
SQL>SELECT deptno,job FORM scott.emp;
示例2:显示所有部门号及岗位(取消重复行)
复制代码 代码示例:
SQL>SELECT DISTINCT deptno,job FORM scott.emp;
5、使用算术表达式查询结果
复制代码 代码示例:
SQL->select ename,sal*12 from scott.emp;
6、使用别名
复制代码 代码示例:
SQL->select ename as "姓名",sal * 12 as "年收入" from scott.emp;
7、连接字符串
为了显示更有意义的查询结果,有时需要将多个字符串连接起来,连接字符串是使用“||”操作符来完成的,当连接字符串时,如果在字符串要加入数字值,那么在“||”后可以直接指定数字,如果在字符串加入字符和日期值,则必须要用单引号引住,下面以连接雇员入其岗位为例,说明连接字符串的方法:
复制代码 代码示例:
SQL->SELECT ename ||'is a'|| job AS "Employee Detail" FROM scott.emp;
8、两张表联合查询
复制代码 代码示例:
SQL->select scott.emp.empno,scott.dept.loc from scott.dept,scott.emp where scott.emp.deptno = scott.dept.deptno;
SQL->select scott.e.empno,scott.d.loc from scott.dept d,scott.emp e where scott.e.deptno = scott.d.deptno;
9、在WHERE条件中使用日期值
复制代码 代码示例:
SQL->select * from scott.emp where hiredate>TO_DATE('1987-01-01','yyyy-mm-dd');
10、在WHERE条件中使用BETWEEN..AND操作符
复制代码 代码示例:
select * from scott.emp where sal between 1000 and 2000;
11、使用模糊条件查询
LIKE操作符用于执行模糊查询,当执行查询操作时,如果不能完全确定某些
信息的查询条件,但这些信息又具有某些特征,那么可以使用模糊查询,当执行模糊查询时,需要使用通配符“%”和“_”,其中“%”用于表示0个或多个字符,而“_”用于表示单个字符
显示首字符为S的所有雇员名及其工资
复制代码 代码示例:
SQL>SELECT ename,sal FROM emp WHERE ename LIKE'S%'
显示第三个字符为大写A的所有雇员名及其工资
复制代码 代码示例:
SQL>SELECT ename,sal FROM emp WHERE ename LIKE '_ _A%';
12、在WHERE条件中使用IN操作符
IN操作符用于执行列表核匹配操作,当列或表达式结果匹配于列表中的任一个值时,条件子句返回TRUE,下面以显示工资为800和1250的雇员信息为例,说明IN操作符的方法
复制代码 代码示例:
SQL>SELECT ename,sal FROM scott.emp WHERE sal IN(800,1250);
13、在WHERE条件中使用逻辑操作符(AND、OR、NOT)
显示在部门20中岗位CLERK的所有雇员信息
复制代码 代码示例:
SQL>SELECT ename,sal,job,deptno FROM scott.emp WHERE deptno=20 AND job='CLERK';
显示工资高于2500或岗位为MANAGER的所有雇员信息
复制代码 代码示例:
SQL>SELECT ename,sal,job,deptno FROM scott.emp WHERE sal>2500 OR job='MANAGER';
显示补助非空的雇员信息
复制代码 代码示例:
SQL>SELECT ename,sal,comm FROM emp WHERE comm IS NOT NULL;
14、使用ORDER BY子句
示例一:升序排序
复制代码 代码示例:
SQL>SELECT ename,sal FROM scott.emp WHERE deptno=30 ORDER BY sal ASC;
示例二:降序排序
复制代码 代码示例:
SQl>SELECT ename,sal,comm FROM scott.emp WHERE deptno=30 ORDER BY sal DESC;
示例三:使用多列排序
当使用ORDER BY子句排序时,不仅可以基于单个列或单个表达式进行排序,也可以基于多个列或多个表达式进行排序。当以多个列或多个表达式进行排序时,首先按照第一个列或表达式进行排序,当第一个列或表达式存在相同的数据时,然后以第二个列或表达式进行排序,下面以工资升序、补助降序显示雇员信息为例,说明使用多列排序的方法
复制代码 代码示例:
SQL>SELECT ename,sal,comm FROM scott.emp WHERE deptno=30 ORDER BY sal ASC,comm DESC;
示例四:列别名排序
如果在WHERE子句中为列或表达式定义了别名,那么当执行排序操作时,既可以使用列或表达式进行排序,也可以使用列别名进行排序。下面以降序显示雇员全年工资为例,说明使用列别名进行排序的方法
复制代码 代码示例:
SQL>SELECT ename,sal*12 AS "全年工资"FROM scott.emp WHERE deptno=30 ORDER BY "全年工资" DESC;
15、单行子查询
复制代码 代码示例:
SQL>SELECT ename,dal,deptno FROM scott.emp WHERE deptno=(SELECT deptno FROM emp WHERE Ename=’SCOTT’;
16、多行子查询
复制代码 代码示例:
SQL>SELECT ename,job,sal,deptno FROM scott.emp WHERE job IN (SELECT distinct job FROM emp WHERE deptno=10);
SQL>SELECT ename,sal,deptno FROM scott.emp WHERE sal>ALL(SELECT sal FROM emp WHERE Deptno=30);
SQL>SELECT ename,sal,deptno FROM scott.emp WHERE sal>ANY (SELECT sal FROM emp WHERE Deptno=30);
17合并子查询
1.UNION
UNION用于获取两个结果集的并集
复制代码 代码示例:
SQL>SELECT ename,sal,job FROM emp WHERE sal>2500
UNION
SELECT ename,sal,job FROM emp WHERE job=’MANAGER’;
2.UNION ALL
UNION ALL用于获取两个结果集的并集
复制代码 代码示例:
SQL>SELECT ename,sal,job FROM emp WHERE sal>2500
UNION ALL
SELECT ename ,sal,job,FROM emp WHERE job=’MANAGER”;
3.INTERSECT
INTERSECT用于获取两个结果集的交集
复制代码 代码示例:
SQL>SELECT ename,sal,job FROM emp WHERE sal>2500
INTERSECT
SELECT ename,sal,job FROM emp WHERE job=’MANAGER’;
4.MINUS
MINUS操作符用于获取两个结果集的变量的差集
复制代码 代码示例:
SQL>SELECT ename ,sal,job FROM emp WHERE job=’MANAGER’;
清屏的命令——clear;
查看登陆的用户名——show user;
Quit、exit:命令模式推出
切换用户的命令—— conn username/password;
修改密码——password username;然后再输入密码
创建用户——create user huangbiao identified by sysdba;
在创建完数据库之后,如果是以sys角色登陆,那么他的登录名称应该是system,密码就是你在配置的时候设定的。