回 帖 发 新 帖 刷新版面

主题:[转帖]sql语句编程手册(实用+练习)

一、SQL PLUS  
1 引言  

SQL命令  
以下17个是作为语句开头的关键字:  
alter  drop  revoke  
audit  grant  rollback*  
commit*  insert  select  
comment  lock  update  
create  noaudit  validate  
delete  rename  
这些命令必须以“;”结尾  
带*命令句尾不必加分号,并且不存入SQL缓存区。  

SQL中没有的SQL*PLUS命令  
这些命令不存入SQL缓存区  
@  define  pause  
#  del  quit  
$  describe  remark  
/  disconnect  run  
accept  document  save  
append  edit  set  
break  exit  show  
btitle  get  spool  
change  help  sqlplus  
clear  host  start  
column  input  timing  
compute  list  ttitle  
connect  newpage  undefine  
copy  

---------  
2 数据库查询  

数据字典  
TAB 用户创建的所有基表、视图和同义词清单  

DTAB 构成数据字典的所有表  

COL 用户创建的基表的所有列定义的清单  

CATALOG 用户可存取的所有基表清单  

select * from tab;  

describe命令 描述基表的结构信息  
describe dept  

select *  
from emp;  

select empno,ename,job  
from emp;  

select * from dept  
order by deptno desc;  

逻辑运算符  
= !=或<> > >= < <=  
in  
between value1 and value2  
like  
%  
_  
in null  
not  
no in,is not null  

谓词in和not in  
有哪些职员和分析员  
select ename,job  
from emp  
where job in ('clerk','analyst');  

select ename,job  
from emp  
where job not in ('clerk','analyst');  

谓词between和not between  
哪些雇员的工资在2000和3000之间  
select ename,job,sal from emp  
where sal between 2000 and 3000;  

select ename,job,sal from emp  
where sal not between 2000 and 3000;  

谓词like,not like  
select ename,deptno from emp  
where ename like 'S%';  
(以字母S开头)  
select ename,deptno from emp  
where ename like '%K';  
(以K结尾)  
select ename,deptno from emp  
where ename like 'W___';  
(以W开头,后面仅有三个字母)  
select ename,job from emp  
where job not like 'sales%';  
(哪些雇员的工种名不以sales开头)  

谓词is null,is not null  
没有奖金的雇员(即commision为null)  
select ename,job from emp  
where comm is null;  

select ename,job from emp  
where comm is not null;  

多条件查询  
select ename,job  
from emp  
where deptno=20  
and job!='clerk';  

表达式  
+ - * /  

算术表达式  
选择奖金高于其工资的5%的雇员  
select ename,sal,comm,comm/sal from emp  
where comm>.05*sal  
  order by comm/sal desc;  

日期型数据的运算  
add two days to 6-Mar-87  
6-Mar-87 + 2 = 8-Mar-87  
add two hours to 6-Mar-87  
6-Mar-87 + 2/24 = 6-Mar-87 and 2hrs  
add 15 seconds to 6-Mar-87  
6-Mar-87 + 15/(24*60*60) = 6-Mar-87 and 15 secs  

列名的别名  
select ename employee from emp  
  where deptno=10;  
(别名:employee)  
select ename,sal,comm,comm/sal "C/S RATIO" from emp  
  where comm>.05*sal  
  order by comm/sal desc;  

SQL命令的编辑  
list or l 显示缓冲区的内容  
list 4 显示当前SQL命令的第4行,并把第4行作为当前行,在该行号后面有个*。  
change or c 用新的内容替换原来在一行中第一次出现内容  
SQL>c/(...)/('analyst')/  
input or i 增加一行或多行  
append or a 在一行后追加内容  
del  删除当前行 删除SQL缓冲区中的当前行  
run  显示并运行SQL缓冲区中的命令  
/  运行SQL缓冲区中的命令  
edit  把SQL缓冲区中的命令写到操作系统下的文本文件,  
并调用操作系统提供的编辑器执行修改。  

-------------  
3 数据操纵  
数据的插入  
insert into dept  
  values (10,'accounting','new york');  

insert into dept (dname,deptno)  
  values ('accounting',10);  

从其它表中选择插入数据  
insert into emp (empno,ename,deptno)  
select id,name,department  
from old_emp  
where department in(10,20,30,40);  

使用参数  
insert into dept  
  values(&deptno,&dname,&loc);  
执行时,SQL/PLUS对每个参数将有提示用户输入  

参数对应日期型或字符型数据时,可在参数上加引号,输入时就可不用引号  
insert into dept  
  values(&deptno,'&dname','&loc');  

