Oracle学习笔记 2 --简单查询语句(select)
2014-04-08 15:02
330 查看
学习中使用到的表全部都是scott用户下的表,所以了解一下此用户下有哪几张表。
雇员表(emp)、部门表(dept)、工资等级表(salgrade)、奖金表(bonus)。
可以使用 desc 表名 ,来查询表的结构
select查询语句,格式如下:
select * |具体的列明(如 empno ,ename) from emp ;
想要查询表中所有的列 ,执行下面的操作:
如果想要查询出雇员的编号,姓名,工作的话,就需要指定相应的列名,不同列之间用 逗号隔开。
* 代表的是查询的表中的所有的列。 如果将 * 换成列明,则表示查询相应的列 。
注意:
SQL语言的大小写不敏感;
SQL可以写在一行上,也可以写成多行,做好写成多行,这样可读性比较的强;
关键字不能被缩写,也不能别分行;
算数运算符 :
查询中可以使用算数运算,数字和日期可以使用算数运算符,算数运算间有优先顺序,先乘除,后加减。
例:查询员工的姓名,月薪及年薪
对日期进行加减运算:
注意:
对日期进行加减运算是没有问题的,但是日期不能进行乘除运算,数字加减乘除运算都可以。
上面中列名直接以SYSDATE+1 ,SYSDATE-3 显示了查询的结果,这种列名的意义不是很明确,所以我可以给列起一个别名。列名最好规避中文。
如:
别名的方式有三种:
1)我们直接在列名的后面,敲一个空格,后面直接加上别名的名字
2)我们可以再列名的后面添加as关键字,后面再加上别名的名字
3)上面两种方式,得到的别名都是大写的,我们可以通过给别名加上双引号,来得到我们想要的列名
连接符:
把列与列,列与字符链接在一起, 用'||' 表示 ,可以用来合成列。
默认情况下查询会返回全部的行,包括重复行。
例:查询表中的工作行
我们发现有重复的行,那么如何去除呢,就要使用我们的distinct 关键字。
雇员表(emp)、部门表(dept)、工资等级表(salgrade)、奖金表(bonus)。
可以使用 desc 表名 ,来查询表的结构
select查询语句,格式如下:
select * |具体的列明(如 empno ,ename) from emp ;
想要查询表中所有的列 ,执行下面的操作:
SQL> select * from emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----- ---------- --------- ----- ----------- --------- --------- ------ 7369 SMITH CLERK 7902 1980/12/17 800.00 20 7499 ALLEN SALESMAN 7698 1981/2/20 1600.00 300.00 30 7521 WARD SALESMAN 7698 1981/2/22 1250.00 500.00 30 7566 JONES MANAGER 7839 1981/4/2 2975.00 20 7654 MARTIN SALESMAN 7698 1981/9/28 1250.00 1400.00 30 7698 BLAKE MANAGER 7839 1981/5/1 2850.00 30 7782 CLARK MANAGER 7839 1981/6/9 2450.00 10 7788 SCOTT ANALYST 7566 1987/4/19 3000.00 20 7839 KING PRESIDENT 1981/11/17 5000.00 10 7844 TURNER SALESMAN 7698 1981/9/8 1500.00 0.00 30 7876 ADAMS CLERK 7788 1987/5/23 1100.00 20 7900 JAMES CLERK 7698 1981/12/3 950.00 30 7902 FORD ANALYST 7566 1981/12/3 3000.00 20 7934 MILLER CLERK 7782 1982/1/23 1300.00 10 14 rows selected
如果想要查询出雇员的编号,姓名,工作的话,就需要指定相应的列名,不同列之间用 逗号隔开。
SQL> select empno ,ename , job from emp ; EMPNO ENAME JOB ----- ---------- --------- 7369 SMITH CLERK 7499 ALLEN SALESMAN 7521 WARD SALESMAN 7566 JONES MANAGER 7654 MARTIN SALESMAN 7698 BLAKE MANAGER 7782 CLARK MANAGER 7788 SCOTT ANALYST 7839 KING PRESIDENT 7844 TURNER SALESMAN 7876 ADAMS CLERK 7900 JAMES CLERK 7902 FORD ANALYST 7934 MILLER CLERK 14 rows selected
* 代表的是查询的表中的所有的列。 如果将 * 换成列明,则表示查询相应的列 。
注意:
SQL语言的大小写不敏感;
SQL可以写在一行上,也可以写成多行,做好写成多行,这样可读性比较的强;
关键字不能被缩写,也不能别分行;
算数运算符 :
查询中可以使用算数运算,数字和日期可以使用算数运算符,算数运算间有优先顺序,先乘除,后加减。
例:查询员工的姓名,月薪及年薪
SQL> select ename , sal , sal*12 from emp ; ENAME SAL SAL*12 ---------- --------- ---------- SMITH 800.00 9600 ALLEN 1600.00 19200 WARD 1250.00 15000 JONES 2975.00 35700 MARTIN 1250.00 15000 BLAKE 2850.00 34200 CLARK 2450.00 29400 SCOTT 3000.00 36000 KING 5000.00 60000 TURNER 1500.00 18000 ADAMS 1100.00 13200 JAMES 950.00 11400 FORD 3000.00 36000 MILLER 1300.00 15600 14 rows selected
对日期进行加减运算:
SQL> select sysdate , sysdate+1 ,sysdate -3 from dual ; SYSDATE SYSDATE+1 SYSDATE-3 ----------- ----------- ----------- 2014/4/8 14 2014/4/9 14 2014/4/5 14
注意:
对日期进行加减运算是没有问题的,但是日期不能进行乘除运算,数字加减乘除运算都可以。
上面中列名直接以SYSDATE+1 ,SYSDATE-3 显示了查询的结果,这种列名的意义不是很明确,所以我可以给列起一个别名。列名最好规避中文。
如:
SQL> select sysdate date1 , sysdate-1 yesterday from dual; DATE1 YESTERDAY ----------- ----------- 2014/4/8 14 2014/4/7 14
别名的方式有三种:
1)我们直接在列名的后面,敲一个空格,后面直接加上别名的名字
2)我们可以再列名的后面添加as关键字,后面再加上别名的名字
3)上面两种方式,得到的别名都是大写的,我们可以通过给别名加上双引号,来得到我们想要的列名
SQL> select sal as s , ename "name" ,sal*12 money from emp ; S name MONEY --------- ---------- ---------- 800.00 SMITH 9600 1600.00 ALLEN 19200 1250.00 WARD 15000 2975.00 JONES 35700 1250.00 MARTIN 15000 2850.00 BLAKE 34200 2450.00 CLARK 29400 3000.00 SCOTT 36000 5000.00 KING 60000 1500.00 TURNER 18000 1100.00 ADAMS 13200 950.00 JAMES 11400 3000.00 FORD 36000 1300.00 MILLER 15600 14 rows selected
连接符:
把列与列,列与字符链接在一起, 用'||' 表示 ,可以用来合成列。
SQL> select empno||'编号'||'姓名'||ename||'工资'||sal info from emp ; INFO -------------------------------------------------------------------------------- 7369编号姓名SMITH工资800 7499编号姓名ALLEN工资1600 7521编号姓名WARD工资1250 7566编号姓名JONES工资2975 7654编号姓名MARTIN工资1250 7698编号姓名BLAKE工资2850 7782编号姓名CLARK工资2450 7788编号姓名SCOTT工资3000 7839编号姓名KING工资5000 7844编号姓名TURNER工资1500 7876编号姓名ADAMS工资1100 7900编号姓名JAMES工资950 7902编号姓名FORD工资3000 7934编号姓名MILLER工资1300 14 rows selected
默认情况下查询会返回全部的行,包括重复行。
例:查询表中的工作行
SQL> select job from emp ; JOB --------- CLERK SALESMAN SALESMAN MANAGER SALESMAN MANAGER MANAGER ANALYST PRESIDENT SALESMAN CLERK CLERK ANALYST CLERK 14 rows selected
我们发现有重复的行,那么如何去除呢,就要使用我们的distinct 关键字。
SQL> select distinct job from emp ; JOB --------- CLERK SALESMAN PRESIDENT MANAGER ANALYST
相关文章推荐
- 2、Oracle中简单查询(SELECT) 、限定查询语句(WHERE子句) 、排序(ORDER BY)
- sql子查询 嵌套SELECT语句
- sql server select查询语句 我想把AS后面重命名的列名 作为where语句的条件
- oracle入门之第一章【简单查询语句】
- 从一条select语句看Oracle数据库查询工作原理(转载)
- 数据库--简单的查询语句
- (小技巧)SQL Server Management提供的最简单的SQL查询语句格式化
- php中简单模糊查询的sql语句
- sql条件查询语句的简单实例
- Oracle中简单查询、限定查询、数据排序SQL语句范例和详细注解
- 深入SELECT语句的查询功能
- 1、Mysql:mysql简单的索引和in、or、union unionall语句查询速度
- MySQL简单查询语句
- OCP-1Z0-051 补充题库 第6题 SELECT查询语句
- 数据查询语言(Database Query Language,DQL):SELECT语句之二
- ORCLE-Select 语句执行顺序以及如何提高Oracle 基本查询效率
- sql server 简单查询语句
- Select 语句执行顺序以及如何提高Oracle 基本查询效率
- 25. SQL -- TSQL(SELECT语句的使用,子查询,连接,通配符 )(1)
- QueryDSL 简单的查询语句应用