专业只做数据库实训和认证的品牌机构

微信公众号新浪微博
免费咨询电话:400-0909-964
当前位置: 网站首页 > OCP认证 > OCP课程 > OCP培训课程:SQL之使用SELECT语句检索数据

OCP培训课程:SQL之使用SELECT语句检索数据

文章来源: 更新时间:2016/6/20 15:26:04

在线老师点击咨询:

最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!

我要咨询

OCP培训课程:SQL之使用SELECT语句检索数据 

select语句有三个功能:投影、选择和多表联合,投影指选择表的某些列,选择指选择表的某些行,多表联合指从多张表获取数据。这一章主要讲投影的功能。

1、基本SELECT语句语法

包含select子句和from子句:

select子句列出要选择的列,其中*表示选择表中的所有列,distinct关键字表示去掉重复的列,多列之间使用逗号隔开,也可以使用表达式,可以为列或者表达式指定一个别名

from子句指明这些列来自于哪张表

例子:使用*选择所有表中列

SQL> select * from departments;

例子:使用列名字选择指定的列

SQL> select department_id,location_id from departments;

2、SQL语句的一些书写规范

SQL语句不区分大小写

SQL语句可以写在一行,也可以跨行

关键字不能缩写及跨行

子句一般单独一行

可以使用缩进提高可读性

在SQL*PLUS中使用分号作为语句的结束

3、列的默认显示

在SQL Developer中:

列的对齐方式:居中

列头显示方式:大写

在SQL*PLUS和PL/SQL Developer中:

字符和日期列左对齐

数字列右对齐

列头显示方式:大写

4、算术表达式

使用算术运算符创建表达式。

例子:使用+

SQL> SELECT last_name,salary,salary+300 from employees;

例子:使用*和+

SQL> SELECT last_name,salary,12*salary+100 from employees;

例子:使用括号改变运算优先级

SQL> SELECT last_name,salary,12*(salary+100) from employees;

5、null

null表示一个未知的值,既不是零也不是空格。

例子:查看人员表中的提成,其中有的人的提成为null

SQL> SELECT last_name,job_id,salary,commission_pct from employees;

null具有传染性,也就是说null和任何值进行运算都为null。

例子:使用包含null的提成字段进行算术运算,结果也是null

SQL> select last_name,12*salary*commission_pct from employees;

6、定义列别名

前面的SQL语句一个列的名字为12*SALARY*COMMISSION_PCT,很长,我们可以使用一个有意义的简短别名来替代他,更易读。

可以直接在列名字后面加上别名,也可以使用as关键字。

例子:使用as关键字加列别名以及直接加上列别名

SQL> select last_name as name,commission_pct comm from employees;

NAME COMM

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

OConnell

别名和列名一样,默认都是以大写显示,如果别名包含空格,特殊字符或者不想使用大写显示,就需要加上双引号。

例子:加上双引号的别名

SQL> select last_name "Name",salary*12 "Annual Salary" from employees;

Name Annual Salary

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

OConnell 31200

7、连接操作符||

Oracle中的连接操作符使用两个竖杠表示,可以将列或者字符串与其他列连接起来,可以把多个字段连接成一个字段来显示。

例子:2个字段连接成1个字段显示

SQL> select last_name||job_id as "Employees" from employees;

Employees

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

AbelSA_REP

AndeSA_REP

AtkinsonST_CLERK

8、字变量

字变量是select语句中个一个字符,一个数字或者一个日期

日期和字符字变量的值必须使用单引号括起来

输出的每一行都会显示一次字变量字符

例子:使用单引号将字符字变量括起来,每一行都会显示一次这个字变量

SQL> select last_name||' is a '||job_id as "Employee Details" from employees;

Employee Details

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

Abel is a SA_REP

Ande is a SA_REP

Atkinson is a ST_CLERK

例子:把人员表某些数据转换成insert语句,拷贝到其他数据库去执行,满足临时少量数据迁移的需求

SQL> select 'insert into employee(employee_id,last_name) values(' || employee_id || ',''' || last_name || ''');' as ttt from employees;

TTT

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

insert into employee(employee_id,last_name) values(174,'Abel');

insert into employee(employee_id,last_name) values(166,'Ande');

这里如果要显示字变量里面的单引号,那就使用两个单引号,也可以使用q操作符,同时还需要加上分割符号,可以是方框,问号,小括号,但是必须要配对。

例子:使用q操作符显示字变量里面的单引号

SQL> select department_name||q'[,it's assigned Manager Id: ]'||manager_id AS "Department and Manager" from departments;

Department and Manager

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

Administration,it's assigned Manager Id: 200

Marketing,it's assigned Manager Id: 201

这种方式平常用得少一些

9、使用distinct去掉重复的结果

使用select语句查询的结果默认显示所有的行,包括重复的行,可以使用distinct关键字去重。

例子:对比不使用与使用distinct的结果

SQL> select department_id from employees;

DEPARTMENT_ID

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

50

不使用distinct,结果有107行

SQL> select distinct department_id from employees;

DEPARTMENT_ID

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

100

使用distinct,结果只有12行

例子:distinct后面跟多个字段,表示多个字段联合起来唯一

SQL> select distinct department_id,manager_id from employees;

DEPARTMENT_ID MANAGER_ID

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

40 101

10、SQL开发环境

我们平常用得更多的SQL开发环境是PL/SQL Developer,这里介绍了Oracle自己的SQL Developer,我们简单看一下。

首先启动SQL Developer。

[root@Oracletest1 ~]# su - Oracle

[Oracle@Oracletest1 ~]$ export DISPLAY=192.168.230.1:0.0

[Oracle@Oracletest1 ~]$ cd /u01/app/oracle/product/11.2.0/dbhome_1/sqldeveloper/

[Oracle@Oracletest1 sqldeveloper]$ ./sqldeveloper.sh

新建连接。

输入连接名称、用户名、密码、服务器地址、端口及SID,点击“Test”,测试成功,点击“Connect”,进行连接。

就可以看到相关对象了。

这个SQL Developer功能和PL/SQL Developer差不多,平时用得也比较少,就不多讲了。

本文地址:http://www.cuug.com.cn/ocp/kecheng/12265719869.html 转载请注明!


在线预约 抢先报名 获取课程排期

Oracle培训机构

金牌讲师<>

冉乃纲-老师CUUG金牌讲师
冉老师 CUUG金牌讲师 Oracle及RedHat高级讲师、Unix/Linux 资深专家...[详细了解老师]

免费咨询上课流程 客服在线中

陈卫星-老师CUUG金牌讲师
陈老师 CUUG金牌讲师 精通Oracle管理、备份恢复、性能优化 11年Ora...[详细了解老师]

免费咨询上课流程 客服在线中

选学校如何选择适合自己的学校

CUUG -CHINA UNIX USER GROUP,是国际UNIX组织UNIFORUM的中国代表,是国内悠久的专业UNIX培训机构,被誉为中国UNIX 的摇篮。多年来,以提高教学质量为本,强调素质教育,积极引进、消化国外的新技术,有效的结合中国....[详情]

一站式服务(从入学到就业一帮到底)

入学

学习

就业

实操

食宿
关闭
海淀校区:北京市海淀区紫竹园路88号紫竹花园D座703(CUUG)
课程咨询:010-59426307 010-59426319 400-0909-964
企业服务:137 1818 8639(陈经理)
部分信息来源于网络,如有错误请联系指正!
微信:闻老师
微信:于老师
版权所有@北京神脑资讯技术有限公司 (CUUG,中国UNIX用户协会) Copyright 2016 ALL Rights Reserved 京ICP备11008061号-1