插入空值(NULL)  
insert into dept  
  values(50,'education',null);  

插入日期型数据  
日期型数据缺省格式:DD-MON-YY  
insert into emp  
(empno,ename,hiredate)  
values(7963,'stone','07-APR-87');  

系统时间:SYSDATE  
insert into emp  
(empno,ename,hiredate)  
values(7600,'kohn',SYSDATE);  

数据更新  
update emp  
set job='manager'  
where ename='martin';  

update emp  
set job='market rep'  
where ename='salesman';  

update emp  
set deptno=40,job='market rep'  
where job='salesman';  

数据删除  
delete emp  
where empno=765;  

更新的提交  
commit  

自动提交方式  
set autocommit on  
如果状态设为开,则使用inesrt,update,delete会立即提交。  

更新取消  
rollback  

两次连续成功的commit之间的操作,称为一个事务  

---------------  
4  创建基表、视图  
创建基表  
create table dept  
(deptno number(2),  
dname char(14),  
loc char(13));  

数据字典会自动更新。  
一个基表最多254列。  

表名列名命名规则:  
限制  
第一个字符必须是字母,后面可任意(包括 $ # _ 但不能是逗号)。  
名字不得超过30个字符。  

唯一  
某一用户的基表名必须唯一,不能是ORACLE的保留字,同一基表的列名互不相同。  

使用双引号  
如果表名用双引号括起来,则可不满足上述规则;  
只有使用双引号,才能区别大、小写;  
命名时使用了双引号,在以后的操作也必须使用双引号。  

数据类型:  
char(n)    (不得超过240字符)  
number(n,d)  
date  
long    (最多65536字符)  
raw    (二进制原始数据)  

空值处理  
有时要求列值不能为空  
create table dept  
(deptno number(2) not null,  
dname char(14),  
loc char(13));  

在基表中增加一列  
alter table dept  
add (headcnt number(3));  

修改已有列属性  
alter table dept  
modify dname char(20);  
注:只有当某列所有值都为空时,才能减小其列值宽度。  
只有当某列所有值都为空时,才能改变其列值类型。  
只有当某列所有值都为不空时,才能定义该列为not null。  
例:  
alter table dept modify (loc char(12));  
alter table dept modify loc char(12);  
alter table dept modify (dname char(13),loc char(12));  

创建视图  
create view managers as  
select ename,job,sal  
from emp  
where job='manager';  
为视图列名取别名  
create view mydept  
(person,title,salary)  
as select ename,job,sal  
from emp  
where deptno=10;  

with check option选项  
使用with check option,保证当对视图插入或更新数据时,  
该数据必须满足视图定义中select命令所指定的条件。  
create view dept20 as  
select ename,job,sal,deptno  
from emp  
where deptno=20  
with check option;  
在做下述操作时,会发生错误  
update dept20  
set deptno=30  
where ename='ward';  

基表、视图的拷贝  
create table emp2  
as select * from emp;  

基表、视图的删除  
drop table 表名  
drop view 视图名  

回复列表 (共45个回复)

31 楼

厉害,这手册很实用!

32 楼

dingdingding

33 楼

谢谢借鉴了

34 楼

正在学Access呢,谢谢楼主拉~~~

35 楼

good

36 楼

提供计算机专业视频教程,邮政特快全国三天内送到你手中.
联系方式:电话13576145612 QQ:108410943 E-mail:ncncldjjg@126.com
1、Oracle9iOCP(Oracle认证专家DBA)视频教程 ChinaITLab主讲(23CD)
2、SQL语言、数据挖掘、SQLServer2000视频教程 某高校教授主讲(6CD)
3、VC++6.0开发详解视频教程 孙鑫主讲(8CD)
4、C语言详解视频教程 某高校教授主讲 大小:5CD
5、java语言详解视频教程 孙鑫主讲(12CD)
6、java开发技术详解视频教程 张孝详主讲(21CD)
7、J2EE Web程序开发定向班/Java就业班完整版 ChinaITLab主讲(12CD) 
8、JAVA/JSP实例系列视频教程 马士兵主讲(6CD)
9、UNIX系统原理视频教程 某高校教授主讲 大小:3CD(重点推荐)
10、Linux内核编程入门视频教程 由尚德主讲(11CD)
11、Linux软件开发工程师视频教程 ChinaITLab主讲(3CD)
12、Linux配置、管理、优化实战工程师视频教程 ChinaITLab主讲(8CD)
13、MCSE(微软认证系统工程师)认证视频教程 北京科海主讲(11CD)
14、WindowsServer2003即学即会(6CD)
15、大学数学[离散、线性代数、概率与数据统计、高数] 某高校教授主讲(22CD)
16、清华大学计算机专业多媒体教程(数据结构、汇编、编译原理等)(13CD)

37 楼

低价提供计算机专业视频教程,所有教程由业内名家讲解,
物超所值,保证所有视频高清晰格式,邮政特快全国三天内送到你手中.
联系方式:手机:13576145612(手机联系佳)  QQ:108410943 
E-mail:ncncldjjg@126.com
1、Oracle9iOCP(Oracle认证专家DBA)视频教程(23CD)
2、SQL语言、数据挖掘、SQLServer2000视频教程(6CD)
3、计算机网络原理视频教程(4CD)
4、计算机实用组网技术视频教程(3CD)
5、MCSE(微软认证系统工程师)认证视频教程(11CD)
6、windows2003即学即会视频教程(6CD)
7、J2EE Web程序开发定向班/Java就业班视频教程
   (java基础jsp核心技术UML设计)(13CD)
8、赛迪网校J2EE基础高级案例分析视频教程(9CD)
9、马士兵J2SE入门与精通(含坦克大战、BBS实例)视频教程(6CD)
10、孙鑫java语言深入详解视频教程(12CD)
11、张效详java技术从入门到精通视频教程(21CD)
12、张效详javascript全接触视频教程(13CD)
13、code365网站源程序(9CD)
14、unix原理视频教程(3CD)
15、Linux软件开发工程师(C语言)视频教程(4CD)
16、Linux配置、管理、优化实战工程师视频教程(8CD)
17、Linux内核编程视频教程(11CD)
18、C语言详解视频教程(2CD)
19、孙鑫VC++6.0开发技术术详解视频教程(6CD)
20、ASP.NET中文视频教程(3CD)
21、洪恩C#入门多媒体教程(1CD)
22、XML技术视频教程(2CD)
23、吉大操作系统视频教程(3CD)
24、吉大网络技术基础视频教程(2CD)
25、吉大数据结构视频教程(5CD)
26、清华大学计算机专业多媒体教程(数据结构、汇编、编译原理等)(13CD)
27、大学数学[离散数学线性代数概率与数理统计微积分]视频教程(22CD)
28、LearnKey Asp.Net (老外用英语讲课)(13CD)
29、LearnKey Asp.Net Webservice(老外用英语讲课)(5CD)
30、AppDev Asp.Net2.0 UsingC# (老外用英语讲课)(1CD)
31、APPDev .Net Framework(老外用英语讲课)(2CD)
32、林清安pro/e2001(野火版)视频教程(18CD)
33、深圳大学3D设计视频教程(4CD)
34、3DMAX建模视频教程(老外用英语讲课)(6CD)
35、3DMAX纹理与贴图材质灯光视频教程(老外用英语讲课)(5CD)
36、3DMAX格式500个常用模型库(4CD)
37、lightscape基础入门视频教程(2CD)
38、聚光制造(lightscape3.2入门与精通视频教程)(4CD)
39、coreldraw12中文版入门与精通swf格式视频教程(2CD)

38 楼

好东西

39 楼

程序员总结开发的java jsp学习资料、实战项目源程序代码

资料:

1.JSP编程技巧集锦139篇                      
2.ASP编程技巧集锦(一个问题一段代码)             
3.JavaScript编程技巧集锦(一个问题一段代码)  

java jsp实战源程序代码:
                                 
4. 办公自动化管理(OA)系统(web版 全套源码 安装即用)
5. 企业产供销管理(ERP)系统(web版 全套源码 安装即用)
6. 网上(在线)书店管理系统(web版 全套源码 安装即用)
7. 学生成绩管理系统(web版 全套源码 安装即用)
8. 新闻发布管理系统(web版 全套源码 安装即用)
9. 学生选课管理系统(web版 全套源码 安装即用)
10.超市信息管理系统(web版 全套源码 安装即用)
11.客户关系管理(CRM)系统(web版 全套源码 安装即用)
12.宾馆酒店管理系统(web版 全套源码 安装即用)
13.学生信息管理系统(web版 全套源码 安装即用)

联系方式   
     
e_mail:fzlotuscn@yahoo.com.cn    QQ:595563946 

掏宝地址: http://shop34556665.taobao.com

40 楼

有些在sql server 2000中不能通过

我来回复

您尚未登录,请登录后再回复。点此登录或注册