SQL基础Word格式.docx
- 文档编号:7461338
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:14
- 大小:1.36MB
SQL基础Word格式.docx
《SQL基础Word格式.docx》由会员分享,可在线阅读,更多相关《SQL基础Word格式.docx(14页珍藏版)》请在冰点文库上搜索。
v_col,phonefrom&
v_tabwhere&
v_col=&
v_val;
SETVERIFYON|OFF控制输出内容是否包含变量替换
SETDIFINE‘字符’定义变量标识符
SETDIFINE‘#’
DEFINE变量=值可以定义变量,用DEFINE可查询系统中所有已定义的变量
DEFINEv_col=customer_id;
UNDEFINE变量可以删除已定义变量
UNDEFINEv_col
ACCEPT变量名[type][FORMATformat][PROMPTprompt][HIDE]:
交互式定义变量
ACCEPTv_idnumberformat99prompt'
用户ID'
ACCEPTv_passwordCHARPROMPT'
Password:
'
HIDE
SQL语句
⏹SQL是一种介于关系代数与关系演算之间的结构化查询语言。
SQL是一个通用的、功能极强的数据库语言。
⏹SQL集数据查询(dataquery)、数据操作(datamanipulation)、数据定义(datadefinition)、数据控制(datacontrol)于一体。
⏹SQL语言包括的内容
1.SQLDDL(datadefinition):
定义关系模式、删除关系、建立索引以及修改关系模式;
2.SQLDML(datamanipulation):
查询、插入、删除和修改;
3.嵌入式DML:
嵌入在Pascal、C等宿主语言;
4.视图定义:
创建视图;
5.权限管理:
对关系和视图的访问进行授权;
6.完整性:
定义数据必须满足的完整性约束条件;
7.事务控制(datacontrol):
定义事务的开始、提交、和结束等。
背景知识:
scott用户所有的table的结构
EMPNO:
编号,number
ENAME:
姓名,varchar2
JOB:
职位,varchar2
MGR:
上级,number
HIREDATE:
雇佣日期,date
SAL:
工资number
COMM:
佣金number
DEPTNO:
部门代号number
DNAME:
部门名称varchar2
LOC:
部门位置varchar2
GRADE:
工资级别number
LOSAL:
该级别的最低工资number
HISAL:
该级别的最高工资number
简单查询
投影查询(projectselect)
语法:
SELECT[DISTINCT]*|表达式|列名别名,列名别名…FROM表名别名;
SELECT*FROMemp;
SELECT2+3FROMemp;
解释:
返回14行,原因是该表有14行数据,为了简便输出,我们使用dual表,dual是系统内置表,专门用来存放表达式数据,写法是:
SELECT2+3FROMdual;
SELECT2+3RESULTFROMdual;
可以使用别名
问题:
显示所有员工的编号,职务和工资
SELECTempno,job,salFROMemp;
显示所有员工的编号,职务和年薪
SELECTempno,job,sal*12“salofyear”FROMemp;
字段可以参与表达式运算,“”一般不使用,当别名需要保持原始状态,需要加。
显示员工信息如下格式:
员工编号:
XXX员工姓名:
XXX员工工资:
XXX
SELECT‘员工编号:
’||empno||’员工姓名:
’||ename||’员工工资:
’||sal员工信息FROMemp;
||代表两个字符串的合并
显示所有员工的岗位
SELECTDISTINCTjobFROMemp;
DISTINCT用来去除重复项,重复项必须全部一致,
显示所有员工的姓名和岗位
SELECTDISTINCTename,jobFROMemp;
DISTINCTC此处无意义
思考题:
如何显示所有员工的编号及入职年限?
选择查询(条件查询):
语法:
SELECT[DISTINCT]*|表达式|列名别名,列名别名…FROM表名别名WHERE条件(…);
条件可以是:
>
、<
=、>
=、<
>
、!
=、=、ANY、ALL、BETWEEN…AND、IN、LIKE、ISNULL、AND、OR、NOT
NOT可以和LIKE、IN、BETWEEN、ISNULL联用
显示工资大于1500元员工资料
SELECT*FROMempWHEREsal>
1500;
显示工资不等于1500元员工资料
SELECT*FROMempWHEREsal<
SELECT*FROMempWHEREsal!
=1500;
SELECT*FROMempWHERENOTsal=1500;
显示员工号小于7800且上级号大于7400的员工资料或工资大于1500元的员工资料
1500ORempno<
7800ANDmgr>
7400;
AND比OR优先级高,比较表达式比AND和OR优先级高
显示所有有佣金的员工信息
SELECT*FROMempWHEREcommISNOTNULL;
显示所有没有佣金的员工信息
SELECT*FROMempWHEREcommISNULL;
NOT可以用于ISNULL条件之中,表示不为空
查询所有姓名以A开头的员工
SELECT*FROMempWHEREenameLIKE‘A%’;
LIKE后可以加%或_,%代表任意多位字符_代表一位字符
查询所有姓名第二个字母是A的员工
SELECT*FROMempWHEREenameLIKE‘_A%’;
查询所有姓名倒数第二个字母不是A的员工
SELECT*FROMempWHEREenameNOTLIKE‘%A_’;
查询所有员工号在7500-7800的员工
SELECT*FROMempWHEREempnoBETWEEN7500AND7800;
查询所有员工号不在7500-7800的员工
SELECT*FROMempWHEREempnoNOTBETWEEN7500AND7800;
查询所有员工号可以是752176547700及7800的员工
SELECT*FROMempWHEREempnoIN(7521,7654,7700,7800);
查询所有大于7499,7521,7654员工号的员工信息
SELECT*FROMempWHEREempno>
ALL(7499,7521,7654);
查询所有至少大于7499,7521,7654中的一个的员工号的员工信息
ANY(7499,7521,7654);
ALL和ANY区别是:
ALL要比范围内最(大|小)的还要(大|小),ANY比范围内任意的还要(大|小)
结果的排序:
SELECT[DISTINCT]*|表达式|列名别名,列名别名…FROM表名别名WHERE条件(…)ORDERBY(ASC)DESC;
ASC升序,默认值,DESC降序
ORDERBY必须是整个SELECT语句的最后一个子句。
显示按工资的从高到底排序的员工信息
SELECT*FROMempORDERBYsalDESC;
显示按工资的从高到底排序,如果工资一致,按照员工号从小到大排序的员工信息
SELECT*FROMempORDERBYsalDESC,empnoASC;
显示按入职时间的从早到晚排序的员工信息
SELECT*FROMempORDERBYhiredateASC;
时间比较是单纯的看时间的数字表示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 基础