首页 > 其他分享 >19.数据定义语言

19.数据定义语言

时间:2023-02-26 11:02:10浏览次数:34  
标签:19 EMPLOYEES 定义语言 约束 ---- -- table 数据 主键

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

相关文章

  • 缓存路由数据组件
    切换组件时组件会被销毁,如果想切页面还不会被销毁就使用<keep-alive></keep-alive>标签可以使展示的内容切换组件时不进行销毁如果只给路由占位符外写一个keep-alive那......
  • ECharts笔记--实现地图版的数据显示(存在bug/┭┮﹏┭┮/)
    相关描述前几天实现了柱状图等图的数据可视化,现在就来接着实现一下“更加”形象的数据可视化吧!具体实现如下<%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/......
  • 初探数据增强
    这篇文章主要用来大概梳理数据增强的内容。以下内容部分包含我和chatGPT对话的提炼内容(有修改)总述当我们训练机器学习模型时,我们希望用尽可能多的数据来提高模型的性能。......
  • 爬取大乐透历史中奖信息,随便写,数据不大
    爬取大乐透历史中奖数据importrequestsfromlxmlimportetreeimportpprint#importjsonurl='http://datachart.500.com/dlt/history/newinc/history.php?limit=230......
  • vue遍历数据
    vue代码<template><divclass="index"><!--遍历--><divv-for="(item,index)incatalogue":key="index"><!--页面跳转--><!--<route......
  • 网络数据请求get&post
                   ......
  • 数据探索实例
    一、数据质量分析(一)箱型图分析箱型图提供了识别异常值的一个标准:异常值通常被定义为小于QL-1.5IQR或大于QU+1.5IQR的值。箱型图识别异常值的结果比较客观,在识别异常值方......
  • 用Python画数据分析第三章的图
    importpandasaspdcatering_sale="D:\数据分析\catering_sale.xls"data=pd.read_excel(catering_sale,index_col=u'日期')print(data.describe())importmatplot......
  • 数据挖掘python画各类图
    1importpandasaspd2importnumpyasnp3catering_sale='D:\data\catering_fish_congee(1).xls'#餐饮数据4data=pd.read_excel(catering_sale,names=......
  • 2022-2023-2 20221320 数据结构第一周学习总结
    一、教材学习内容总结:1.周一的课上复习了冯·诺依曼模型:输入设备,输出设备(IO设备),存储器,运算器,控制器(CPU)。计算机由硬件(裸机)和软件(系统软件与应用软件)组成(软件是程序、数......