标签:select sql
SELECT能干什么?
Projection:查询表中指定列。
Selection:查询表中指定行。
Join:表与表之间做连接,要查看的数据放在多张表中,并且表与表之间的数据有关系。
SELECT 语句的基本语法:
SELECT 关键字后指定需要显示的列。
FROM 关键字后面指定包含这些列的表。
为了演示SELECT命令,我们需要使用sqlplus登录到数据库。
切换到Oracle用户,用如下命令解锁scott用户并将密码设置成tiger
[root@11gdg1 ~]# su - oracle 11gdg1-> sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Tue Jul 14 09:59:36 2015 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> alter user scott account unlock identified by tiger; User altered.
以下所有演示都是使用scott用户,登录scott用户。
SQL> conn scott/tiger Connected.
示例一、选择所有列
SQL> select * from dept; DEPTNO DNAME LOC ---------- ------------------------------------------ --------------------------------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON
示例二、选择指定列
SQL> select deptno,dname from dept; DEPTNO DNAME ---------- ------------------------------------------ 10 ACCOUNTING 20 RESEARCH 30 SALES 40 OPERATIONS
列与列之间用逗号隔开,结果显示的顺序与SELECT后字段的顺序一致。
SQL语句编写规则
大小写不敏感。
语句可以占用一行或者多行。
关键字不能被省略,或者拆分成多行。
通常情况子句独占一行。
使用缩进增加语句的可读性。
在sqlplus或者其他工具中,每个语句结束需要加上一个分号。告诉客户端,你的语句结束了。
SELECT 可以在整形或者日期类型的字段上做算术运算
示例三、显示员工的姓名、工资及工资+300
SQL> select ename,sal,sal+300 from emp;
运算符的优先级
跟数学中的概念一样,乘除优先于加减,可以使用括号改变优先级
示例四、
SQL> select ename,sal,sal*12+300 from emp; ENAME SAL SAL*12+300 ------------------------------ ---------- ---------- SMITH 800 9900 ALLEN 1600 19500 WARD 1250 15300 JONES 2975 36000
SQL> select ename,sal,sal*(12+300) from emp; ENAME SAL SAL*(12+300) ------------------------------ ---------- ------------ SMITH 800 249600 ALLEN 1600 499200 WARD 1250 390000 JONES 2975 928200 MARTIN 1250 390000
NULL值
SQL> select ename,sal,comm from emp; ENAME SAL COMM ------------------------------ ---------- ---------- SMITH 800 ALLEN 1600 300 WARD 1250 500 JONES 2975 MARTIN 1250 1400 BLAKE 2850 CLARK 2450 SCOTT 3000 KING 5000 TURNER 1500 0 ADAMS 1100 JAMES 950 FORD 3000 MILLER 1300
我们看到COMM列下的数据有些是空着的。这个是一个特殊的值,我们称之为NULL。
null可以理解成一个不确定的、不可得的、未知的数。这个数不等于任何数,包含null自身。
null并不是0或者空格。
示例五、null作用于任何算术运算符后,其结果都是null
SQL> select ename,sal,sal+comm,sal-comm,sal*comm from emp; ENAME SAL SAL+COMM SAL-COMM SAL*COMM ------------------------------ ---------- ---------- ---------- ---------- SMITH 800 ALLEN 1600 1900 1300 480000 WARD 1250 1750 750 625000 JONES 2975 MARTIN 1250 2650 -150 1750000
列别名
SQL> select ename xingming,sal as gongzi,sal*12 "Annual salary" from emp; XINGMING GONGZI Annual salary ------------------------------ ---------- ------------- SMITH 800 9600 ALLEN 1600 19200 WARD 1250 15000
列连接
使用||将两个字符串连接起来。
SQL> select ename||job from emp; ENAME||JOB --------------------------------------------------------- SMITHCLERK ALLENSALESMAN
文字字符串,使用‘‘括起来
SQL> select ename||‘ is a ‘||job as "Employee Detail" from emp; Employee Detail --------------------------------------------------------------------------- SMITH is a CLERK ALLEN is a SALESMAN WARD is a SALESMAN
本文出自 “叮咚” 博客,请务必保留此出处http://lqding.blog.51cto.com/9123978/1686704
标签:select sql
原文地址:http://lqding.blog.51cto.com/9123978/1686704