数据操纵语言
数据操纵语言用于检索、插入和修改数据
数据操纵语言命令包括:
SELECT 查询一个表或多个表中的数据
INSERT 在表中插入数据
UPDATE 更新表中的数据
DELETE 删除表中不需要的数据
事务控制语言事务(Transaction)可以被看作一个工作逻辑单元,由一系列的SQL语句组成,作为一个整体进行工作,就保证了数据的一致性和完整性。保证事务的整体成功或失败,称为事务控制。
用于事务控制的语句有:
COMMIT -提交并结束事务处理,保证所做的修改持久有效
ROLLBACK -撤消自上一个COMMIT语句执行以来所做的修改
SAVEPOINT –一个大的事务分成很多小事务,每一个小块作为一个保存点 ,标记事务中可以回滚的点
示例:
SQL > SAVEPOINT jack;
SQL > UPDATE Employee1 SET cEcode=‘C025’WHERE cEname=‘jack’;
SQL > SAVEPOINT mary;
SQL > UPDATE Employee1 SET cEcode=‘C035’WHERE cEname =‘mary’;
SQL > ROLLBACK TO mary;
SQL > commit;
数据控制语言数据控制语言为用户提供权限控制命令
用于权限控制的命令有:
GRANT 授予权限
GRANT system_priv|role TO user
[WITH ADMIN OPTION]
REVOKE 撤销已授予的权限
REVOKE system_priv|role FROM user
[WITH ADMIN OPTION]
示例:
SQL > GRANT SELECT, UPDATE ON emp TO John WITH GRANT OPTION;
SQL > REVOKE UPDATE ON emp FROM john;
SQL运算符
SQL运算符包括:
1,算术运算符
2,比较运算符
3,逻辑运算符
4,集合运算符
5,连接运算符
算术操作符和比较运算符算术操作符算术操作符用于执行数值计算
算术操作符包括加(+)、减(-)、乘(*)、除(/)
比较运算符比较操作符用于比较两个表达式的值
比较操作符包括 =、!=、<、 >、<=、 >=、BETWEEN…AND、IN、LIKE 和 IS NULL等
逻辑操作符SQL中常用的逻辑操作符有:AND、NOT、OR。其中AND和OR是二元运算符,NOT是一元运算符。
示例:
SQL > SELECT * FROM students WHERE score > 80 AND del_date < 90;
集合操作符常用的集合操作符:
IN
NOT IN
BETWEEN a AND b
NOT BETWEEN a AND b
EXISTS
NOT EXISTS
LIKE ‘[_%]string[_%]’
连接操作符连接操作符用于将多个字符串或数据值合并成一个字符串,由两个竖起来的线条组成。如 ||。
示例:
SQL > select 'ORACLE'||'程序员' from dual;
结果返回:ORACLE程序员
操作符的优先级SQL 操作符的优先级从高到低的顺序是:
1,算术操作符-------最高优先级
2,连接操作符
3,比较操作符
4,NOT 逻辑操作符
5,AND 逻辑操作符
6,OR 逻辑操作符 --------最低优先级
SQL 函数
单行函数单行函数对于从表中查询的每一行只返回一个值,可以出现在 SELECT 子句中和 WHERE 子句中
多行函数又称为组合函数。基于一组行来返回结果。常用的多行函数有AVG、SUM、COUNT、MAX、MIN、STDDEV、VARIANCE。
常用函数常用函数有以下几种:
字符函数,数值函数,日期函数,转换函数,分组函数
字符函数字符函数接受字符输入,用于对字符串进行处理,返回字符或数值。
UPPER(string)-返回string的大写形式
LOWER(string)-返回string的小写形式
ASCII(string)-返回string的首字符的ASCII码值
CHR(x)-返回x的ASCII字符
LENGTH(string)-返回string的长度
CONCAT(string1, string2-返回string1与 string2连接起来的字符串
INITCAP(string)-返回string首字母大写而其它字母小写的字符串
LTRIM(string1, string2)-从string1左侧删除 string2中出现的任何字符,string2默认设置为空格,遇到第一个不在string2中的字符时返回
RTRIM(string1, string2)-从string1右侧删除 string2中出现的任何字符,string2默认设置为空格,遇到第一个不在string2中的字符时返回
SUBSTR(string,a[,b])-从string中删除从a指定位置开始的b个字符。若未指定b,则删除从a开始的所有字符
REPLACE(string,if,then)-在string字符串中查找if,并用then替换
LPAD(string,length[,padding])-在string左侧填充padding指定的字符串直到达到length指定的长度,若未指定padding则默认为空格
RPAD(string,length[,padding])-在string右侧填充padding指定的字符串直到达到length指定的长度,若未指定padding则默认为空格
日期函数例:在指定日期上增加月份。
SQL > SELECT ADD_MONTHS(’12-APR-07’,4) FROM DUAL;
例:比较两个日期,显示其中较大者的日期。
SQL > SELECT GREATEST(‘15-APR-07’,‘16-MAY-07’) FROM DUAL;
例:求某月的最后一天的日期。
SQL > SELECT LAST_DAY(’10-AUG-07’) FROM DUAL;
例:求两个日期相差的月份数。
SQL > SELECT MONTHS_BETWEEN(’20-JAN-07’,’13-MAY-07’) FROM DUAL;
例:将日期型数据转换为字符型数据。
SQL > SELECT TO_CHAR(sysdate,‘DD-MONTH-YYYY’) FROM DUAL;
例:字符型数据转换为日期型数据。
SQL > SELECT TO_DATE(’14-AUG-07’,‘DD-MONTH-YYYY’) FROM DUAL;
分组函数分组函数基于一组行来返回结果,为每一组行返回一个值。
AVG(col)--求指定列数据值的平均值
SUM(col)--求指定列数据值的总和
MAX(col)--求指定列数据值的最大值
MIN(col)--求指定列数据值的最小值
COUNT(*)--求行的总数
COUNT(col)--求指定列非空数据值的行数
例 求语文的平均成绩。
SQL > SELECT AVG(YW)AS 语文 FROM SCJ;
例 求语文成绩及格的人数。
SQL > SELECT COUNT(*) FROM SCJ WHERE YW >=60;
小结1,SQL称为结构化查询语言。应用在关系型数据库管理系统中,功能十分强大。
2,掌握数据定义语言、数据操纵语言、数据控制语言。
3,Oracle数据库数据库对象的管理方法分成两种方式:企业管理控制台方式和命令方式。 Oracle数据库对象的管理分为:创建、修改、查看和删除。
4,表是最重要的数据库对象之一,是数据实际存放的地方。
5,同义词是数据库对象的别名。两种类型的同义词PUBLIC和PRIVATE 。
6,序列是用于创建唯一的连续整数值的数据库对象。序列存储在USER_OBJECTS数据字典表里。
7,使用伪列NEXTVAL 从序列中抽取连续的序列号。
8,创建表使用CREATE TABLE命令;修改表使用ALTER TABLE命令;删除表使用DROP命令。
9,视图是为了确保数据的安全性和隐藏性而从一个或多个表中通过使用SELECT语句得到的虚表。
10,数据库的索引提供对表中行的快速访问。利用索引可以快速找到所需要的内容。
11,查询数据使用SELECT命令;输入数据使用INSERT命令;更新数据使用UPDATE命令;删除数据使用DELETE命令
12,授权使用GRANT命令;收权使用REVOKE命令。
13事务提交使用COMMIT命令;事务回滚使用ROLLBACK命令;设置保存点使用SAVEPOINT命令。e