• SQL--DDL数据定义语言(Oracle)


    数据定义语言

    是针对数据库对象操作的语言
    数据库对象:表,约束,视图,索引,序列…

    CREATE     ---创建数据库对象
    DROP       ---删除数据库对象
    ALTER      ---修改数据库对象
    TRUNCATE   ---清空  
    
    • 1
    • 2
    • 3
    • 4

    以表来举例

    创建表

    CREATE TABLE  表名(列名1 字段属性,列名2 字段属性,列名3 字段属性.....)
    
    • 1

    表名和列名的命名规范:
    1.必须以字母开头
    2.不建议使用中文
    3.除了_以外,不建议使用其他符号
    4.长度不能超过30
    5.同一个用户下,表名不能重复,同一张表下列名不能重复

    CREATE TABLE Haha (Zno NUMBER(4),zname VARCHAR2(4000));
    SELECT * FROM Haha;
    
    • 1
    • 2

    在这里插入图片描述
    DDL语言不需要commit提交的,执行成功即生效
    快捷建表:

    CREATE TABLE 表名 AS SQL语句 -----sql查询结果创建成表
    CREATE TABLE hengh AS SELECT  emp.*,dname,loc FROM emp LEFT JOIN dept ON emp.deptno = dept.deptno;
    
    • 1
    • 2

    在这里插入图片描述
    表结构连同数据一起过来了。
    如果不想要数据,可以在后面加一个永远不成立的条件,如:

    CREATE TABLE hengheng AS SELECT  emp.*,dname,loc FROM emp LEFT JOIN dept ON emp.deptno = dept.deptno 
    where 1=2;
    
    • 1
    • 2

    在这里插入图片描述
    练习:
    快捷建表要求 该表有 姓名岗位薪资部门编号部门名称部门地址以及对应的部门平均工资

    CREATE TABLE HEIHEI AS
      SELECT ENAME,
             JOB,
             A.DEPTNO,
             DNAME,
             (SELECT AVG(SAL) FROM EMP B WHERE B.DEPTNO = A.DEPTNO) AVGSAL
        FROM EMP A
        LEFT JOIN DEPT
          ON A.DEPTNO = DEPT.DEPTNO
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    删除表

    DROP TABLES 表名
    
    • 1

    危险!因为是DDL语句,执行成功即生效,不要使用。

    清空表

    TRUNCATE TABLE 表名.
    
    • 1

    TRUNCATE 和DELETE 的区别
    1.DELETE 属于dml语句,TRUNCATE 属于ddl语句
    2.DELETE 会产生回滚日志,TRUNCATE 不会产生回滚日志,所以当你想要清空所有数据的时候,TRUNCATE 会效率高。
    3.DELETE 可以删除部分数据,而TRUNCATE只能清空所有数据
    4.DELETE 不释放空间,而TRUNCATE会释放空间

    修改表

    ALTER 修改数据库对象
    以修改表举例

    修改表名,列名

    修改列名

    ALTER TABLE 表名 RENAME COLUMN 旧列名 TO 新列名;
    
    • 1

    修改表名

    ALTER TABLE 表名 RENAME TO 新表名;
    
    • 1

    注意:在工作中尽量少用,

    修改字段属性

    语法

    ALTER TABLE 表名 MODIFY (列名 新字段属性,列名2,新字段属性);
    
    • 1

    1.修改属性大小 — 一般情况下是 往大改

    ALTER TABLE heih MODIFY(ename varchar(30));
    
    • 1

    如果往小改,不能低于数据长度。改到比数据还小则会错误
    2.修改属性

    ALTER TABLE heih MODIFY(ename,number)
    
    • 1

    若修改属性,则该列必须为空。

    添加字段

    ALTER TABLE 表名 ADD(列名1 字段属性,列名2 字段属性......)
    
    • 1

    删除字段

    ALTER TABLE DROP (列名1,列名2,列名3....) 
    
    • 1

    连同数据一起删掉。
    但是不能删除全部列,至少保留一个字段

  • 相关阅读:
    【模型训练】YOLOv7车辆三类别检测
    222.完全二叉树的结点个数
    Go常用设计模式(上)
    docker网络与docker自定义网络建立
    【Mybatis】对象中的属性可以直接提取出来
    Spring 概述
    【附源码】计算机毕业设计SSM商超销售系统
    我给网站做公安备案年度安全评估
    ReentrantLock替换synchronized解决多线程并发死锁,Java
    axios全局路由拦截的设置方法
  • 原文地址:https://blog.csdn.net/qq_31727471/article/details/137855649