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 约束名

sql 两大类 DDL数据定义语言 和DCL数据控制语言的更多相关文章

  1. ODPS SQL <for 数据定义语言 DDL>

    数据定义语言:(DDL) 建表语句: CREATE TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment ...

  2. Hive 官方手册翻译 -- Hive DDL(数据定义语言)

    Hive DDL(数据定义语言) Confluence Administrator创建, Janaki Lahorani修改于 2018年9月19日 原文链接 https://cwiki.apache ...

  3. DDL数据定义语言

    DDL数据定义语言 (一)概述 DDL(Data Definition Language):数据定义语言,用来定义数据库对象,库.表.列等:创建.删除.修改 库,表结构.主要分为操作数据库的DDL和操 ...

  4. SQL语言学习-数据定义语言

    Sql语言至今已经有6个版本.SQL查询语言包括了所有对数据的操作命令,这些操作可分为四类:数据定义语言(DDL).数据操纵语言(DML).数据控制语言(DCL)和嵌入式SQL语言. 数据定义语言(D ...

  5. mysql DDL数据定义语言

    DDL数据定义语言 本节涉及MySQL关键字:create.alter(rename,add,chang,modify,drop).drop.delete.truncate等. -- 创建表:-- 数 ...

  6. CREATE TABLE——数据定义语言 (Data Definition Language, DDL)

    Sql语句分为三大类: 数据定义语言,负责创建,修改,删除表,索引和视图等对象: 数据操作语言,负责数据库中数据的插入,查询,删除等操作: 数据控制语言,用来授予和撤销用户权限. 数据定义语言 (Da ...

  7. 【MySQL】DDL数据定义语言的基本用法create、drop和alter(增删改)

    DDL 的基础语法 文章目录 DDL 的基础语法 对数据库进行定义 对数据表进行定义 创建表结构(数据表) 设计工具 修改表结构 小结 参考资料 简单复习一波 SQL必知必会 DDL 的英文全称是 D ...

  8. MySQL之数据定义语言(DDL)

    写在前面 本文中 [ 内容 ] 代表啊可选项,即可写可不写. SQL语言的基本功能介绍 SQL是一种结构化查询语言,主要有如下几个功能: 数据定义语言(DDL):全称Data Definition L ...

  9. Oracle language types(语言种类) 表的相关操作 DDL数据定义语言

    数据定义语言 Data Definition Language Statements(DDL)数据操纵语言 Data Manipulation Language(DML) Statements事务控制 ...

随机推荐

  1. 如何实现查询显示N个工作日有效期内的数据

    功能点分析:要显示N个工作日有效期内的数据,需要考虑: 1. 可以给每条数据增加一个有效期时间字段,查询时只显示有效期之前的数据,如有效期为七天,数据的创建时间是2014-07-21,那七个工作日有效 ...

  2. 深入浅出 Java Concurrency (10): 锁机制 part 5 闭锁 (CountDownLatch)

    此小节介绍几个与锁有关的有用工具. 闭锁(Latch) 闭锁(Latch):一种同步方法,可以延迟线程的进度直到线程到达某个终点状态.通俗的讲就是,一个闭锁相当于一扇大门,在大门打开之前所有线程都被阻 ...

  3. Nuxt.js开启SSR渲染快速入门

    第一节:nuxt.js相关概述 nuxt.js简单的说是Vue.js的通用框架,最常用的就是用来作SSR(服务器端渲染).Vue.js是开发SPA(单页应用)的,Nuxt.js这个框架,用Vue开发多 ...

  4. win8下ctrl+alt+down失效问题

    最近换win8系统后用myeclipse发现这个用得最多快捷键居然不能用了. 百度后的确是显卡的快捷键冲突,但禁用显卡快捷键后仍然无效,把eclipse换成其他的不能忍. 所以把显卡快捷键换了就可以了 ...

  5. 神奇的make自动生成include file的功能

    嗯,今天研究公司makefile的代码,始终搞不明白有一段下载编译依赖的rule recipe(对这个名词不了解请参考make的官方文档)是怎么执行的.明明在执行的时候并指定的target并没有依赖那 ...

  6. docker redis4.0 集群(cluster)搭建

    前言 redis集群对于很多人来说非常熟悉,在前些日子,我也有一位大兄弟也发布过一篇关于在阿里云(centOS7)上搭建redis 集群的文章,虽然集群搭建的文章在网上很多,我比较喜欢这篇文章的地方是 ...

  7. ATL接口返回类型&&ATL接口返回字符串BSTR*

    感觉在ATL中做COM组件,添加方法的时候,其返回值只能是HRESULT,我想返回其他数据类型,可以吗? 非也非也 HRESULT指示返回的状态,即正确与否, 返回值是这样的 HRESULT MyMe ...

  8. GitHub从注册到使用

    GitHub是最流行的代码库,里面存储着丰富的优秀的开源代码,不仅如此,作为一款免费的代码存储利器也是很牛逼,支持各种编程语言,代码显示效果堪称完美,可以随时随地查看自己记录的笔记 GitHub的好处 ...

  9. node / npm 配置问题

    安装nodejs 后运行 npm 命令无响应处理方法 安装和卸载过nodejs, 也编辑过 C:\Users\{账户}\下的.npmrc文件. 再全新安装nodejs ,运行npm 命令,无响应. 处 ...

  10. .net Core 2.0使用NLog

    最近研究了一下NLog的使用方式,简单的入了一下门. 实现的功能,对于不同的日志,进行不同的记录,分别有系统运行日志,和个人在程序中写的异常日志.发布之后放在了IIS上.进行查看日志的信息 参考了两篇 ...