SQL SELECT语句

基本SQL SELECT语句

 

1.       下面的语句是否可以执行成功

select ename , job , sal as salary

from emp;

2.       下面的语句是否可以执行成功

select  *  from emp;

3.       找出下面语句中的错误

select empno , ename

sal * 12  ANNUAL  SALARY

from emp;

修改后

select empno , ename

,sal * 12  "ANNUAL  SALARY"

from emp;

4.       显示表dept的结构,并查询其中的全部数据

SQL> desc dept;

Name   Type         Nullable Default Comments

------ ------------ -------- ------- --------

DEPTNO NUMBER(2)

DNAME  VARCHAR2(14) Y

LOC    VARCHAR2(13) Y

SQL>

5.       显示出表emp中的不重复的岗位job

SELECT DISTINCT JOB FROM EMP;

6.       连接表emp的全部列,各个列之间用逗号连接,列头显示成OUT_PUT(提示:使用连接符||)

selectEMPNO||‘,‘||ENAME||‘,‘||JOB||‘,‘||MGR||‘,‘||HIREDATE||‘,‘||SAL||‘,‘||COMM||‘,‘||DEPTNOas "OUT_PUT" from emp;

过滤和排序数据

1.       查询工资大于1600的员工姓名和工资

select ename,sal

from emp

where sal>1600;

2.       查询员工号为7369的员工的姓名和部门号

select empno,ename,deptno from emp

where empno=7369;

3.       选择工资不在4000到5000的员工的姓名和工资

select ename,sal

from emp

where sal  not between 4000 and 5000;

4.       选择雇用时间在1981-2-19到1981-12-3之间的员工姓名,JOB和雇用时间HIREDATE

Select ename,job,hiredate

from emp

where hiredate between to_date(‘1981-2-19‘,‘YYYY-mm-dd‘)

and  to_date(‘1981-12-3‘,‘YYYY-mm-dd‘);

5.       选择在20和30号部门工作的员工姓名和部门号

select ename,deptno from emp

where deptno in(20,30);

6.       选择在1987年雇用的员工的姓名和雇用时间

Select ename,hiredate

from emp

where hiredate  between to_date(‘1987-1-1‘,‘YYYY-mm-dd‘)

and  to_date(‘1987-12-31‘,‘YYYY-mm-dd‘);

7.       选择公司中没有管理者的员工姓名及JOB

select ename,job

from emp

where mgr is null;

8.       选择公司中有奖金的员工姓名,工资和奖金

select ename,sal,comm

from emp

where comm is not null

and comm>0;

9.       选择员工姓名的第三个字母是A的员工姓名

select ename from emp

where ename like ‘__A%‘;

10.   选择姓名中有字母A和E的员工姓名

select ename from emp

where ename like ‘%A%‘ and ename like ‘%E%‘ ;

单行函数

1.       显示系统时间

select sysdate from emp;

2.       查询员工表emp中员工号empno,姓名ename,工资sal,以及工资提高百分之20%后的结果

 select empno,ename,sal,sal*0.2+sal from scott.emp

3.       将员工的姓名按首字母排序,并写出姓名的长度(length)

select ename  from scott.emp order by substr(ename,1,1)

4.       查询各员工的姓名ename,并显示出各员工在公司工作的月份数(即:与当前日期比较,该员工已经工作了几个月)。

select ename,hiredate,round((sysdate-hiredate)/30) from scott.emp  order by ename

5.       查询员工的姓名和工资,按下面的形式显示


Name


Salary


SMITH


$$$$$$$$$$24000

select ename,sal,lpad(sal,10,‘$‘) from scott.emp

6.       查询员工的姓名ename和工资数sal,条件限定为工资数必须大于1200,并对查询结果按月份数降序方式进行排列

select to_char(hiredate,‘mm‘) as monthorder from scott.emp

where comm>1200

order by monthorder

7.       做一个查询,产生下面的结果

select ename || ‘ earns ‘ || to_char(sal,‘$99,999‘) || ‘ monthly but wants ‘ || to_char(sal*3,‘$99,999‘)  "              Dream Salary"

from scott.emp

<enamename> earns <sal> monthly but wants <sal*3>


Dream Salary


King earns $24000 monthly but wants $72000

 

8.       做一个查询,产生类似下面的结果


Ename


HireDate


reiew


SMITH


1980-12-17


19801217

select ename,to_char(hiredate,‘yyyy-mm-dd‘) as hiredate,

to_char(hiredate,‘YYYY"年"MONTH"月"DD"日"‘ ) as review

from scott.emp

9.       使用decode函数,按照下面的条件:

job                  grade

PRESIDENT            A

MANAGER             B

ANALYST              C

SALESMAN            D

CLERK                E

产生类似下面形式的结果


ENAME


Job


Grade


SMITH


CLERK


E

select ename,job,

