1.描述主要数据库对象
2.查看表结构
--2.1.命名原则
----必须为1-30字符长度
----只能包含A-Z,a-z,0-9,_,$, 和# 字符
----同一用户下,不能重名
----不能使用oracle服务器保留字
--2.2.足够的权限
----必须有create table权限
----有足够的空间
----指定表名
----列名,列数据类型,列长度
--2.3.表属于其他用户,不属于当前用户
----必须用用户名.表名
--2.4.默认值
----插入行时,为列指定缺省值
----可以使用字面值,表达式函数
----不能使用其他列的名字或者伪列
----缺省的数据类型必须匹配列的数据类型
--查询用户的所有表名信息
select * from tab;
select * table_name from user_tables;
select object_name from user_objects where object_type = 'TABLE';
--查看列名信息
hr@ORCLPDB01 2023-02-26 09:38:18> r
1* select table_name,column_name from user_tab_columns where table_name = 'EMPLOYEES'
TABLE_NAME COLUMN_NAME
------------------------------ ------------------------------
EMPLOYEES EMPLOYEE_ID
EMPLOYEES FIRST_NAME
EMPLOYEES LAST_NAME
EMPLOYEES EMAIL
EMPLOYEES PHONE_NUMBER
EMPLOYEES HIRE_DATE
EMPLOYEES JOB_ID
EMPLOYEES SALARY
EMPLOYEES COMMISSION_PCT
EMPLOYEES MANAGER_ID
EMPLOYEES DEPARTMENT_ID
3.描述列定义的可用数据类型
可用的日期时间类型
4.了解约束如何在表创建的时候建立
--1.介绍约束
--约束在表级实现强制规则
--约束制约关系可防止有依赖关系的表被删除
--约束类型
---- not null
---- unique
---- primary key 主键
---- foreign key 外键
---- check 检查
--2.使用约束的原则
----用户可以为约束命名,也可以是数据库服务器自动命名为SYS_SN的格式
----约束可以创建
----建表的时候
----表建成后修改
----约束可以在列级或表级定义-非空只能在列级别定义
----通过数据字典可以访问表约束信息
4.1.定义约束
--列级约束
--表级约束
--非空约束
----约束定义列上不能出现空值
--唯一性约束
----表级列级都可以定义,如果定义多列必须在表级定义
--主键约束
----一个表只能有一个主键
----主键是唯一的并且非空
----可以联合主键,联合主键要求每列都非空
----主键唯一定位一行,所有主键也叫逻辑rowid
----主键不是必须的,可以没有
----主键是通过索引实现的
----索引的名称和主键的名称相同
--外键约束
----表级定义关联到子表中的列
----定义父表和表中列
----父表行被删除子表行被级联删除
----父表行被删除将依赖的外键值修改为空值
--外键约束
----外键约束在列级或表级定义
----外键约束只能关联到本表或其他表的主键或唯一键
--检查约束
----用户定义的条件,每一行必须满足
----不允许使用如下的表达式:
----涉及currval,nextval,level,rownum
----调用sysdate,uid,user,userenv
----涉及到其他关联行的查询
5.描述模式对象如何工作
5.1.约束使用
--添加约束的语法
----添加或丢弃约束,不会改变表结构
----启用或禁用约束
----使用modify子句添加非空约束
alter table xxx add [constraint constraint] type (column);
--丢失约束
----从employees表中丢失对经理的约束
alter table employees drop constraint emp_manager_fk;
----丢弃departments表中的主键约束,以及关联在employees.department_id列的外键约束
alter table departments drop primary key cascade;
--禁用约束
----使用alter table命令的disable子句,可以禁用约束
----使用cascade选项,可以禁用相关联的约束
----约束的状态可以通过uesr_constraints视图的status列查询
alter table employees disable constraint emp_emp_id_pk cascade;
--启用约束
----使用alter table 命令的enable子句,可以启用当前是出于禁用状态的约束
----如果启用了primary key或unique约束,就会自动创建主键或唯一索引
alter table employees enable constrain emp_emp_id_pk;
--删除约束
----cascade constraints子句是连同drop column子句一起使用的
----cascade constraints子句可以把被删除列上的关联的所有约束都丢弃
----cascade constraints子句还可以把被删除列上的关联的多列约束丢弃
----如果被删除的列已经被其列引用了约束,或是与其他的列共同使用了约束,那么,在删除该列的时候,必须使用cascade cnstraints子句,否则无法删除
--查看约束
----通过user_constraints,可以查看用户表所有的约束定义和名字等
select constraint_name,constraint_type,search_condition from user_constraints where table_name = 'EMPLOYEES';
----通过user_cons_columns,可以查看约束关联列的名字等
select constraint_name,column_name from user_cons_columns where table_name = 'EMPLOYEES';
5.2.维护表
--只读表避免维护表期间被ddl,dml修改
--维护完毕更改为读写模式
alter table employees read only;
alter table employees read write;
--使用alter table 语句添加,修改,丢弃列
alter table xxx add
alter table xxx modify
alter table xxx drop
----修改列
--1.使用modify修改列的数据类型,大小和缺省值
--2.可以增大列的长度
--3.可以减小列的长度,但是只能减小到已有的数据长度,如果该列是数值型,那么,只有该列包含空值或没有记录时才能减小长度
--4.对缺省值的修改仅影响以后的插入行
----丢弃列
--1.使用drop column语句丢弃列
--2.每次只能丢弃一列
--3.丢弃的列可以包含数据,也可以不包含数据
--4.表必须至少保留一列
-----使用set unused
--1.使用set unuserd选项标记不再使用的列
--2.使用drop unused columns丢失标记为unused的列
--删除表,drop table xxx;
标签:19,EMPLOYEES,定义语言,约束,----,--,table,数据,主键 From: https://www.cnblogs.com/yuanzijian/p/17156271.html