SQL学习笔记 Day_05

一、事务控制和锁

       当有用户修改数据时,Oracle 先把那部分原始数据备份到回滚段,在Commit 之前,其他Session 用户读到的这
部分数据是回滚段上的;  在提交之后,回滚段被释放。关键字:commit、Rollback

       锁是用来防止并发事务对相同的资源(所谓资源是指  表、行、共享的数据结构、数据字典行等)进行更改的时候,相互破坏锁有既有隐式的,也有显式的;  但某用户对某一批数据进行更改,而未提交之前,Oracle 会隐式的进行加锁

二、数据库对象——表


    命名要求
    1 、必须以字母开头
    2 、长度不能超过30 个字符
    3 、只能包含 A–Z, a–z, 0–9, _, $, and #
    4 、不能与数据库中的已有对象重名
    5 、不能使用Oracle 数据库的保留字   

--语法:
CREATE TABLE [schema.]table
                (column datatype [DEFAULT expr][, ...]);

复制表

create table testtab 
as select * from table_name;
create table testtab1
as select * from table_name where 1 = 2; --复制表结构没有数据

添加列、更改列属性、更改列名、删除列、删除表、更改表名

alter table table_name
add (column1 varchar(20)); --添加列
alter table table_name
modify column column1 varchar(30); -- 更改列属性
alter table table_name 
rename old_name to new_name;    --更改列名
alter table table_name
drop column column_name;        --删除列
drop table table_name;        --删除表
alter table table_old_name
rename table_new_name;        --更改表名

TRUNCATE table table_name;    一次性清空表的内容保留表结构,没有Rollback的机会,HWM标记复位

三、约束

   使用“约束”来阻止对数据库表中数据的不合法的“增删改”动作

        1.not null 非空约束
        2.UNIQUE     唯一性约束
        3.primary key 主键约束
        4.FOREIGN KEY 外键约束
        5.CHECK         自定义约束

在创建表的时候同时创建约束
另外单独创建约束

外键约束:参考的字段在另一个表里必须是唯一的

REFERENCES:  表示列中的值必须在父表中存在
ON DELETE CASCADE:  当父表记录删除的时候自动删除子表中的相应记录.
ON DELETE SET NULL:  当父表记录删除的时候自动把子表中相应记录的值设为NULL

扫描二维码关注公众号,回复: 11633161 查看本文章

四、视图

View

简单视图、复杂视图

CREATE VIEW emp_v
as select id, lastname, department
FROM testtab 
where firstname = 'deqing';

select * from emp_v; --查看视图

create VIEW def_v 
(name, max_id, min_id, avg_id)
as select CONCAT(firstname,lastname), max(id), min(id), avg(id)
FROM testtab ;

猜你喜欢

转载自blog.csdn.net/zjq_supperman/article/details/88069092
今日推荐