DECODE(job, ‘PRESIDENT‘, ‘A‘,

‘MANAGER‘, ‘B‘,

‘ANALYST‘,  ‘C‘,

‘SALESMAN‘, ‘D‘,

‘CLERK‘, ‘E‘

)

Grade

from   scott.emp

10.   将第9题的查询用case函数重新实现。

select ename,job,

CASE job WHEN ‘PRESIDENT‘  THEN ‘A‘

WHEN ‘MANAGER‘ THEN  ‘B‘

WHEN ‘ANALYST‘ THEN  ‘C‘

WHEN ‘SALESMAN‘ THEN  ‘D‘

WHEN ‘CLERK‘ THEN  ‘E‘

END    "Grade"

from   scott.emp

时间: 2024-10-25 13:12:20

SQL SELECT语句的相关文章

Oracle 基本SQL SELECT语句

SELECT  *  |    {   [ DISTINCT  ]    column   |    expression   [   alias   ]  ,   ...    } FROM  table; ?SELECT  标识 选择哪些列. ?FROM    标识从哪个表中选择. column后面加上空格,同时跟上别名(alias),或者 as 别名,到下一行的内容时,要用逗号隔开, 默认的别名是小写的,如果想要让它是大写的,使用 "别名" 如果别名有多个单词的时候,用双引号别名

SQL SELECT 语句

SQL SELECT 语句 SELECT 语句用于从表中选取数据. 结果被存储在一个结果表中(称为结果集). SQL SELECT 语法 SELECT 列名称 FROM 表名称 以及: SELECT * FROM 表名称 注释:SQL 语句对大小写不敏感.SELECT 等效于 select. SQL SELECT 实例 如需获取名为 "LastName" 和 "FirstName" 的列的内容(从名为 "Persons" 的数据库表),请使用类似

SQL Select语句完整的执行顺序

SQL Select语句完整的执行顺序: 1.from子句组装来自不同数据源的数据: 2.where子句基于指定的条件对记录行进行筛选: 3.group by子句将数据划分为多个分组: 4.使用聚集函数进行计算: 5.使用having子句筛选分组: 6.计算所有的表达式: 7.select 的字段:8.使用order by对结果集进行排序.SQL语言不同于其他编程语言的最明显特征是处理代码的顺序.在大多数据库语言中,代码按编码顺序被处理.但在SQL语句中,第一个被处理的子句式FROM,而不是第一

[1]SQL SELECT 语句

SQL SELECT 语句 "Websites" 表的数据: +----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ |

Oracle OCP 官方PPT学习日志 使用 SQL SELECT 语句检索数据 01

连接运算符,|| 注:也可以将日期表达式连接到其他表达式或列. 文字字符串 SELECT last_name ||' is a '||job_id AS "Employee Details" FROM employees; 其它引号(q)运算符 许多SQL语句都在表达式或条件中使用字符文字.如果文字本身包含一个单引号,则可以使用引号(q)运算符并选择自己的引号分隔符. 可以选择所需要的任何分隔符,单字节或多字节分隔符,或者下列字符对中的任何一种:[ ].{ }.( )或< >

Oracle系列二 基本的SQL SELECT语句

1.查询表中全部数据 示例: SELECT * FROM employees; 说明: SELECT   标识 选择哪些列. FROM      标识从哪个表中选择. *           选择全部列 2.查询表中特定列数据 示例: SELECT department_id, location_id FROM departments; 注意: SQL 语言大小写不敏感. SQL 可以写在一行或者多行 关键字不能被缩写也不能分行 各子句一般要分行写. 使用缩进提高语句的可读性. 算术运算符 数字

sql select语句详解

先group by 后  order by SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]    * | expression [ AS output_name ] [, ...]    [ FROM from_item [, ...] ]    [ WHERE condition ]    [ GROUP BY expression [, ...] ]    [ HAVING condition [, ...] ]    [ {

SQL Select 语句小数位数影响计算的准确率的问题

在财务数据计算中,特别是分摊过程中,0.0001% 和0.00012%看似极小的差异,但是会造成最后求和很大的差异,因此,我们在计算中需要尽可能多的保留占比的小数位数 可以在SELECT CONVERT(float,x) /CONVERT(float,y) as pct ...... 或者显示的指定精度解决,CONVERT(DECIMAL(38,12),x) /CONVERT(DECIMAL(38,12),y) as pct 两种方法都可解决 原文地址:https://www.cnblogs.c

【Oracle】SQL 中Select语句完整的执行顺序

SQL Select语句完整的执行顺序: 1.from子句组装来自不同数据源的数据: 2.where子句基于指定的条件对记录行进行筛选: 3.group by子句将数据划分为多个分组: 4.使用聚集函数进行计算: 5.使用having子句筛选分组: 6.计算所有的表达式: 7.select 的字段: 8.使用order by对结果集进行排序. SQL语言不同于其他编程语言的最明显特征是处理代码的顺序.在大多数据库语言中,代码按编码顺序被处理.但在SQL语句中,第一个被处理的子句式FROM,而不是