第三章 SQL语言基础(上)

1、SQL语言概述、分类

结构化查询语言(Structure Query Language,SQL)。

(1)DDL,数据定义语言

CREATE、ALTER、DROP

(2)DCL,数据控制语言

GRANT、REVOKE

(3)DML,数据操纵语言

SELECT、INSERT、DELETE、UPDATE

SQL语言使用实例

(1)CREATE TABLE abc(a varchar2(10),b varchar2(10));

创建表abc,包含a、b两个字段

第三章 SQL语言基础(上)

(2)ALTER TABLE abc ADDc number;

修改表abc结构,追加一个number型字段c

第三章 SQL语言基础(上)

(3)ALTER TABLE abc DROP COLUMN c;

修改表abc结构,删除字段c。

第三章 SQL语言基础(上)

(4)DROP TABLE abc;

删除表abc

第三章 SQL语言基础(上)

(5)GRANT SELECT ON dept TO TT;

在scott用户连接下,给tt用户授权对dept表查询。

第三章 SQL语言基础(上)

(6)REVOKE SELECT ON dept FROM tt;

撤销tt用户在dept表的SELECT权限

第三章 SQL语言基础(上)

(7)select * from dept;

查询表dept中的所有数据

第三章 SQL语言基础(上)

(8)INSERT INTO abc(a,b) VALUES('abc2','xy2');

向表abc中的a字段和b字段分别插入数据abc,xy。向表记录中的所有字段加入数据可以省略表名后括号内字段名。

第三章 SQL语言基础(上)

(9)UPDATE abc SET b='ttt';

将表abc中全部b字段值改为ttt。

第三章 SQL语言基础(上)

(10) UPDATE abc SET b = 'yyy' WHERE a = 'abc';

找到表abc中a字段值为abc的记录,将去b字段值改为yyy。

第三章 SQL语言基础(上)

(11) DELETE FROM abc WHERE a='abc';

删除表abc中a字段值为abc的记录。

第三章 SQL语言基础(上)

(12)DELETE FROM abc;

将表abc中数据全部删除。

第三章 SQL语言基础(上)

2、常用系统函数

1、字符类型

(1)length:

(a)SELECT LENGTH('ABCDEF') FROM dual;

查询字符串ABCDEF的字符数。

第三章 SQL语言基础(上)

(b)SELECT LENGTH('ABC好EF') FROM dual;

查询字符串ABC好EF的字符数。

第三章 SQL语言基础(上)

(c)SELECT LENGTHB('ABC好EF') FROM dual;

查询字符串ABC好EF的字节数。

第三章 SQL语言基础(上)

(d)SELECT LENGTHB(' ABC好EF') FROM dual;

查询字符串 ABC好EF的字节数。

第三章 SQL语言基础(上)

(2)trim

(a)SELECT LTRIM(' ABC好EF') 左去空格 FROM dual;

去掉括号内字符串左边的空格。

第三章 SQL语言基础(上)

(b)SELECT RTRIM(' ABC好EF ') 右去空格 FROM dual;

去掉括号内字符串右边的空格。

第三章 SQL语言基础(上)

(c)SELECT TRIM(' ABC好EF ') 左右去空格 FROM dual;

去掉括号内左右的空格。

第三章 SQL语言基础(上)

(3)substr:

(a)SELECT SUBSTR('abcdefg',2,3) FROM dual;

截取子串,从第2位开始,往后取3个字符。

第三章 SQL语言基础(上)

(b)SELECT SUBSTR('abcdefg',1,3) FROM dual;

左取3个字符。

第三章 SQL语言基础(上)

(c)SELECT SUBSTR('abcdefg',LENGTH('abcdef')-3+1,3) FROM dual;

右取3个字符。

第三章 SQL语言基础(上)

2、日期类型

(1)SELECT sysdate FROM dual;

查询系统当前时间。

第三章 SQL语言基础(上)

(2)ALTER SESSION SET NLS_DATE_FORMAT = 'yyyy mondd hh:mi:ss';

SELECT CURRENT_DATE FROM dual;

设置当前会话日期格式,查询当前系统日期时间,按设置格式输出。

第三章 SQL语言基础(上)

(3)SELECT NEXT_DAY(sysdate,'星期五') FROM dual;

当前时间之后的星期五,日期。

第三章 SQL语言基础(上)

3、转换类型

(1)SELECT TO_CHAR(sysdate,'yyyy-mm-dd hh:mi:ss') FROM dual;

日期类型转换为字符类型。

第三章 SQL语言基础(上)

(2)SELECT TO_NUMBER('333') FROM dual;

字符型转化为数字型,待转化字符需为数字字符。

第三章 SQL语言基础(上)

4、聚集函数类型

(1)SELECT MAX(PRICE) FROM books;

查询价格最大值。

第三章 SQL语言基础(上)

(2)SELECT MIN(PRICE) FROM books;

查询价格最小值。

第三章 SQL语言基础(上)

(3)SELECT SUM(PRICE) FROM books;

查询价格总和。

第三章 SQL语言基础(上)

(4)SELECT AVG(PRICE) FROM books;

查询价格的平均值。

第三章 SQL语言基础(上)

(5)SELECT COUNT(PRICE) FROM books;

查询PRICE字段的行数。

第三章 SQL语言基础(上)

(6)SELECT COUNT(*) FROM books;

查询books表中记录的行数。

第三章 SQL语言基础(上)

5、其他类型

(1)SELECT user FROM dual;

查询当前用户。

第三章 SQL语言基础(上)

(2)SELECT SUM(DECODE(SEX,'男',1,0)) 男人数,SUM(DECODE(SEX,'女',1,0)) 女人数 FROM e;

分别统计表e中的男性人数和女性人数。

第三章 SQL语言基础(上)

(3)SELECT A1,NVL(A2,'空值') FROM aa;

设定A2列未输入值项的缺省值。

第三章 SQL语言基础(上)

(4)SELECT * FROM aa ORDER BY A1 ASC;

按A1字段升序排列查询结果。

第三章 SQL语言基础(上)

(5)SELECT * FROM aa ORDER BY A1 DESC;

按A1字段降序排列查询结果。

第三章 SQL语言基础(上)

(6)SELECT DISTINCT A1 FROM aa;

查询显示A1字段的唯一值。

第三章 SQL语言基础(上)