专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » sql语句:oracle9i学习心得之一 基本SQL语句 »正文

sql语句:oracle9i学习心得之一 基本SQL语句

来源: 发布时间:星期六, 2008年12月13日 浏览:695次 评论:0
1.SQL语句包括:

1) 数据查询:select
2) DML(data manipulation language):insert、update、delete、merge
3) DDL(data definition language):create、alter、drop、rename、truncate
4) 事务控制:commit、rollback、savepo
5) DCL(数据控制语言):grant、revoke

2.基本SELECT语句

SELECT * | {[DISTINCT] column [alias],...}
FROM table;

例:SELECT deptno,loc
FROM dept;

3.显示表结构

DESC[RIBE] tablename

4.表说明

1)雇员信息表(emp)

名称 是否为空? 类型
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)

2)部门表(dept)

名称 是否为空? 类型
DEPTNO NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)



3) 薪水等级表(salgrade)
名称 是否为空? 类型
GRADE NUMBER
LOSAL NUMBER
HISAL NUMBER



5.SELECT语句练习

例1:
SELECT * FROM dept;


结果:
DEPTNO DNAME LOC
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

...

例2:
SELECT deptno,loc
FROM dept;


结果:
DEPTNO LOC
10 NEW YORK
20 DALLAS
30 CHICAGO
40 BOSTON

...



6.执行SQL语句工具:


1)SQL*Plus工具
2)iSQL*Plus工具
3)PL/SQL Developer工具



7.算术表达式


使用+-*/可创建个数据型或日期型数据表达式


例1:

SELECT ename,sal,sal+300
FROM emp;
结果:
ENAME SAL SAL+300
SMITH 2000 2300
ALLEN 1600 1900
WARD 1250 1550
JONES 2975 3275
...
例2:
SELECT ename,sal,12*sal+100
FROM emp;
结果:
ENAME SAL 12*SAL+100
SMITH 2000 24100
ALLEN 1600 19300
WARD 1250 15100
JONES 2975 35800
...
例3:
SELECT ename,sal,12*(sal+100)
FROM emp;
结果:
ENAME SAL 12*(SAL+100)
SMITH 2000 25200
ALLEN 1600 20400
WARD 1250 16200
JONES 2975 36900
...

8.空值NULL


-不同于零或者空格
-是在种无效、未赋值、未知或不可用


例:
SELECT ename,job,sal,comm
FROM emp;
结果:
ENAME JOB SAL COMM
MARTIN SALESMAN 1250 1400
BLAKE MANAGER 2850
CLARK MANAGER 2450
TURNER SALESMAN 1500 0
ADAMS CLERK 1100

...

注:任何包含空值算术表达式运算后结果都为空值NULL
例:
SELECT ename,12*sal,12*sal+comm
FROM emp
WHERE ename='BLAKE';
结果:
ENAME 12*SAL 12*SAL+COMM
BLAKE 34200

9.列别名:


1)紧跟列名或在列名和别名之间加入可选关键字AS
2)如果别名包含空格或特殊关键或区分大小写则需要使用双引号


例1:
SELECT ename AS name,sal salary
FROM emp;
结果:
NAME SALARY
SMITH 2000
...

例2:
SELECT ename "Name",sal*12 "Annual Salary"
FROM emp;
结果:
Name Annual Salary
SMITH 24000
ALLEN 19200




10.连接操作符


1)用于列与列、列和之间连接
2)形式上是连个竖杠:||
3)用于创建表达式结果列

例:
SELECT ename||job AS "Employees"
FROM emp;
结果:
Employees
SMITHCLERK
ALLENSALESMAN
WARDSALESMAN
JONESMANAGER
...

4)原义串:
-是包含在SELECT列表中、数字或日期
-日期和字面值必须用单引号引起来
-每个串都会在每个数据行输出中出现



例:
SELECT ename||' is a '||job AS "Employees"
FROM emp;
结果:
Employees
SMITH is a CLERK
ALLEN is a SALESMAN
WARD is a SALESMAN
JONES is a MANAGER
...


11. 消除重复行


在SELECT子句中使用关键字DISTINCT可消除重复行

例:

SELECT DISTINCT deptno
FROM emp;







练习题


1.显示emp表结构



DESC emp



2.显示emp表中所有列数据



SELECT * FROM emp;



3.显示emp表雇员编号、雇员名、薪水信息



SEELCT empno,ename,sal
FROM emp;



4.显示emp表中不重复工作类别



SELECT DISTINCT job
FROM emp;

5.显示emp表中empno、sal*12、job它们对应别名为编号、年薪、工作类别

SELECT empno "编号",sal*12 "年薪",job "工作类别"
FROM emp;



6.显示emp表ename和sal列要求显示格式为:XXXX雇员薪水为XXX



SELECT ename ||'雇员薪水为 '||sal
FROM emp;

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: