一、sql简介
结构化查询语言(Structured Query Language)简称SQL(发音:/ˈɛs kjuː ˈɛl/ "S-Q-L"),结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
结构化查询语言包含以下几个部分:
(1) . 数据查询语言(DQL:Data Query Language):
其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。
(2) .数据操作语言(DML:Data Manipulation Language):
其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。
(3) 事务处理语言(TPL):
它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。
(4) 数据控制语言(DCL):
它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。
(5) 数据定义语言(DDL):
其语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。
二、sql的练习要使用的表
以下sql练习是基于以下几张表的,遂将表展示如下:
NO. | 字段 | 类型 | 描述 |
1 | EMPNO | NUMBER(4) | 雇员编号,为唯一编号 |
2 | ENAME | VARCHAR(10) | 雇员的姓名 |
3 | JOB | VARCHAR(9) | 表示工作的职位 |
4 | MGR | NUMBER(4) | 表示雇员的领导编号 |
5 | HIRDATE | DATE | 表示雇佣日期 |
6 | SAL | NUMBER(7,2) | 表示月薪 |
7 | COMM | NUMBER(7,2) | 表示奖金 |
8 | DEPTNO | NUMBER(2) | 部门编号 |
NO. | 字段 | 类型 | 描述 |
1 | DEPTNO | NUMBER(2) | 部门编号 |
2 | DNAME | VARCHAR(14) | 部门名称 |
3 | LOC | VARCHAR(13) | 部门位置 |
NO. | 字段 | 类型 | 描述 |
1 | GRADE | NUMBER | 等级名称 |
2 | LOSAL | NUMBER | 最低工资 |
3 | HISAL | NUMBER | 最高工资 |
NO | 字段 | 类型 | 描述 |
1 | ENAME | VARCHAR(10) | 雇员姓名 |
2 | JOB | VARCHAR(9) | 工资名称 |
3 | SAL | NUMBER | 雇员工资 |
4 | COMM | NUMBER | 雇员奖金 |
三、简单查询语句
简单查询语句的格式是:
select * | 具体的列 别名1. 查询emp表中所有的列
from 表名称
select * from emp
2. 如果只需要查询出emp表中雇员的编号、姓名、工作的话
select empno, ename, job from emp
3. 对查询结果中的列起别名
select empno 编号, ename 姓名, job 工作 from emp
4. 使用DISTINCT去掉查询结果中的重复列
select {DISTINCT} * | 具体的列 别名 form 表名称
但是,在消除重复列的时候,有一点必须说明,如果要同时查询多列,则必须保证所有的列都重复才能消除掉
5.格式化的显示查询结果
例如:要求查询出雇员的编号,姓名,工作,但是显示的格式
编号是:7369的雇员,姓名是:SMITH,工作是:CLERK
要想实现这样的功能,则可以使用ORACLE中提供的字符串连接操作,使用"||"表示。如果要加入一些显示信息的话,其他固定的信息要使用"'"括起来。
select '编号是:' || empno || '的雇员,姓名是:' || ename || ',工作是:' || job from emp显示结果为:
6. 在查询中也可以使用四则运算,例如:要求求出每个雇员的姓名及年薪
select ename,sal * 12 income from emp程序中可以支持+、-、*、/的语句,所有的语句有优先顺序,先乘除后加减...