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

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

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

转载于:https://www.cnblogs.com/visayafan/archive/2011/10/17/2215908.html

你可能感兴趣的文章
CentOS_6.8安装教程详解
查看>>
WordPress 性能优化:为什么我的博客比你的快
查看>>
python之路---模块和包
查看>>
关于gitblit在Windows中无法Start的问题
查看>>
开启Windows 7远程桌面功能的做法
查看>>
pyalgotrade入门
查看>>
SpringBoot+kafka+ELK分布式日志收集
查看>>
Django1.11 + Python3.6 + Mysql5.7 多次更新后数迁移无误,mysql更新失败
查看>>
机器学习:深入朴素贝叶斯分类算法原理及案例[阅读笔记]
查看>>
Android——点击对话框上按钮不关闭对话框
查看>>
pe结构讲解
查看>>
位运算符和位运算
查看>>
二维数组举例
查看>>
有1000瓶水,3个瓶子可以再换1瓶,一共可以喝多少瓶?
查看>>
hdu1020 Encoding
查看>>
font
查看>>
解决方案:ppt打不开,显示发现文件中的内容有问题。可尝试修复此演示文稿...
查看>>
linux部署二:网卡配置和Yum源的替换
查看>>
hdu_1864
查看>>
Hadoop 之 Hive创建内外部表
查看>>