提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
- sql的全称是结构化查询语言,即Structured Query Language。是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。sql由很少的关键字组成,每一句sql语句由一个或者多个关键字构成。
- sql语句可以分成3类:
DML(Data Manipulation Language:数据操纵语言):insert、delete、update、select
DDL(Data Definition Language:数据定义语言): create table、alter table、drop table、create index、drop index
DCL(Data Control Language:数据控制语言):grant、revoke、commit、bollback、savepoint、lock
一、select语句
1.查询所有列
select * from employees;//查询每个列,表名为employees
desc employees;//查询每个列的相关信息
2.查询某个或者某几个列
select employee_id,last_name,email from employees;//查询employee_id、last_name、email列
3.注意
- sql语言大小写不敏感
- sql可以写一行也可以写多行
select employee_id,last_name,email from employees
或者
select employee_id,last_name,email
from employees;
都可以
- 关键字不能被缩写或者分行
- 各子句一般分行写
- 使用缩进提高语句可读性
二、算数运算符
数字和日期使用的运算符:±*/
select 8*4 from dual;//dual表示伪表,没有具体表的时候使用;使用任何运算都要带上from
select last_name,salary,12*salary+1000 from employees;
select last_name,salary,12*salary+1000,12*(salary+1000) from employees;
select sysdate,sysdate+1,sysdate-2 from dual;//sysdate表示系统日期,日期可以做加减,但是不能做乘除
三、定义空值
- 空值是无效的,未指定的,未知的或者不可预知的值,不是空格或者0
- 空值不同于0,凡是空值参与的运算,结果都为空(null)
select employee_id,salary,commission_pct,salary*(1+commission_pct)
from employees;
四、列的别名
select employee_id id,last_name name,12*salary annual_sal from employees;//id为employee_id的别名,两者中间有空格,或者在两者中间加上as
select employee_id "id",last_name "Name" ,12*salary annual_sal from employees;//当别名由多个单词组成且中间有空格隔开的情况需要加双引号
五、连接符
把列于列,列于字符链接在一起,用“||”表示
select last_name||'`s job_id is'||job_id from employees;//相当于只有1列
select last_name||'`s job_id is'||job_id as details from employees;//别名
六、字符串
日期和字符只能在单引号中出现,sql中只有别名出现在双引号中
七、重复行
默认情况下,查询会返回全部行,包括重复行
select department_id from employees;
八、删除重复行
select distinct department_id from employees;
九、sql和sql*plus
- sql:一种语言;关键字不能缩写;使用语句控制数据库中的表的定义信息和表中的数据
- sql*plus:一种环境;oracle的特性之一;关键字可以缩写(ed=edit,desc=describe);命令不可以改变数据的值