精华内容
下载资源
问答
  • DDL语句

    千次阅读 2018-05-15 22:31:08
    DDL语句Data Definition Language DDL数据定义语句,用于建库或建表DDL 操作数据库创建数据库的几种方式 创建数据库 CREATE DATABASE 数据库名; ​  判断数据库是否已经存在,不存在则创建数据库 CREATE ...

    DDL语句

    Data Definition Language DDL数据定义语句,用于建库或建表

    DDL 操作数据库

    创建数据库的几种方式

     创建数据库
    CREATE DATABASE 数据库名;
    
     判断数据库是否已经存在,不存在则创建数据库
    CREATE DATABASE IF NOT EXISTS 数据库名;
    
     创建数据库并指定字符集(编码表)
    CREATE DATABASE 数据库名 CHARACTER SET 字符集;

    具体操作:

     直接创建数据库 db1
    CREATE DATABASE db1;
    
     判断是否存在并创建数据库 db2
    CREATE DATABASE IF NOT EXISTS db2;
    
     创建数据库并指定字符集为 gbk
    CREATE DATABASE db2 CHARACTER SET gbk;
    

    查看数据库

     查看所有的数据库 
    SHOW databases;
    
     查看某个数据库的定义信息
    SHOW CREATE DATABASE 数据库名;

    修改数据库

    修改数据库字符集格式
    ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集;

    具体操作:

     将 db3 数据库的字符集改成 utf8
    ALTER DATABASE db3 DEFAULT CHARACTER SET utf8;

    删除数据库

    删除数据库的语法
    DROP DATABASE 数据库名;
    
    判断数据库是否存在并删除数据库
    DROP DATABASE IF EXISTS 数据库名;

    具体操作:

     删除 db2 数据库
    DROP DATABASE db2;
    
    -- 删除create数据库
    DROP DATABASE `create`;  `这是一个转义符号

    使用数据库

    查看正在使用的数据库
    SELECT DATABASE(); --DATABASE()是 mysql 函数
    
    使用/切换数据库
    USE 数据库名;

    具体操作:

     查看正在使用的数据库
    SELECT DATABASE();
    
     使用 db1 数据库
    USE db1;

    DDL 操作表

    -- 前提先使用某个数据库 

    创建表

    创建表的格式
    
    CREATE TABLE 表名 (
    
    字段名 1 字段类型 1,
    
    字段名 2 字段类型 2
    
    );
    
    关键字说明:
    
    CREATE -- 表示创建
    
    TABLE -- 表示创建一张表
    
    
    
    MySQL 数据类型
    
    详细的数据类型如下
    
    分类 类型名称 说明
    
    整数类型 
    tinyInt 很小的整数
    smallint 小的整数
    mediumint 中等大小的整数
    int(integer) 普通大小的整数
    
    
    小数类型 
    float 单精度浮点数
    double 双精度浮点数
    decimal(m,d) 压缩严格的定点数
    
    
    日期类型 
    year YYYY 1901~2155
    
    time HH:MM:SS -838:59:59~838:59:59
    
    date YYYY-MM-DD 1000-01-01~9999-12-3
    
    datetime YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~ 9999-12-31 23:59:59
    
    timestamp YYYY-MM-DD HH:MM:SS 19700101 00:00:01 UTC~2038-01-19 03:14:07UTC
    
    
    字符串 
    CHAR(M) M 为 0~255 之间的整数
    
    VARCHAR(M) M 为 0~65535 之间的整数
    
    BLOB TINYBLOB 允许长度 0~255 字节
    
    BLOB 允许长度 0~65535 字节
    
    MEDIUMBLOB 允许长度 0~167772150 字节
    
    LONGBLOB 允许长度 0~4294967295 字节
    
    
    CLOB 
    TINYTEXT 允许长度 0~255 字节
    
    TEXT 允许长度 0~65535 字节
    
    MEDIUMTEXT 允许长度 0~167772150 字节
    
    LONGTEXT 允许长度 0~4294967295 字节
    
    
    二进制 
    VARBINARY(M) 允许长度 0~M 个字节的变长字节
    
    BINARY(M) 允许长度 0~M 个字节的定长字节
    

    具体操作:

    -- 创建 student 表包含 id,name,birthday 字段
    CREATE TABLE student (
    
     id INT,
    
     name VARCHAR(20),
    
     birthday DATE
    
    );
    

    快速创建一个表结构相同的表

    CREATE TABLE 新表名 LIKE 旧表名;

    具体操作:

     创建 s1 表,s1 表结构和 student 表结构相同
    CREATE TABLE s1 LIKE student;

    查看表

    查看某个数据库中的所有表
    SHOW TABLES;
    
    查看表结构
    DESC 表名;
    
    查看创建表的 SQL 语句(以SQL语句返回表结构)
    SHOW CREATE TABLE 表名;

    具体操作:

     查看 mysql 数据库中的所有表
    SHOW TABLES;
    
     查看 student 表的结构
    DESC student;
    
     查看 student 的创建表 SQL 语句
    SHOW CREATE TABLE student;

    删除表

    直接删除表
    DROP TABLE 表名;
    
    判断表是否存在并删除表
    DROP TABLE IF EXISTS 表名;

    具体操作:

     直接删除表 s1 表
    DROP TABLE s1;
    
     判断表是否存在并删除 s1 表
    DROP TABLE IF EXISTS s1;

    修改表结构

    添加表列
    ALTER TABLE 表名 ADD 列名 类型;
     为学生表添加一个新的字段 remark,类型为 varchar(20)
    ALTER TABLE student ADD remark VARCHAR(20);
    
    
    修改列类型
    ALTER TABLE 表名 MODIFY 列名 新的类型;
     将 student 表中的 remark 字段的改成 varchar(100)
    ALTER TABLE student MODIFY remark VARCHAR(100);
    
    
    修改列名
    ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
     将 student 表中的 remark 字段名改成 intro,类型 varchar(30)
    ALTER TABLE student CHANGE remark intro varchar(30);
    
    
    删除列
    ALTER TABLE 表名 DROP 列名;
     删除 student 表中的字段 intro
    ALTER TABLE student DROP intro;
    
    修改字符集
    ALTER TABLE 表名 character set 字符集; 具体操作:
     将 student2 表的编码修改成 gbk
    ALTER TABLE student2 character set gbk;

    修改表名

    RENAME TABLE 表名 TO 新表名;
     将学生表 student 改名成 student2
    RENAME TABLE student TO student2;

    展开全文
  • Oracle轻松取得建表和索引的DDL语句
  • MySQL 8.0开始支持原子数据定义语言(DDL)语句。此功能称为原子DDL。这篇文章主要介绍了MySQL8.0新特性——支持原子DDL语句,需要的朋友可以参考下
  • 正在看的ORACLE教程是:Oracle9i取得建表和索引的DDL语句。我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的事。我们通常的做法都是通过export with rows=no来得到,但它的输出因为格式的问题并不能...
  • ORACLE审计DDL语句

    千次阅读 2018-05-03 16:28:22
    创建存储DDL语句的表 创建 捕获DDL语句的触发器 创建审计DDL的触发器成功,并且是生效的 查看并确认隐藏参数_system_trig_enabled 为 true: 创建测试账户test 进行测试 创建存储DDL语句的表 create ...

    创建存储DDL语句的表

    create table audit_ddl
    (
    opertime timestamp PRIMARY KEY,
    ip varchar2(20),
    hostname varchar2(30),
    operation varchar2(30),
    object_type varchar2(30),
    object_name varchar2(30),
    sql_stmt clob,
    db_schema varchar2(30)
    );

    创建 捕获DDL语句的触发器

    create or replace trigger trg_audit_ddl
      after ddl on database
    DECLARE
      PRAGMA AUTONOMOUS_TRANSACTION;
      n        NUMBER;
      stmt     clob := NULL;
      sql_text ora_name_list_t;
    BEGIN
      n := ora_sql_txt(sql_text);
      FOR i IN 1 .. n LOOP
        stmt := stmt || sql_text(i);
      END LOOP;
      INSERT INTO audit_ddl
        (opertime, ip, hostname, operation, object_type, object_name, sql_stmt,db_schema)
      VALUES
        (systimestamp,
         sys_context('userenv', 'ip_address'),
         sys_context('userenv', 'terminal'),
         ora_sysevent,
         ora_dict_obj_type,
         ora_dict_obj_name,
         stmt,
         user
       );
      COMMIT;
    END;
    /

    创建审计DDL的触发器成功,并且是生效的

    SYS@ >select t.object_name,t.object_type,t.status,t.last_ddl_time from  dba_objects t where t.object_type='TRIGGER' and t.object_name='TRG_AUDIT_DDL';
    
    OBJECT_NAME          OBJECT_TYPE         STATUS  LAST_DDL_TIME
    -------------------- ------------------- ------- ------------------
    TRG_AUDIT_DDL        TRIGGER             VALID   03-MAY-18

    查看并确认隐藏参数_system_trig_enabled 为 true:

    SYS@ >SELECT   ksppinm, ksppstvl, ksppdesc FROM   x$ksppi x, x$ksppcv y WHERE   x.indx = y.indx AND  ksppinm = '_system_trig_enabled';
    
    KSPPINM              KSPPSTVL             KSPPDESC
    -------------------- -------------------- ----------------------------------------
    _system_trig_enabled TRUE                 are system triggers enabled

    创建测试账户test 进行测试

    SYS@  >create user test identified by 123456;
    User created.
    
    SYS@ >grant connect,resource to test;
    
    Grant succeeded.
    
    SYS@  >conn test/123456;
    Connected.
    
    TEST@ >create table audit_ddl_test(id number,name varchar2(20));
    
    Table created.
    TEST@  >insert into audit_ddl_test values(1,'wwww');
    
    1 row created.
    
    TEST@  >commit;
    
    Commit complete.
    
    TEST@ >truncate table audit_ddl_test;
    
    Table truncated.
    
    TEST@ >alter table audit_ddl_test add (insert_date date default(sysdate));
    
    Table altered.
    
    TEST@>desc audit_ddl_test
     Name                                                                                      Null?    Type
     ----------------------------------------------------------------------------------------- -------- ------------------------------------------------------------
     ID                                                                                                 NUMBER
     NAME                                                                                               VARCHAR2(20)
     INSERT_DATE                                                                                        DATE
    
    TEST@ >drop table audit_ddl_test;
    
    Table dropped.
    SYS@  >select * from audit_ddl where db_schema='TEST';
    
    OPERTIME        IP              HOSTNAME        OPERATION                      OBJECT_TYPE                    OBJECT_NAME
    --------------- --------------- --------------- ------------------------------ ------------------------------ --------------------
    SQL_STMT                                                                         DB_SCHEMA
    -------------------------------------------------------------------------------- ---------------
    03-MAY-18 04.12                 pts/1           CREATE                         TABLE                          AUDIT_DDL_TEST
    .13.072252 PM
    create table audit_ddl_test(id number,name varchar2(20))                         TEST
    
    
    03-MAY-18 04.14                 pts/1           TRUNCATE                       TABLE                          AUDIT_DDL_TEST
    .27.000973 PM
    truncate table audit_ddl_test                                                    TEST
    
    03-MAY-18 04.16                 pts/1           ALTER                          TABLE                          AUDIT_DDL_TEST
    .48.211531 PM
    alter table audit_ddl_test add (insert_date date default(sys                     TEST
    date))
    
    03-MAY-18 04.17                 pts/1           ALTER                          TABLE                          AUDIT_DDL_TEST
    .20.898208 PM
    ALTER TABLE "TEST"."AUDIT_DDL_TEST" RENAME TO "BIN$a0nVHhtJf                     TEST
    kTgU5cAAArVkA==$0"
    
    03-MAY-18 04.17                 pts/1           DROP                           TABLE                          AUDIT_DDL_TEST
    .20.900534 PM
    drop table audit_ddl_test                                                        TEST
    展开全文
  • Sql语句中的DDL语句

    万次阅读 多人点赞 2018-08-10 19:29:33
    一、什么是DDL语句? 数据库模式定义语言DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。主要由create(添加)、alter(修改)、drop(删除)和 truncate(删除) 四个关键字完成...

    一、什么是DDL语句?

    数据库模式定义语言DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。主要由create(添加)、alter(修改)、drop(删除)和 truncate(删除) 四个关键字完成。

    二、常见的数据库对象

    三、create关键字

    1、创建一个数据库

    create database 数据库名;     //建立一个数据库
    create database 数据库名 default charset utf8 collate utf8_general_ci;    //建立一个数据库并制定编码格式
    

    2、创建一个表

    表是存放在数据库中的只能在数据库下创建表

    创建表时自然会用到表的约束

    完整性约束条件是对字段进行限制,要求用户对该属性进行的操作符合特定的要求。如果不满足完整性约束条件,数据库系统将不执行用户的操作。说白了,数据库约束条件就是保证数据库中数据的完整性。


    在哪一个数据库下创建表首先需要切换到此数据库下

    use 数据库名;    //使用某个指定的数据库

    在这个数据库下创建表(关键字不区分大小写)

    
    create table 表名称(字段1 类型,字段2 类型);   //在一个数据库中创建一个表
    create table hero_table ( id int,name varchar(10));    //创建表
    
    //创建表并增加约束
    CREATE TABLE 表名称 (
          字段1 类型1 约束1 约束1,
          字段2 类型2 约束2 约束2 
    );
    //创建表并增加约束
    CREATE TABLE hero_table4 (
          id INT(11) NOT NULL PRIMARY KEY,
          NAME VARCHAR(10) NOT NULL UNIQUE KEY 
    )

    3、使用create复制表

    //只复制表结构及约束,但不复制数据
    CREATE TABLE 复制出的表 LIKE 原表
    //复制表结构及数据,但不复制约束
    CREATE TABLE 复制出的表 AS SELECT * FROM 原表

    四、alter关键字

    1、添加字段

    ALTER TABLE 表名称 ADD 字段名 字段约束
    ALTER TABLE 表名称 ADD COLUMN 字段名 字段约束

    2、添加索引

        ALTER TABLE 表名称 ADD INDEX 索引名称 (字段名)

    3、添加主键

        ALTER TABLE 表名称 ADD PRIMARY KEY (字段名)
        ALTER TABLE 表名称 ADD UNIQUE KEY (字段名)

    4、添加外键约束

     ALTER TABLE 需要添加外键表名称 ADD FOREIGN KEY 外键名(设为外键的字段) REFERENCES 被添加外键表名称(设为被添加外键的字段)

    5、修改字段类型时要注意字段类型的兼容性及精度,除非该列全部数据为null

    ALTER TABLE 表名称 CHANGE COLUMN NAME 修改字段 修改为字段类型
    ALTER TABLE 表名称 MODIFY COLUMN 修改字段 修改为字段类型

    6、修改与删除表中default

    //设置default
    ALTER TABLE 表名称 ALTER COLUMN 字段名 SET DEFAULT  '修改的值'
    //删除default
    ALTER TABLE 表名称 ALTER COLUMN 字段名 DROP DEFAULT 

    7、禁用和启用约束

    //禁用约束
    ALTER TABLE 表名称 DISABLE KEYS
    //启用约束
    ALTER TABLE 表名称 ENABLE KEYS
    

    8、删除表字段、主键、索引、外键约束

    //删除表字段
    ALTER TABLE 表名称 DROP COLUMN 字段名
    //删除主键
    ALTER TABLE 表名称 DROP PRIMARY KEY
    //删除索引
    ALTER TABLE 表名称 DROP INDEX 索引的字段名
    //删除外键约束
    ALTER TABLE 表名称 DROP FOREIGN KEY 外键的字段名
    


    9、修改表名

    ALTER TABLE 修改前表名称 RENAME 修改后表名称

    五、drop关键字

    1、删除数据库

    DROP DATABASE 数据库名

    2、删除表

    DROP TABLE 表名称

    六、truncate关键字

    与drop的区别:truncate只删除数据不删除表的结构(定义),释放空间

    删除表

    truncate table 表名称;

     

    展开全文
  • DDL parase并转换为BigQuery JSON模式和DDL语句模块,可在Python中使用。 特征 DDL解析并获取表架构信息。 当前,仅支持CREATE TABLE语句。 转换为和。 支持的数据库是MySQL / MariaDB,PostgreSQL,Oracle,...
  • dml语句和ddl语句 区别

    2019-02-18 13:41:00
    删除所有记录,属于ddl语句,将表删除,然后重新创建一个结构一样的表。事务不能控制ddl的 DDL:Data Definition Languages 数据定义语言,用来维护数据库对象,对数据库内部的对象进行创建、删除...

    delete from user
    删除所有记录,属于dml语句,一条记录一条记录删除。事务可以作用在dml语句上的

     


    truncate table user;
    删除所有记录,属于ddl语句,将表删除,然后重新创建一个结构一样的表。事务不能控制ddl的

     

     

     

    DDL:Data Definition Languages 数据定义语言,用来维护数据库对象,对数据库内部的对象进行创建、删除、修改的操作语言。
    常用的语句关键字主要包括 create、drop、alter等

     

    DML:Data Manipulation Language 数据操纵语句
    常用的语句关键字主要包括 insert、delete、udpate 和select 等。(增添改查)

     

    DCL: Data Control Language 数据控制语句
    主要的语句关键字包括 grant、revoke 等。

     

    转载于:https://www.cnblogs.com/qianjinyan/p/10278106.html

    展开全文
  • SQL中的DDL语句

    2021-03-30 20:19:28
    SQL中DDL语句的使用方法SQL语句分类DDL操作数据库创建数据库查看数据库修改数据库删除数据库其他语句DDL操作表DDL其他表操作 SQL语句分类 DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库...
  • Oracle 获取ddl语句

    2017-02-06 19:52:00
    --得到所有表空间的ddl语句SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name)FROM DBA_TABLESPACES TS; --得到所有创建用户的ddl语句SELECT DBMS_METADATA.GET_DDL('USER',U.username)FROM DBA_...
  • Datagrip DDL语句不更新

    2020-09-08 11:05:44
    Datagrip DDL语句不更新 由于datagrip本地缓存的原因,导致数据库的建表语句改变,但是datagrip的ddl查看建表语句的数据未更新 解决方法
  • statement对象执行DDL语句 import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import org.junit.Test; /** * 使用Statement对象执行静态...
  • 数据库之DDL语句

    2020-03-21 14:58:30
    数据库之DDL语句 什么是数据库? 我们在软件的实现过程中,会产生很多的数据,比如我们在淘宝上下单,那么就会产生一条订单数据,我在银行卡存了5000块钱,那么同样也会产生一条数据,这些数据都会存放在数据库中的...
  • DDL语句--查看表

    2019-04-23 16:49:31
    DDL语句--查看表
  • 利用该软件,能输出Access数据库表的DDL语句
  • 1、获得单个表和索引DDL语句的方法: set heading off; set echo off;Set pages 999; set long 90000; spool get_TABLE_ddl.s...
  • 导出数据库的DDL语句

    千次阅读 2019-03-17 11:36:05
    导出数据库的DDL语句 1. 方法1:: 使用包dbms_metadata.get_ddl 只能对一个单独对象使用,不能批量导出。 select dbms_metadata.get_ddl('USER',UPPER('HR'...
  • 转 ORACLE 使用DBMS_METADATA.GET_DDL获取DDL语句https://blog.csdn.net/tianlesoftware/article/details/4868007 Oracle 在9i以后,可以利用DBMS_METADATA.GET_DDL包得到数据库的对象的ddl脚本。如下(SQLPLUS中...
  • MySQL中的DDL语句,DML语句初步

    千次阅读 2017-03-15 23:56:58
    MySQL中的DDL语句: 1.建表语句 - CREATE TABLE ...; CREATE TABLE 表名( columnName dataType(length) [行级约束], columnName dataType(length) [行级约束], columnName dataType(length) [行级约束], column...
  • oracle导出ddl语句 表 所有 过程 包
  • MySQL使用DDL语句创建表

    千次阅读 2019-06-30 21:35:57
    使用DDL语句创建表 知识要点 CREATE TABLE语句 列的数据类型 添加数据类型选项 根据已有的表来创建新表 列选项 表选项 约束 对表名和列名使用反引号 CREATE TABLE语句 对于一个表有列和行,对于列有标题和数据...
  • DDL语句为什么不能回滚

    千次阅读 2017-09-25 14:39:28
    在Sqlserver或一些其他的数据库中,DDL语句也是可以回滚的,那么Oracle为什么不能回滚DDL语句呢。 这个问题来自:http://www.itpub.net/thread-1300088-1-5.html     要说明这个问题,首先需要说明什么是DDL...
  • 获取建表DDL语句

    2015-11-16 16:27:08
    平时经常通过PL/SQL Developer的View SQL选项查看建表语句,非常便捷;那么,如果没有图形化工具,我们如何获取指定表的建表DDL语句呢?也很简单,只需要一个查询语句,就可以获取对象的详细的DDL描述。 ...
  • 1、当执行到DDL语句时,会隐式的将当前回话的事务进行一次“COMMIT”操作,因此在MySQL中执行DDL语句时,应该严格地将DDL和DML完全分开,不能混合在一起执行。 2、为什么DDL语句会隐式提交? 因为DDL是数据定义语言...
  • MySQL系列-详解DDL语句

    千次阅读 2018-06-10 20:55:47
    DDL(Data Definition Languages)语句:数据定义语言,这些...下面具体介绍各种常用DDL语句:1.数据库级别显示所有数据库:show databases;进入某个数据库:use db_name;创建一个数据库:create databse db_na...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 121,489
精华内容 48,595
关键字:

ddl语句