SQL分为五大类:

DDL:数据定义语言   DCL:数据控制语言     DML:数据的操纵语言  DTL:数据事务语言  DQL:数据查询语言。

DDL (date definition language):create,drop,alter,rename to   创建表,删除表,alter对列的修改 对列中约束的修改 ,修改列名 alter table 表名 rename column 原列名 to 新列名 。(对表和列的操作)

创建表:定义列(列名),   数据类型,添加约束

数据类型:

数字类型 : number (数字位数)          (数字总位数,小数位数)

字符型  :  char(字符长度) 规定的字符长度  不够空格填满      varchar2(字符长度)    不定长  最长字符长度

日期类型  :  Date        年月日时分秒
                                  Time        时分秒
                                  Timestamp    年月日时分秒,还有小时位,如1.2秒

插入日期格式' 03-5月-1990' 或者 to_date('年月日','yyyy-mm-dd')

大数据类型:clob character large object    大字符型对象,最大可存4G
                                  blob binary large object    大二进制对象,最大可存4G       (图片,视频,音频,转换                    成2进制存取)

DCL: 数据控制语言

约束  constraint

作用:约束表格中是数据,相对于数据类型而言,用来进一步限定表中的数据,使得添加到表中的数据            都是合法有效的,符合业务需求的数据,不会出现无效数据;

Oracle中的5种约束类型
                                  primary key            PK                含义:主键约束,非空唯一(表中最多只能含有一个主键约束)
                                   not null            NN                含义:非空
                                      unique                UK                含义:唯一
                                     check                CK                含义:自定义约束(往往用来定义业务的约束,如分数不能为负)                
                                     foreign key            FK                含义:外键约束(表示此列的值是引用自己的或其他表的主键)
        注意:能够被外键所引用的列,其本身也必须是主键约束或唯一性约束

创建表格的第一种方法:
    语法:
create table 表名(
    列名 数据类型(默认值) 约束,
    列名 数据类型(默认值) 约束,
    列名 数据类型(默认值) 约束
);
添加约束名的语法:
    constraint 约束名 约束类型;

创建表的第二种方法:

2.【重点】表级语法添加——先定义列,然后在添加约束
    --创建账户表(tbl_account,id,accountNo非空唯一,realName,password六位数/默认值000000,balance不能小于0)
    
    create table tbl_account (
             id number(6),
             accountNo number(6) not null,
             realName varchar2(26) not null ,
             password char(6) default '000000',
             balance number(10,2),
             
            constraints tbl_account_id_pk i primary key(id),
             constraints tbl_account_accountNo_nn unique (accountNo),
             constraints tbl_account_balance_ck check (balance>0)
);

注意:not null不支持表级语法,只能支持列级语法添加。但是也可以采用check 模拟非空

6.补充:创建表格的第二种方法(根据已经存在的某张表创建一张新表格):
    --复制某张表中的指定列,构建一张新的表格(拷贝了数据)
    create table 新表格名 as select 列,列,列from原表格;
    例:创建一张表格,表格中只有s_emp表中的id,first_name,salary三列数据
    create table new_emp as select id,first_name,salary from s_emp;
    
    --复制了某张表格的指定列,构建一张新表格(不拷贝数据,取表结构)
    create table 新表格名 as select 列,列,列from原表格 where 恒假条件;
    例:创建一张表格,表格中只有s_emp表中的id,first_name,salary三列数据
    create table new_emp as select id,first_name,salary from s_emp where 1=2;
    注意:此处1=2表示恒false,则数据库不会被拷贝,只能得到一张空表

删除表格(注意约束控制)
    基本语法:drop table 表名 [cascade constraints];
    注意:cascade constraints表示连带约束一起删除(暴力删除);如果不添加,当有外键引用,不能删除。
修改表格:
    --列相关
    1.添加列
    alter table 表名 add 列名 数据类型 [default默认值] 约束;
        例:--给tbl_user表添加一列年龄
        alter table tbl_user add age number(3) default 18 not null;
    
    2.删除列
    alter table 表名 drop column 列名;【注意关键字column】
        例:删除tbl_user表中age列
        alter table tbl_user drop column age;
        
    3.修改列(修改列数据类型和约束)
    alter table 表名 modify 原列名 新数据类型 新约束;
        例:修改tbl_user表中password列为char(6)默认值‘000000’非空
        alter table tbl_user modify password default'000000' not null;
        
    4.修改列名
    alter table 表名 rename column 原列名 to 新列名;
    --修改tbl_user表中password列名为pwd
    alter table tbl_user rename column password to pwd;
    
    
    
    
    
    --约束相关
    1.添加约束
    alter table 表名 add constraint 约束名 约束类型(列名)
        注意:如果是添加非空约束,则:
        alter table 表名 add constraint 表名_列名_nn check (is not null)
        
    注意:所有的DDL语句都是自动提交事务的,所以语句是不能回滚的
    2.删除约束
    alter table 表名 drop constraint 约束名;
    
    3.使约束生效
    alter table 表名 enable constraint 约束名
    
    4.使约束失效
    alter table 表名 disable constraint 约束名

