SQL分为5大类:
DDL:数据定义语言
DCL:数据控制语言
DML:数据操纵语言
DTL:数据事务语言
DQL:数据查询语言

1、DDL(data definition language):create,drop,alter,rename to

数据类型

①、数字类型,可以数学运算

  number(4)代表整数,最大4位数,也就是9999

  number(7,2)代表小数,总长度7位,小数2位,整数5位

②、字符型,可以拼接

  char(20), 固定长度,不管里面多少内容,只要小于20,输出结果就是20个字符

  varchar2(20),不固定长度,最长20个字符

  在数据库中要用 ' ' 标注字符串

③、日期类型,可以加减运算

  date  年月日时分秒

  time  时分秒

  timestamp  年月日时分秒,还有小时位,如1.2秒

④、大数据类型
  clob character large object 大字符型对象,最大可存4G
  blob binary large object 大二进制对象,最大可存4G
  注意:大数据类型不支持查看结果

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

2、oracle中的5种约束

  primary key    PK  含义:主键

  not null      NN  含义:非空

  unique       UK  含义:唯一

  check         CK  含义:自定义约束,相当于添加条件

  foreign key     FK   含义:外键

3、创建表格

create table abc(
  id number(4),
  name varchar2(10),
  title varchar2(10),

  constraint abc_id_pk primary key(id),
  constraint abc_name_nn check(name is not null),
  constraint abc_title_nn check(title is not null)
);

create table bcd(
  id number(4),
  name varchar2(10),
  manager_id number(4),

  constraint bcd_id_pk primary key(id),
  constraint bcd_name_nn check(name is not null),
  constraint bcd_manager_id_fk foreign key(manager_id) references abc(id)

                       ↑           ↑    ↑

                      外键的列     主键表   主键id
);

创建表格的另一种方法,就是把已有的表复制过来

--复制某张表中的指定列,构建一张新的表格(拷贝了数据)
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,则数据库不会被拷贝,只能得到一张空表

4、删除表格

drop table 表名

注意约束,外键

5、修改表格

--列相关
  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/wang95529/p/7823270.html

11. sql DDL相关推荐

  1. Flink 1.11 SQL 十余项革新大揭秘,哪些演变在便捷你的使用体验?

    简介: SQL 作为 Flink 中公认的核心模块之一,对推动 Flink 流批一体功能的完善至关重要.在 1.11 中,Flink SQL 也进行了大量的增强与完善,开发大功能 10 余项,不仅扩大 ...

  2. 金仓数据库 KingbaseES SQL 语言参考手册 (11. SQL语句:ABORT 到 ALTER INDEX)

    11. SQL语句:ABORT 到 ALTER INDEX 本章描述各种类型的SQL语句,由于类型较多,将按字母顺序排列分组.这是第一组SQL语句. 包含以下章节: SQL语句类型 SQL语句各章节是 ...

  3. sql ddl中key_SQL DDL:SQL Server中SQL DDL命令入门

    sql ddl中key This article explains SQL DDL commands in Microsoft SQL Server using a few simple exampl ...

  4. Blink SQL DDL语句概述

    DDL语句概述 语法 CREATE TABLE tableName (columnName dataType [, columnName dataType ]*) [ WITH (propertyNa ...

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

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

  6. mysql登录框万能密码_Sqli-LABS通关笔录-11[sql注入之万能密码以及登录框报错注入]...

    在这一关卡我学到了 1.万能密码的构造,大概的去揣测正常的SQL语句是如何的. 2. 3. 00x1SQL万能密码的构造 在登录框当中可以添加了一个单引号.报错信息如下所示: 据此报错,我们大概的可以 ...

  7. oracle sqladvisor,Oracle 11 sql tuning advisor sql access advisor关闭以及job查看与停止

    Oracle11g自动维护任务 参考博客:http://blog.itpub.net/12798004/viewspace-1247636/ # 自动收集优化器统计信息 收集数据库所有schema没有 ...

  8. SQL DDL 生成建表语句(可自动生成主键约束,字段默认值等)

    --获取建表DDL(+主键) declare @tabname varchar(50) set @tabname='sys_log'--表名if ( object_id('tempdb.dbo.#t' ...

  9. 1-1 SQL语句-创建数据库

    在创建数据库之前,可以查看已经存在的数据库. 创建数据库,注意EXISTS的使用. 建库后,查看数据库验证一下.

最新文章

  1. 获取子页面iframe的点击事件及iframe跨域的交互
  2. 比特币交易构成(二)
  3. 2011软考软件设计师:C语言代码规范问题(1
  4. 20201014 《计算感知》第2节课 笔记
  5. DOS命令追加符的使用
  6. Ubuntu系统 -- 初始化配置与基础操作
  7. java 主类 测试类_Java中的测试类和主类分别是什么,有点晕啊。?
  8. 如何在Jsp页面加载时候就能执行某个方法
  9. 软阈值迭代算法(ISTA)和快速软阈值迭代算法(FISTA)
  10. cd cd~ cd- cd. cd.. cd/ cd./ cd../.. cd!$ cd /home的区别
  11. C# 通过发送邮箱找回密码
  12. jvm优化必知系列——监控工具
  13. idea提示java: -source 1.5 中不支持修改
  14. 各编程语言摆地摊,我去逛了逛...
  15. MQ消息队列消息过期失效
  16. unity|加载AB包|有依赖关系的AB包
  17. 基于高德地图车辆通行时间预测的python实践
  18. 北京python讲师培训- 百度
  19. 采集HassCNC的设置
  20. 播音配音基础知识点,口部操练习

热门文章

  1. 梯度下降法_梯度下降
  2. pytorch实现文本分类_使用变形金刚进行文本分类(Pytorch实现)
  3. 鄂尔多斯借贷迷局:1亿存款被冻结3年无法拿回
  4. 10年前用10万元投资腾讯,现在能实现财务自由吗?
  5. 阿里当初50亿美元收购UC,现在看来是不是亏大了?
  6. 银行产生的烂账是如何处理的?
  7. 基于Verilog的按键控制LED灯
  8. 使用UltraEdit来拷贝粘贴二进制
  9. python partition by函数_python – 避免Spark窗口函数中单个分区模式的性能影响
  10. springboot 获取bean_SpringBoot高级(自动配置 事件监听 监控)