SQL_sql的简单查询
***********************************************声明***********************************************************************
原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任。
深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/39907707
****************************************************************************************************************************
过于简单的sql,此处就不再列举了,下面列举的已经为比較简单的基础查询操作:
在查询语句中选择指定的列就是关系数据库中所称的投影(project)。
因为字符集的不同使日期型显示往往出现故障,能够通过以下来设置:
SQL> alter session set NLS_DATE_LANGUAGE='AMERICAN';
【补充】字符集查询:
[oracle@master1 db_home]$ export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
--环境变量设置,格式:语言_地域(文化)_字符集
SQL> col name for a30
SQL> col value$ for a30
SQL> set linesize 200
SQL> set pagesize 200
SQL> select name,value$ from props$ where name like '%NLS%';
win下查看是这个:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
NAME VALUE$
------------------------------ ------------------------------
NLS_LANGUAGE AMERICAN --语言
NLS_TERRITORY AMERICA --地域
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET ZHS16GBK
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_RDBMS_VERSION 10.2.0.1.0
注意:解决这个问题的原则,client的字符集和oracle 数据库的字符集保持一致
补充完成。
在sql查询中遵循下面规律:
字符和日期型数据位左对齐;
数字型数据为右对齐;
SQL查询中的算术表达式:超级简单!
例1:算术表达式
SQL> select empno,ename,sal,500+sal from emp;
EMPNO ENAME SAL 500+SAL
----- ---------- --------- ----------
7369 SMITH 800.00 1300
7499 ALLEN 1600.00 2100
7521 WARD 1250.00 1750
7566 JONES 2975.00 3475
7654 MARTIN 1250.00 1750
7698 BLAKE 2850.00 3350
7782 CLARK 2450.00 2950
7788 SCOTT 3000.00 3500
7839 KING 5000.00 5500
7844 TURNER 1500.00 2000
7876 ADAMS 1100.00 1600
7900 JAMES 950.00 1450
7902 FORD 3000.00 3500
7934 MILLER 1300.00 1800
14 rows selected
例2:算术表达式:优先级推断
SQL> select empno,ename,500+sal*12 from emp;
EMPNO ENAME 500+SAL*12
----- ---------- ----------
7369 SMITH 10100
7499 ALLEN 19700
7521 WARD 15500
7566 JONES 36200
7654 MARTIN 15500
7698 BLAKE 34700
7782 CLARK 29900
7788 SCOTT 36500
7839 KING 60500
7844 TURNER 18500
7876 ADAMS 13700
7900 JAMES 11900
7902 FORD 36500
7934 MILLER 16100
14 rows selected
由例1、例2简单总结出优先级的规律为:
1、先乘除、后加减
2、优先级次序为自左向右
3、括号里优先
4、多重括号,内层括号运算最为优先
别名的设置
例3:
SQL> select empno as "employee number", ename name,(500+sal)*12 "annual salary" from emp;
employee number NAME annual salary
--------------- ---------- -------------
7369 SMITH 15600
7499 ALLEN 25200
7521 WARD 21000
7566 JONES 41700
7654 MARTIN 21000
7698 BLAKE 40200
7782 CLARK 35400
7788 SCOTT 42000
7839 KING 66000
7844 TURNER 24000
7876 ADAMS 19200
7900 JAMES 17400
7902 FORD 42000
7934 MILLER 21600
14 rows selected
别名:
对于列名须要加入keyword“as”
对于表达式,直接在其后加入就可以,很easy
连接运算符让显示更易读
例4:使用分隔符
SQL> select ename || ' annual salary ' || (500+sal)*12 "employee's salary" from emp;
employee's salary
SMITH annual salary 15600
ALLEN annual salary 25200
WARD annual salary 21000
JONES annual salary 41700
MARTIN annual salary 21000
BLAKE annual salary 40200
CLARK annual salary 35400
SCOTT annual salary 42000
KING annual salary 66000
TURNER annual salary 24000
ADAMS annual salary 19200
JAMES annual salary 17400
FORD annual salary 42000
MILLER annual salary 21600
例5:假设认为还不够直观的话,让我们变成中文,看看效果例如以下:
SQL> select ename || ' 年薪金额为: ' || (500+sal)*12 "员工2014年年薪" from emp;
员工2014年年薪
SMITH 年薪金额为: 15600
ALLEN 年薪金额为: 25200
WARD 年薪金额为: 21000
JONES 年薪金额为: 41700
MARTIN 年薪金额为: 21000
BLAKE 年薪金额为: 40200
CLARK 年薪金额为: 35400
SCOTT 年薪金额为: 42000
KING 年薪金额为: 66000
TURNER 年薪金额为: 24000
ADAMS 年薪金额为: 19200
JAMES 年薪金额为: 17400
FORD 年薪金额为: 42000
MILLER 年薪金额为: 21600
小结:
在让显示结果更易读时,常用连接运算符“||”以达到预期的效果。字符串与连接运算符的搭配使用在工作中非经常见,这会使数据更易读。
去重的考虑:DISTINCT运算符
格式:select *|{[distinct] 列表,...} from 表名;
列表的格式为:列名|表达式[别名]
select * from 表名:从表名所指定的表中选择全部的列
select distinct 列表 ... from 表名:为从表名所指定的表中选择列表所规定的列,但不显示反复的数据行(或记录)。
例6:在emp表内查询部门号时,会出现所有的信息,数据量小还能够,假设数据量变得巨大以后,那将变得非常难筛选出实用的信息来。
SQL> select deptno from emp;
DEPTNO
------
20
30
30
20
30
30
10
20
10
30
20
30
20
10
14 rows selected
下面使用distinct命令,例如以下所看到的:
SQL> select distinct deptno from emp;
DEPTNO
------
30
20
10
但这种方法,我们并不建议使用,由于这个distinct完毕的是两个步骤,会先排序,然后从中筛选反复值。能够预见,假设在一张大表里的话,效率将会是很低的。假设想要去重的话,我们能够使用group分组,来完毕去重的目的。
为了实现去重的目的,我们能够这样运行语句,例如以下所看到的:
SQL> select deptno from emp group by deptno;
DEPTNO
------
30
20
10
***********************************************声明***********************************************************************
原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任。
深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/39907707
****************************************************************************************************************************
SQL_sql的简单查询的更多相关文章
- T-SQL简单查询语句
简单查询: 1.最简单查询(查所有数据)select * from 表名: 注:* 代表所有列select * from info 2.查询指定列select code,name from info ...
- MySQL数据库6 -查询基础,简单查询,条件查询,对查询结果排序
一.SELECT语句 SELECT COL1,COL2,....COLn FROM TABLE1,TABLE2,....TABLEn [WHERE CONDITIONS] -- 查询条件 [GROUP ...
- Mongo简单查询总结
mongo 简单查询db.ansheng.findOne()//返回第一条匹配到的数据db.ansheng.findOne({"aaaaa":4})db.ansheng.find( ...
- Linq的简单查询
Ling的简单查询,记在这里防止忘记,以便随时能够查看 List<int> intArr = new List<int>(); || i == select i; List&l ...
- Oracle单表的简单查询
Oracle单表的简单查询 查看表结构 desc emp; 查询所有列 Select * from emp; 查找所以部门编号(查指定的列) select deptnofrom emp; 查找编号不同 ...
- Oracle多表的简单查询
Oracle多表的简单查询 .多表查询 多表查询是指基于两个和两个以上的表或是视图的查询. 问题:显示雇员名,雇员工资及所在部门的名字[笛卡尔集]? select t.ename,t.sal,t1.d ...
- Oracle笔记(1) 简单查询、限定查询、数据的排序
Oracle笔记(四) 简单查询.限定查询.数据的排序 一.简单查询 SQL(Structured Query Language) 结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及 ...
- LINQ to Sql系列二 简单查询和联接查询
这一篇文章主要总结LINQ to sql的简单查询(单表查询)和联接查询(多表查询) 单表查询 需求是我们要输出TClass表中的结果.使用了from-in-select语句,代码如下: public ...
- SQL CRUD 简单查询
identity 自增长 primary key 主键 unique 唯一键 not null 非空 references 外键(引用) 1.删除表 drop table Student 2.修改表 ...
随机推荐
- C# 隐藏 Windows Phone 侦错模式中萤幕右上角的数据条(模拟器、实机可用),截图好方便。
原文:C# 隐藏 Windows Phone 侦错模式中萤幕右上角的数据条(模拟器.实机可用),截图好方便. 一般我们在开发Windows Phone App时,会使用模拟器或是实体的手机开发,在Vi ...
- 【原创翻译】认识MVC设计模式:web应用开发的基础(实际编码篇)
原文地址:http://www.larryullman.com/2009/10/15/understanding-mvc-part-3/ 全系列INDEX [原创翻译]认识MVC设计模式:web应用开 ...
- 新浪微博id的62进制转换
某条微博链接 某条微博的链接如下,同样省略了后面的无关参数 http://weibo.com/2803301701/CeaOU15IT CeaOU15IT为这条微博的mid,与之相对应的还有一个id, ...
- IntelliJ IDEA 问题总结之中的一个 —— jar包、assets、maven、git
因为工作须要,这几天開始弃用eclipse,换idea.用了几天,idea确实有些地方比較方便.可是麻烦也是不少.并且网上相应的资料并没有eclipse那么多,非常多都是自己琢磨解决的,所以想弄个帖子 ...
- ABP-N层架构
ABP理论学习之N层架构 返回总目录 自从写这个系列博客之后,发现很多园友还是希望有个直接运行的demo,其实在github上就有官方的demo,我直接把这demo的链接放到这里吧,另外,我分析, ...
- 2015-12-1 Visual Studio 2015 Update 1发布
http://news.cnblogs.com/n/533856/ 下载地址 文件名 cn_visual_studio_enterprise_2015_with_update_1_x86_x64_dv ...
- 构建安全的Xml Web Service系列之SSL篇
原文:构建安全的Xml Web Service系列之SSL篇 首先介绍一下SSL, SSL 的英文全称是 "Secure Sockets Layer" ,中文名为 "安全 ...
- 最简单的视音频播放演示样例8:DirectSound播放PCM
===================================================== 最简单的视音频播放演示样例系列文章列表: 最简单的视音频播放演示样例1:总述 最简单的视音频 ...
- Android ListView分页载入(服务端+android端)Demo
Android ListView分页载入功能 在实际开发中经经常使用到,是每一个开发人员必须掌握的内容,本Demo给出了服务端+Android端的两者的代码,并成功通过了測试. 服务端使用MyEcli ...
- Java线程学习笔记(一个)
一个.正在创建的线程: 老掉牙的话题了.继承 java.lang.Thread父类或者实现Runnalbe接口.这里就提一句: class Thread implements Runnable Thr ...