转载于:https://www.cnblogs.com/w-xibao/p/7797561.html

sql 两大类 DDL数据定义语言 和DCL数据控制语言相关推荐

  1. mysql中数据定义和数据控制语言_MySQL的DDL数据定义语言和DCL数据控制语言

    SQL客户端slient内置命令 db01 [world]>help \c 类似于ctrl+c,结束上一条命令 \G 格式化输出,一般针对列特别多的场景使用 exit(\q) 退出当前会话 so ...

  2. 大数据Hive数据定义语言DDL

    目录 1 数据定义语言(DDL)概述 1.1 DDL语法的作用 1.2 Hive中DDL使用 2 Hive DDL建表基础 2.1 完整建表语法树 3 Hive数据类型详解 3.1 整体概述 3.2 ...

  3. MySQL基础--(2) [SQL(结构化查询语言), DDL(数据定义语言)]

    目录 Sql(结构化查询语言) sql的概念以及特点 DDL(数据定义语言) 创建,删除,修改数据库. 数据库存储数据的特点 数据库表 数据库表中数据的数据类型 数据库表中数据的约束 创建表 设置修改 ...

  4. SQL中数据操作语言 (DML) 和数据定义语言 (DDL)

     可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL). SQL (结构化查询语言)是用于执行查询的语法.但是 SQL 语言也包含用于更新.插入和删除记录的语法. ...

  5. 大数据技术之Hive 第4章 DDL数据定义语言

    第4章 DDL数据定义语言 4.1 创建数据库 CREATE DATABASE [IF NOT EXISTS] database_name [COMMENT database_comment] [LO ...

  6. 【SQL学习笔记】之数据定义语言(DDL)

    SQL语言的学习可以简单地分为以下五个部分: 数据查询语言(DQL):select 数据操作语言(DML):insert.update.delete 数据定义语言(DDL):create.alter. ...

  7. 【ClickHouse SQL 极简教程】ClickHouse SQL之数据定义语言 DDL

    1.1. ClickHouse SQL之数据定义语言 DDL  本节介绍 ClickHouse 中进行数据库.表结构的定义和管理. 1.1.1. 概述 在SQL中,数据定义语言( DDL ) 用来创建 ...

  8. MySQL→数据库、启动连接数据库、SQL→DDL数据定义语言及数据类型、DML数据操作语言、DQL数据查询语言、数据库约束→主键、唯一、非空、默认、外键、SQL、三大范式及一多关系、视图、内外连接

    MySQL连接退出命令 mysql –uroot -proot mysql –h127.0.0.1 –uroot -proot mysql --host=localhost --user=root - ...

  9. MySQL的DDL(数据定义语言)

    笔记本 SQL语言一共分为4大类: DQL(数据查询语言). DDL(数据定义语言). DML(数据操纵语言). DCL (数据控制语言)     本文就介绍的是其中的DDL(Data Definit ...

最新文章

  1. 学python对学习有帮助吗-自学python有用吗?
  2. 剑指Offer #10 矩形覆盖(问题分析)
  3. 转:Linux搭建git私服
  4. (转)微信公众平台关于fakeid和openid的解析
  5. 波兰加密矿企GamerHash计划在韩国建立业务
  6. Python之集合的用法
  7. java数组及循环专题练习(使用数组和循环结构实现一个简易的功能完善的订餐系统)
  8. uniapp某个页面高度占满写法
  9. 读书笔记 - 深入解析Windows操作系统 - C1. 概念和工具
  10. 重装windows10系统自定义安装时未出现分区,解决方法之一
  11. GoldenDict音标乱码
  12. element-ui MessageBox 弹框判断确认和取消
  13. 博观约取,厚积薄发,聊一聊最近读完的几本书,太上头了~
  14. php 发 语音验证码,php语音验证码接口_php语音接口_php语音验证码_语音验证码代码示例_达信通...
  15. PHP+TP框架实现微信公众号开发之发送模板消息
  16. 典型相关分析如何分析两组变量的关系
  17. 2.1_3 Oracle float number类型 详解 + 测试实例(测试小数发现BUG)
  18. Android 学习论坛博客及网站推荐 1
  19. oracle数据库进入控制台,oracle web浏览器无法打开控制台的解决办法
  20. LeetCode刷题(45)~位1的个数【布赖恩·克尼根算法】

热门文章

  1. 深入入门正则表达式(java) - 1 - 入门基础
  2. 变量提升、作用域this实战(真题:看代码输出)
  3. 【Vue2.0】— 插件(十六)
  4. 【Express】 —利用 Express 托管静态文件
  5. windows 设置 rocketmq环境变量_RocketMQ 开篇
  6. 一个收入很低的人,能装大款到什么地步?
  7. 为什么有的人有心事就容易失眠?
  8. 对中小电商卖家来说,找1-2个靠谱的供应链,不需要多
  9. 创造需求的6个关键点
  10. 以太坊eip150和eip158