***********************************************声明*********************************************************************** 

原创作品,出自 “深蓝的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的简单查询的更多相关文章

  1. T-SQL简单查询语句

    简单查询: 1.最简单查询(查所有数据)select * from 表名: 注:* 代表所有列select * from info 2.查询指定列select code,name from info ...

  2. MySQL数据库6 -查询基础,简单查询,条件查询,对查询结果排序

    一.SELECT语句 SELECT COL1,COL2,....COLn FROM TABLE1,TABLE2,....TABLEn [WHERE CONDITIONS] -- 查询条件 [GROUP ...

  3. Mongo简单查询总结

    mongo 简单查询db.ansheng.findOne()//返回第一条匹配到的数据db.ansheng.findOne({"aaaaa":4})db.ansheng.find( ...

  4. Linq的简单查询

    Ling的简单查询,记在这里防止忘记,以便随时能够查看 List<int> intArr = new List<int>(); || i == select i; List&l ...

  5. Oracle单表的简单查询

    Oracle单表的简单查询 查看表结构 desc emp; 查询所有列 Select * from emp; 查找所以部门编号(查指定的列) select deptnofrom emp; 查找编号不同 ...

  6. Oracle多表的简单查询

    Oracle多表的简单查询 .多表查询 多表查询是指基于两个和两个以上的表或是视图的查询. 问题:显示雇员名,雇员工资及所在部门的名字[笛卡尔集]? select t.ename,t.sal,t1.d ...

  7. Oracle笔记(1) 简单查询、限定查询、数据的排序

    Oracle笔记(四) 简单查询.限定查询.数据的排序   一.简单查询 SQL(Structured Query Language) 结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及 ...

  8. LINQ to Sql系列二 简单查询和联接查询

    这一篇文章主要总结LINQ to sql的简单查询(单表查询)和联接查询(多表查询) 单表查询 需求是我们要输出TClass表中的结果.使用了from-in-select语句,代码如下: public ...

  9. SQL CRUD 简单查询

    identity 自增长 primary key 主键 unique 唯一键 not null 非空 references 外键(引用) 1.删除表 drop table Student 2.修改表 ...

随机推荐

  1. Gulp实现服务器

    Gulp实现web服务器 Gulp实现web服务器 阅读目录 一:gulp实现web服务器配置: 二:添加实时刷新(livereload)支持 回到顶部 一:gulp实现web服务器配置: 对于前端开 ...

  2. 解决Ubuntu和Windows该文件乱码问题

    1.转换文件内容编码    Windows在自然纯文本文件.当中国作为编码GBK,在Ubuntu下乱码,可以使用iconv命令转换:    iconv -f gbk -t utf8 source_fi ...

  3. IIS的WebGarden、WebFarm和StateServer

    开启IIS的WebGarden.WebFarm和StateServer之旅 前言 公司系统虽然配置有1台NLB后拖4台App Server最后搭一台强劲无比的DB Server,但每天下午4点左右总被 ...

  4. java中途强制跳出递归

    有些时候我们需要在中途强制跳出递归,而且还是需要一步跳出,而不一层一层的跳出,这时,我们可以采用抛异常的方法来实现. class Test { static class StopMsgExceptio ...

  5. HTML学习_01

    html总结 html是一门标记语言,也就是不经过编译就能直接执行的语言,不像是c/c++/java等等须要转换成二进制码, html是一门最主要的学科,提供了一个框架,提供了各种标签和规则,使得语言 ...

  6. Codeforces Round #264 (Div. 2) C Gargari and Bishops 【暴力】

    称号: 意甲冠军:给定一个矩阵,每格我们有一个数,然后把两个大象,我希望能够吃的对角线上的所有数字.我问两个最大的大象可以吃值. 分析:这种想法是暴力的主题,计算出每一格放象的话能得到多少钱,然后求出 ...

  7. ant利用先进,ant订单具体解释,ant包,ant包装删除编译jar文件

    在日常的项目开发,经常需要我们可以打包测试.特别是,开发环境是windows.实际情况是linux. 这样的话.一个非常大的程序猿将包,其中将包,这些软件包可能非常大,这里是真正的代码会改变的一部分, ...

  8. 理解JavaScript的闭包

    在JS这块,免不了被问什么是闭包. 从一个常见的循环问题说起. 有一个ul列表, 里面有5个li标签,我希望点击每个li标签的时候,弹出每个li标签对应的索引值(第一个弹出0,第二个弹出1...). ...

  9. [LeetCode145]Binary Tree Postorder Traversal

    题目: Given a list, rotate the list to the right by k places, where k is non-negative. For example:Giv ...

  10. 构造函数为什么不能为虚函数 &amp; 基类的析构函数为什么要为虚函数

    一.构造函数为什么不能为虚函数 1. 从存储空间角度,虚函数相应一个指向vtable虚函数表的指针,这大家都知道,但是这个指向vtable的指针事实上是存储在对象的内存空间的.问题出来了,假设构造函数 ...