DDL的定义,对上文的补充

 数据定义语言

数据定义语言(DDL)是 SQL 的子集。它是用于描述数据库中的数据及其关系的语言。
您可以在脚本中生成 DDL,供数据库对象:

    * 保留数据库结构的快照
    * 设置一个数据库充当生产系统,但不包含数据的测试系统
    * 为您可根据现有对象创建的新对象生成模板。例如,为 Customer 表生成 DDL,然后编辑该 DDL 以创建具有相同模式的表 Customer_New。

在生成 DDL 时,可使用 DDL 语句来重新创建关于数据库的各个方面(数据库的内容除外)。可生成 DDL 来完全重新创建数据库,或只重新创建数据库的某些方面(例如,数据库的当前统计信息)。也可以限制生成的语句,以便只重新创建数据库的一段(例如,一部分表的统计信息)。

 

set pagesize 0

set long 90000

set feedback off

set echo off

spool get_schema.sql

connect   user_/pwd_@dev

SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name)  FROM USER_TABLES u;

SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM USER_INDEXES u;

spool off;

 

在 SQL 中,DDL(数据定义语言)用于创建、修改和删除数据库对象,定义数据库的结构。以下是 DDL 定义结构的具体体现: ### 创建数据库对象 - **创建表**:可以使用 `CREATE TABLE` 语句创建表,定义表的列名、数据类型以及其他约束条件。例如创建一个人员信息表: ```sql create table actorinfo( id int comment '编号', name varchar(10) comment '姓名', age int comment '年龄', gender varchar(2) comment '性别', idcard varchar(18) comment '身份证号' ) comment '人员信息表'; ``` 该语句创建了一个名为 `actorinfo` 的表,包含 `id`、`name`、`age`、`gender` 和 `idcard` 五个列,并对表和列添加了注释 [^5]。 - **创建复杂数据类型的表**:在某些数据库(如 Hive)中,可以使用 `CREATE TABLE` 语句创建包含复杂数据类型的表。例如: ```sql CREATE TABLE A( col1 ARRAY<INT>, col2 MAP<STRING,INT>, col3 STRUCT<a:STRING,b:INT,c:DOUBLE> ); ``` 该语句创建了一个名为 `A` 的表,包含数组、映射和结构体等复杂数据类型的列 [^3]。 ### 修改数据库对象 - **修改表结构**:使用 `ALTER TABLE` 语句可以修改表的结构,如添加列、修改列的数据类型、删除列等。虽然没有具体示例,但一般语法如下: ```sql -- 添加列 ALTER TABLE table_name ADD COLUMN new_column datatype; -- 修改列的数据类型 ALTER TABLE table_name MODIFY COLUMN column_name new_datatype; -- 删除列 ALTER TABLE table_name DROP COLUMN column_name; ``` ### 删除数据库对象 - **删除表**:使用 `DROP TABLE` 语句可以删除表。例如: ```sql DROP TABLE actorinfo; ``` 该语句将删除名为 `actorinfo` 的表。 ### 定义特殊数据类型 - **精确存储浮点数**:使用 `numeric` 或 `decimal` 数据类型可以精确存储浮点数。例如: ```sql create table t5(id numeric(5,3)); ``` 该语句创建了一个名为 `t5` 的表,其中 `id` 列的数据类型为 `numeric`,总位宽为 5,小数位数为 3 [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值