SQL语句:
1、数据查询语句 SELECT
2、数据定义语句 DDL 定义表、视图、索引
3、数据操纵语句 DML INSERT、UPDATE、DELETE
4、数据控制语句 DCL
基本的数据类型:
number(p,s) --> p个数字,s是p中小数点后的数字位数
smallint --> 表示16位的整数
integer --> 32位的整数
varchar(n) --> 可变长度的字符串,最长为n
char(n) --> 固定长度为n的字符串
一、基本查询语句
1)DESC 表名 --> 查看表的关键字、类型
2)dual是虚表 --> 只有一个字段X,是空表
3)SELECT 字段名(原) 字段名(改) FORM表名 --> 修改字段名称
如果修改后的字段名称里有空格,那么整个修改后的名称用双引号括起来,不仅是空格,中文等特殊字符也要用双引号,用双引号的字段名不会变成大写
注意:字段里的空值与0是不同的概念,任何含有空值的表达式与其他表达式运算后其结果还是空值
4)distinct
SELECT DISTINCT 字段 FORM 表名 --> 把字段中值不重复的列出来
SELECT DISTINCT 字段1,字段2 FORM 表名 --> 把两个字段组合中不重复的列出来
5)条件表达式
WHERE sal IN <800, 1000, 1500>
BETWEEN 800 AND 1500(包括两个界限)
IS (NOT) NULL
WHERE birthday > '20-2月-1988' (对日期的处理) 后面的字符串要和日期的格式相同
WHERE name LIKE + "."一个字母, "*"0个或多个字母 "?"0个或一个
"+"一个或多个 "%"0个或多个 "_"一个字母
二、单行函数(只要有一条数据就产生一个输出)
nvl(i,j) 专门用来处理空值,当i为空值时就把他的只当成j的值
三、聚合函数(组函数)
min()、max()、
avg() 只能对数值型的字段使用
sum()、count()
count(*)就是求这个表里有多少记录
注意:聚合函数不能用在WHERE子句中
在使用聚合函数是一定小心,如果在SELECT查询语句的条件表达式中出现聚合函数时不要用WHERE语句,要使用HAVING条件句
四、逻辑运算符
NOT > AND > OR
DDL
1、创建一个表
CREATE TABLE 表名(列名1 列约束,列名2 列约束)
列约束:NOTNULL , UNIQUE
注意:1)把较小的不为空的字段放在前面,可能为空的字段放在后面
2)创建表时可以使用中文的字段名,但最好使用英文字段名
3)创建表时加上默认值,如DEFAULT SYSDATE
4)可以给字段加上约束条件
2、删除语句 DROP
可以删除表、索引
3、修改语句 ALTER
1)在表的后面添加一个字段
ALTER TABLE 表名 ADD 列名 类型; 或 ALTER TABLE 表名 ADD (列名1 类型1[,列名2 类型2 ...]);
2)设置一个主键
ALTER TABLE 表名 ADD PRIARY KEY (列名);
3)删除一个主键
ALTER TABLE 表名 DROP PRIMARY KEY(列名);
4)修改表的名称
RENAME 旧表名 TO 新表名
5)改变表里字段的定义描述
ALTER TABLE 表名 MODIFY 字段描述;
6)给表里的字段加上唯一约束
ALTER TABLE 表名 ADD CONSTRAINT cons_name UNIQUE(列名);
cons_name 是给约束起的名称
-->ALTER TABLE ABC ADD CONSTRAINT ONLY UNIQUE(A1);
4、数据删除语句 TRUNCATE
TRUNCATE TABLE 表名;
(只删除表的记录,而不删除表的结构)
DML(数据操纵语句)
1、INSERT:
在插入日期的时候,可以直接使用字符串,内部直接转换成日期格式。默认格式是‘D-M-YY’、
TO_DATE('2008-09-09','YYYY-MM-DD')按照指定的格式显示
INSERT INTO 表名(字段列表) SELECT (字段名列表) FORM 表名;
2、UPDATE:
UPDATE table_name SET column1 = 'XXX' WHERE conditions;
UPDATE table_name SET(col1,col2..) = (SELECT ...) WHERE ..
3、DELETE:
DELETE [FROM] 表名 WHERE 条件;
4、事务处理语句
1) 显示提交 COMMIT;
2)隐式提交 DDL(CREATE DROP ALTER TRUNCATE GRANT REVOKE) 她们都不用再提交
3) 自动提交 SET AUTOCOMMIT ON;
事务回滚语句 ROLLBACK
触发器:
CREATE [OR REPLACE] TRIGGER
ON 表名
[FOR EACH ROW]
PL/SQL
触发事件:DML:INSERT UPDATE DELETE
触发条件:条件为true
触发器动作:PL\SQL