本文是《Oracle数据库学习笔记上》的第二篇,承接上一篇文章的内容。
1、数据控制语言DML可以在下列条件下执行:
向表中插入数据
修改现存数据
删除现存数据
2、使用INSERT语句向表中插入数据。
INSERT INTO table[(column[,column...])] VALUES(value[,value...]);
使用这种语法一次只能向表中插入一条数据。
为每一列添加一个新值。
按列的默认顺序列出各个列的值。
在INSERT子句中随意列出列名和他们的值。
字符和日期型数据应包含在单引号中S
INSERT INTO departments(department_id, department_name,manager_id,location_id)
VALUES(70, 'Public Relations', 100, 1700);
3、算术运算符
4、dual虚拟表
SELECT 5+3,'HELLO' FROM dual;
5、操作符的优先级
除的优先级高于加减。
同一优先级运算符从左向右执行。
括号内的运算先执行
6、空值
空值是无效的,未指定的,未知的或不可预知的值
空值不是空格或者0
在Oracle中null和空字符串是等价的
包含空值的数学表达式的值都为空值
7、n给列起别名的两种方式
AS 别名
空格 别名
8、字符串连接
把列与列,列与字符连接在一起,用 ‘||’表示
9、在SELECT子句中使用关键字‘DISTINCT’删除重复行
10、比较运算
任何值和空值比较结果一定为假
11、LIKE比较运算符要配合通配符来使用
%代表零个或多个任意字符
_代表一个任意字符
12、使用ORDER BY子句排序
ASC:升序(默认)
DESC:降序
ORDER BY子句在SELECT的结尾
SELECT employee_id, last_name, job_id, salary
FROM employees
ORDER BY hire_date;
排序表达式可以是以下四种情况
•列名
•别名
•表达式
•列索引
13、在 INSERT 语句中加入子查询。
INSERT INTO sales_reps(id,name, salary, commission_pct)
SELEC Temployee_id,last_name,salary,commission_pct FROMemployees
WHERE job_id LIKE '%REP%';
14、使用UPDATE语句更新数据。
UPDATE table SET column=value[ , column=value, ... ]
[ WHERE condition];
如果省略WHERE子句,则表中的所有数据都将被更新。
15、使用 DELETE语句从表中删除数据
DELETE [FROM] table [WHERE condition];
如果省略WHERE子句,则表中的全部数据将被删除。
16、数据约束是操作表数据的强制规定
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
在什么时候创建约束:
建表的同时
建表之后
可以在表级或列级定义约束 ,可以通过数据字典视图查看约束
CHECK 约束
定义每一行必须满足的条件
以下的表达式是不允许的:
出现 CURRVAL , NEXTVAL, LEVEL 和 ROWNUM伪列
使用 SYSDATE, UID, USER 和 USERENV 函数
在查询中涉及到其它列的值
从表EMPLOYEES中删除约束
ALTER TABLE employees DROP CONSTRAINT emp_manager_fk;
ENABLE 子句可将当前无效的约束激活
ALTER TABLE employees ENABLE CONSTRAINT emp_emp_id_pk;
当定义或激活 UNIQUE 或 PRIMARY KEY约束时系统会自动创建UNIQUE或PRIMARY KEY索引
17、数据字典:由oracle自动创建和维护的系统表或者系统视图,其用途是用来描述数据库信息,用户信息等数据
静态数据字典:描述数据库的对象信息。
动态数据字典:描述数据库的运行信息,随着运行会时刻发生变化的。
User_*:当前用户拥有的对象信息。
All_*:当前用户能访问的对象信息。
Dba_*:数据库中所有的对象信息。
常用动态数据字典
数据库运行,不断更新,提供关于内存,磁盘运行的情况,只能读取不能修改。
以V$开头
V$session:当前会话信息。
V$sql:当前查询过的sql语句,访问过的资源与对象。
V$tablespace表空间信息
18、基本的查询语句
查询某个表的某几列
SELECT 列名1,列名2 FROM 表名;
查询某个表的所有列
SELECT * FROM 表名;