难道只有在命令行用db2look?目前只找到查询存储过程的SQL,还没找到获取表、视图DDL脚本的方法。select routinename,text from sysibmsysroutines;
DML(data manipulation language)数据 *** 纵语言:
就是我们最经常用到的 SELECT、UPDATE、INSERT、DELETE。 主要用来对数据库的数据进行一些 *** 作。
比如:
SELECT 列名称 FROM 表名称
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
INSERT INTO table_name (列1, 列2,) VALUES (值1, 值2,)
DELETE FROM 表名称 WHERE 列名称 = 值
DDL(data definition language)数据库定义语言:
其实就是我们在创建表的时候用到的一些sql,比如说:CREATE、ALTER、DROP等。DDL主要是用在定义或改变表的结构,数据类型,表之间的链接和约束等初始化工作上。
比如:
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
)ALTER TABLE table_nameALTER COLUMN column_name datatypeDROP TABLE 表名称DROP DATABASE 数据库名称
扩展资料:
DCL(Data Control Language)——数据控制语言,用来授予或回收访问数据库的某种特权,并控制数据库 *** 纵事务发生的时间及效果,对数据库实行监视等。
数据库控制功能,用来设置或更改数据库用户或角色权限的语句,包括grant,deny,revoke等语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL 详细解释。
(1)COMMIT - save work done 提交
(2)SAVEPOINT - identify a point in a transaction to which you can later roll back 保存点
(3)ROLLBACK - restore database to original since the last COMMIT 回滚
(4)SET TRANSACTION - Change transaction options like what rollback segment to use 设置当前事务的特性,它对后面的事务没有影响
DDL运用场景(DDL Scene)
(一) 首先我们来看一个简单的例子:创建数据库DDL_DB和一个名为DatabaseLog的表,现在创建一个DDL触发器:禁止用户修改和删除表,并进行提醒。执行下面的SQL脚本进行测试。
--Script1:
--创建测试数据库
USE MASTER
GO
CREATE DATABASE DDL_DB
--创建DDL触发器记录表
USE DDL_DB
GO
CREATE TABLE [dbo][DatabaseLog](
[DatabaseLogID] [int] IDENTITY(1,1) NOT NULL,
[PostTime] [datetime] NOT NULL,
[ServerName] [sysname] NOT NULL,
[LoginName] [sysname] NOT NULL,
[DatabaseUser] [sysname] NOT NULL,
[DatabaseName] [sysname] NOT NULL,
[Schema] [sysname] NULL,
[Object] [sysname] NULL,
[TSQL] [nvarchar](max) NOT NULL,
[Event] [sysname] NOT NULL,
[XmlEvent] [xml] NOT NULL,
CONSTRAINT [PK_DatabaseLog_DatabaseLogID] PRIMARY KEY NONCLUSTERED
(
[DatabaseLogID] ASC
) ON [PRIMARY]
) ON [PRIMARY]
--Script2:
--创建DDL触发器:禁止修改或者删除数据表
CREATE TRIGGER DDL_TableTrigger
ON DATABASE
FOR DROP_TABLE, ALTER_TABLE
AS
PRINT '对不起,您不能对数据表进行 *** 作,请联系DBA'
ROLLBACK ;
--测试删除表
USE DDL_DB
GO
DROP TABLE [DatabaseLog]
(Figure1:创建数据库级别的DDL)
(Figure2:返回的提示信息)
(Figure3:SSMS返回的提示信息)
创建数据库级别的DDL之后会出现在数据库触发器列表中,如Figure1;当执行删除表的Drop等DDL命令的时候,就会出现Figure2的提示信息;如果是在SSMS中删除表则会出现Figure3的提示信息。
(二) 在上面的基础上再进行扩展,创建一个DDL触发器:禁止用户删除数据库,并进行提醒。
--Script3:
--禁止SQL Server服务器里删除数据库
CREATE TRIGGER DDL_DataBaseTrigger
ON ALL SERVER
FOR DROP_DATABASE
AS
PRINT '对不起,您不能删除数据库,请联系DBA'
ROLLBACK;
--测试删除数据库
USE MASTER
GO
DROP DATABASE [DDL_DB]
(Figure4:创建服务器级别的DDL)
(Figure5:返回的提示信息)
(Figure6:SSMS返回的提示信息)
创建服务器级别的DDL之后会出现在服务器对象-触发器的列表中,如Figure4;当执行删除数据库的Drop等DDL命令的时候,就会出现Figure5的提示信息;如果是在SSMS中删除数据库则会出现Figure6的提示信息。
(三) 很多时候在程序开发阶段是不会禁用对数据库的修改的,这些时候我们更希望是记录数据库的修改信息,方便对信息进行跟踪检查。使用 EVENTDATA 函数,可以捕获有关激发 DDL 触发器的事件的信息,此函数返回 xml 值。
前面已经创建了数据表DatabaseLog,创建下面的DDL_DatabaseLog触发器,每当数据库发生DDL事件,DDL触发器就会把相关的DDL信息插入到DatabaseLog表,信息包括 *** 作的时间, *** 作人, *** 作的SQL等。
执行Script5测试脚本,返回Figure7的信息,查询DatabaseLog表,返回的记录有2条,一条是创建表信息,一条是删除表信息,如Figure8、Figure9所示。
此题答案为DDL。
数据库模式定义语言DDL(Data
Definition
Language),是用于描述数据库中要存储的现实世界实体的语言。一个数据库模式包含该数据库中所有实体的描述定义。这些定义包括结构定义、 *** 作方法定义等。
DML
=
Data
Manipulation
Language,数据 *** 纵语言,命令使用户能够查询数据库以及 *** 作已有数据库中的数据的计算机语言。具体是指是UPDATE更新、INSERT插入、DELETE删除。
DML(Data
Manipulation
Language)数据 *** 纵语言,SQL的分类之一,此外还有DDL(Data
Definition
Language)数据定义语言和DCL(Data
Control
Language)数据控制语言。DML包括:INSERT、UPDATE、DELETE。注意,select语句属于DQL(Data
Query
Language)。1
select from all_jobs;
select from user_jobs;
select from dba_jobs;
看你的权限了,DBA就能查到所有jobs的信息
以上就是关于请问DB2如何查询表、存储过程等的DDL脚本全部的内容,包括:请问DB2如何查询表、存储过程等的DDL脚本、DDL与DML问题、如何获取 sqlserver table ddl等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)