SQL课堂随笔第三章

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.数据字典:存放数据库里的基本信息,主要是oracle自己维护
基表:
user_*** :当前登录账号所创关键的表
all_ :当前数据库中有访问权限的表
dba_*** :dba维护的表
select * from ***_tables;==>show tables
查看用户创建的表
select * from user_tables;
SELECT table_name FROM user_tables ;
查看用户定义的各种数据库对象
SELECT DISTINCT object_type FROM user_objects ;
查看用户定义的表, 视图, 同义词和序列
SELECT * FROM user_catalog ;

视图
2.用户自己定义的表
表名和列名:
必须以字母开头,在1-30个字符之间

创建表:create
必须具备: CREATE TABLE权限
使用子查询建表:
CREATE TABLE my_employee
AS SELECT employee_id, last_name, salary*12 ANNSAL, hire_date FROM employees
WHERE department_id = 80;

ALTER TABLE 语句
追加:add 修改:modify 删除:drop
ALTER TABLE my_employee ADD (job_id VARCHAR2(9));

删除表
drop:可以回滚操作,不会释放表空间
truncate语句会释放表空间,且不能回滚 truncate table
可以使用 DELETE 语句删除数据,可以回滚
rollback;回滚操作

rename语句改变表名,必须是表的拥有者才可进行此操作
RENAME my_employee TO new_employee;

INSERT 语句语法
一次只能向表中插入一条数据。
(1)INSERT INTO departments(department_id, department_name, manager_id, location_id) VALUES (71, ‘Public Relationss’, 101, 1700);
(2)INSERT INTO employees VALUES (114, ‘Den’, ‘Raphealy’, ‘DRAPHEAL’, ‘515.127.4561’, TO_DATE(‘FEB 3, 1999’, ‘MON DD, YYYY’), ‘AC_ACCOUNT’, 11000, NULL, 100, 30);
(3)INSERT INTO departments (department_id, department_name, location_id) VALUES (&department_id, ‘&department_name’,&location);
&会通过弹窗的方式添加数据
从其他表中拷贝数据不必写VALUE语句

更新数据:UPDATE
UPDATE employees
SET department_id = 70 WHERE employee_id = 113;
在 UPDATE 语句中使用子查询
UPDATE employees SET
job_id = (SELECT job_id FROM employees WHERE employee_id = 205),
salary = (SELECT salary FROM employees WHERE employee_id = 205)
WHERE employee_id = 114;

删除数据
delete

事物:一组逻辑操作单元,使数据从一组状态变换到另一种状态
数据库事务由以下部分组成:
一个或多个DML语句,一个DDL语句,一个DCL语句
以第一个 DML 语句的执行作为开始
以下面的其中之一作为结束:
 COMMIT 或 ROLLBACK 语句
 DDL 语句(自动提交)
 用户会话正常结束
 系统异常终止

回滚到保留点
SAVEPOINT
ROLLBACK TO SAVEPOINT

约束
有以下五种约束
1.NOT NULL非空约束
2.UNIQUE唯一约束
3.PRIMARY KEY主键约束
4.FOREIGN KEY外键约束
5.CHECK检查约束
分为:列级约束 表级约束
非空约束只能定义在列上
constraint 约束名称 约束内容
约束命名习惯:表名_列名_约束类型(nn pk fk uk)
例:CONSTRAINT emp_hire_date_nn

ON DELETE CASCADE(级联删除): 当父表中的列被 删除时,子表中相对应的列也被删除 ON DELETE SET NULL(级联置空): 子表中相应的列 置空
CHECK 约束
CONSTRAINT emp_salary_min CHECK (salary > 0),
ALTER只能添加或删除约束,但是不能修改约束
添加 NOT NULL 约束要使用modify
从表 my_employee5中删除约束
alter table my_employee5 drop constraint my_employee5_sal_ck;
enable激活约束 disable使约束失效

视图
视图是一种虚表
CREATE VIEW salvu50
AS SELECT employee_id ID_NUMBER, last_name NAME, salary*12 ANN_SALARY FROM employees
WHERE department_id = 50;
删除视图
DROP VIEW empvu80;

索引
通过指针加速 Oracle 服务器的查询速度
CREATE INDEX emp_last_name_idx ON employees(last_name);
删除索引
DROP INDEX index;

序列
主要用于提供主键值
定义一个序列(设置主键自增)
CREATE SEQUENCE dept_deptid_seq
INCREMENT BY 10
START WITH 120
MAXVALUE 9999
NOCACHE
NOCYCLE;
序列在下列情况下出现裂缝:
 回滚
 系统异常
 多个表同时使用同一序列
删除序列
DROP SEQUENCE dept_deptid_seq;

猜你喜欢

转载自blog.csdn.net/w849593893/article/details/82749287