博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Oracle】SQL学习笔记1---基本概念及SELECT语句及提取和排序数据
阅读量:6941 次
发布时间:2019-06-27

本文共 2639 字,大约阅读时间需要 8 分钟。

SQL01

Table of Contents

1 SQL注意事项

关键字大小写不敏感。

关键字不能缩写或分行写。
可以多行书写。
回车表新行
在SQL/Plus中每个SQL语句都以;结束 或/结束。

2 column heading default

缺省的heading display: UPPERCASE

数字右边对齐 字符串/日期左对齐

3 arithmetic expression

+ - * /SELECT name, salary + 300FROM employees;

结果显示出姓名列和salary列+300

4 Null value

unavailable unassigned unknow inapplicable

is not the same as zero or bankspace
算术表达式中若存在NULL则结果为0
字符串与NULL合并为原字符串本身

5 column alias

给字段名重新命名。

SELECT last_name name, commission_pct comm
FROM employee;
若有空格或想保持大小写则加双引号
SELECT last_name "Name", salary*12 "Annual Salary"
FROM employee;

6 concatenation operator

SELECT last_name || ' ' || job_id AS "Employees"

FROM employees;
把last_name列与job_id连接到Employees列。

7 literal character strings

character number data

必须用单引号括起来。
SELECT last_name || ' is a ' || job_id
AS "Employees Details" ####双引号用于保持空格 单引号用于字面常量字符串
FROM employees;
当字面常量中有'时可以用:
q['literal'] 或者{} <> ()

8 DISTINCT

去掉重复的列.

SELECT DISTINCT department_id
FROM employees;

9 DESCRIBLE

SQL*PLUS命令,可以简写,用desc即可

desc 列名、表名

10 WHERE

  1. 字符串和时间要用单引号引起来
  2. 默认日期格式 dd-mon-yy 日-月-年
    17-FEB-2010
  3. C语言是==判断 而 SQL中 = 是判断,SQL中无赋值概念所以把=保留字判断是否等于。
  4. BETWEEN … AND …
    包括两边的数 BETWEEN 1 AND 3 包括1和3
    可以是字符串:
    WHERE last_name BETWEEN 'King' AND 'Smith';
  5. IN(set)
    manager_id IN (1, 2, 3)
  6. LIKE
    _表示匹配一个字符
    %表示匹配多个字符
    若查询字符串中存在_或者%则必须转义
    ESCAPE 指定转义字符
    WHERE job_id LIKE '%SA_%' ESCAPE '\';
    WHERE job_id LIKE '%SA|_%' ESCAPE '|';
  7. IS NULL
  8. Substitution Variable 替换变量
    相当于C中的宏定义
    • & && 的区别
      & 每遇到&时就提示输入一次。
      &&所有相同的替换变量时只需要输入一次就可以了
    • 避免每次都输入可以用DEFINE命令

DEFINE  employee_num = 123;SELECT  employee_id, last_name, job_idFROM    employeesWHERE   employee_id = &employee_num;     --此时就不用再输入了
  • & &&每次输入的时候都会提示old、new,用VERIFY就可以使其不显示。

SQL> set VERFITY
  • 使用 SQL只是简单地把&名字替换成你的输入,所以要输入字符串必须用单引号。

SELECT  employee_id, last_name, job_idFROM    employeesWHERE   employee_id = &employee_num;
SELECT  employee_id, last_name, job_idFROM    employeesWHERE   job_id = '&job_title';
  1. ORDER BY
    • 按照指定列排序,默认是升序排序。

SELECT       employee_id, last_name, job_idFROM         employeesORDER BY     hire_date;
  • 可以DESC (descent) 来降序排列。

SELECT       employee_id, last_name, job_idFROM         employeesORDER BY     hire_date DESC;
  • 按别名排序。

SELECT       employee_id, last_name, salary*12 as annsal;FROM         employeesORDER BY     annsal;
  • 用数字来表示SELECT中列

SELECT       employee_id, last_name, job_idFROM         employeesORDER BY     3;
  • 按多列排序

SELECT       employee_id, last_name, job_idFROM         employeesORDER BY     hire_date, last_name DESC;  --先按hire_date升序排列,再按last_name降序排序
  • 关于NULL值
    默认:升序NULL在最后,降序NULL在最开始。
    可以手动改变规定NULL的位置: NULLS FIRST or NULLS LAST

Author: visaya fan

Date: 2011-10-17 22:17:10

HTML generated by org-mode 6.33x in emacs 23

转载地址:http://fhnnl.baihongyu.com/

你可能感兴趣的文章
Unity自动保存场景脚本
查看>>
Java springboot B2B2C o2o多用户商城 springcloud架构(十六)用restTemplate消费服务
查看>>
5种必知的大数据处理框架技术
查看>>
详解java开发环境的配置
查看>>
随记:Linux更改yum源
查看>>
iOS生成二维码
查看>>
DNS基本工作原理,及正反向解析和主从同步测试
查看>>
安装Nginx
查看>>
在树莓派2/B+上安装Python和OpenCV
查看>>
有意思的python***案例
查看>>
PHP Warning 报“timezone”错
查看>>
思科CCIE证书真伪、有效性查询方式
查看>>
局域网内搭建 本地yum 源
查看>>
golang: 常用数据类型底层结构分析
查看>>
How to Set Cores-Per-Socket Parameter for a Virtual Machine
查看>>
我的友情链接
查看>>
如何做出一个弹出窗口
查看>>
solidity 0.5.7简明教程
查看>>
你好啊中国
查看>>
冯柯:同步设计在高性能OLTP数据库中的实践
查看>>