ddl

DML、DDL、DCL区别简述

南笙酒味 提交于 2020-01-30 18:59:15
DML(数据操作语言) Data Manipulation Language 它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL(数据定义语言) Data Definition Language DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用 DCL(数据控制语言) Data Control Language 用来设置或更改数据库用户或角色权限的语句。 包括(grant,deny,revoke等)语句。 在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL 来源: CSDN 作者: ipuxin(壹朴心) 链接: https://blog.csdn.net/yuhezheg/article/details/104115282

SQL之DDL

给你一囗甜甜゛ 提交于 2020-01-28 12:11:45
DDL是SQL定义语言,它主要包括三个关键字:create ,alter , drop( 数据库关键字不分大小写 ),主要操作对象 有数据库、表、索引、视图等 操作 语句 创建数据库 create database 修改数据库 alter database 删除数据库 drop database 创建表 create table 修改表 alter table 删除表 drop table 创建所以 create index 删除索引 drop index ........... .................... 1.create 创建数据库、表、所以、视图等操作。 例子:常见一个人事表,包括字段(一个字段就是表里一列,它也是人的一个属性)有 ID,姓,名, 地址,城市。 use scott create table person ( id int primary key , lastname char(10), firstname char(10), addres char(20), city char(20) ) 上述指令表示在scott 数据库下面创建person表,其中person表有5个字段,id 为主键,主键的意思是能唯一标识一行记录,就像人的身份证是不同的,它能唯一标识出一个人。 通过语句 select * from person 可以看出创建的person表

mysql 数据库定义语言(DDL)

偶尔善良 提交于 2020-01-28 10:08:20
登录数据库: mysql -uroot -p密码 DDL:数据定义语言 操作对象:数据库和表 关键词:create alter drop 操作数据库: 创建: 格式: create database 数据库名称; 删除: 格式: drop database 数据库名称; 常用的命令: 查看所有的数据库: show databases; 操作表: 创建表 格式: create table 表名(字段描述,字段描述); 字段描述: 字段名称 字段类型 [约束] 例如: create table user( id int primary key auto_increment, username varchar(20) ); create table user1( id int primary key auto_increment, username varchar(20) ); 修改表 格式: alter table 表名 .... 修改表名: alter table 旧表名 rename to 新表名; 例如: alter table user1 rename to user10; 添加字段: alter table 表名 add [column] 字段描述; 例如: alter table user add password varchar(20); 修改字段名: alter

String/INT96 to Datatime - Amazon Athena/SQL - DDL/DML

喜欢而已 提交于 2020-01-25 09:06:08
问题 I have hosted my data on S3 Bucket in parquet format and i am trying to access it using Athena. I can see i can successfully access the hosted table. I detected something fishy when i try to access a column "createdon". createdon is a timestamp column and it reflects same on Athena table, but when i try to query it using the provided SQL below query SELECT createdon FROM "uat-raw"."opportunity" limit 10; Unexpected output : +51140-02-21 19:00:00.000 +51140-02-21 21:46:40.000 +51140-02-22 00

String/INT96 to Datatime - Amazon Athena/SQL - DDL/DML

萝らか妹 提交于 2020-01-25 09:04:16
问题 I have hosted my data on S3 Bucket in parquet format and i am trying to access it using Athena. I can see i can successfully access the hosted table. I detected something fishy when i try to access a column "createdon". createdon is a timestamp column and it reflects same on Athena table, but when i try to query it using the provided SQL below query SELECT createdon FROM "uat-raw"."opportunity" limit 10; Unexpected output : +51140-02-21 19:00:00.000 +51140-02-21 21:46:40.000 +51140-02-22 00

Oracle : Is it possible to create a Role in a Trigger?

自闭症网瘾萝莉.ら 提交于 2020-01-24 20:31:06
问题 I have a separate table with some data and I would like to a create a new role each time a new row is inserted in that table. I created the following trigger: create or replace TRIGGER TestTrigger BEFORE INSERT ON TestTable REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW BEGIN create role :New.RoleName; END; but the trigger doesn't compile. I have the error: PLS-00103: PLS-00103: Encountered the symbol "CREATE" when expecting one of the following: ( begin case declare exit for goto if loop mod

MS SQL监控数据库的DDL操作

一笑奈何 提交于 2020-01-24 15:34:02
前言: 有时候,一个数据库有多个帐号,包括数据库管理员,开发人员,运维支撑人员等,可能有很多帐号都有比较大的权限,例如DDL操作权限(创建,修改,删除存储过程,创建,修改,删除表等),账户多了,管理起来就会相当麻烦,容易产生混乱,如果数据库管理员不监控数据库架构变更的话,就不知道谁对数据库架构做了啥改动(此处改动仅仅只DDL操作),尤其有时候,有些开发人员可能不按规章制度办事,绕过或忘了通知发布人员或DBA,直接去生产机做一些DDL操作,那么我们就需要对数据库架构某些更改的事件进行监控,如果能够监控并留下证据,这样既可以让DBA或相关管理人员知晓这些变更,有效管理数据库,也可以避免出现问题,出现扯皮现象,最后DBA成了背黑锅的。 下面就是一个解决上述问题的方案,我们通过创建一个表DatabaseLog和DDL触发器来解决问题,首先在msdb数据库里面新建一个表DatabaseLog,用来保存DDL触发器获取的信息。其中DDL触发器主要通过EVENTDATA()函数返回有关服务器或数据库事件的信息。 SQL Code 1 USE msdb ; GO CREATE TABLE [dbo] . [DatabaseLog] ( [DatabaseLogID] [int] IDENTITY ( 1 , 1 ) NOT NULL, [PostTime] [datetime] NOT NULL,

drop tablespace if do not exist

陌路散爱 提交于 2020-01-24 08:58:06
问题 I have written pl/sql script (works, but doesn't look nice): DECLARE v_exists NUMBER; BEGIN SELECT count(*) INTO v_exists FROM dba_tablespaces WHERE tablespace_name = 'hr_test'; IF v_exists > 0 THEN BEGIN EXECUTE IMMEDIATE 'DROP TABLESPACE hr_test INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS'; END; END IF; EXECUTE IMMEDIATE 'CREATE TABLESPACE hr_RJ DATAFILE ''E:\hr_test_01.dbf'' SIZE 16M'; END; Is there any way to rewrite this script without EXECUTE IMMEDIATE ? 回答1: No. You cannot

什么是dql,dml,ddl,dcl?(数据库)

点点圈 提交于 2020-01-23 16:17:54
SQL(Structure Query Language)结构化查询语言 DQL(data query language)数据查询语言 select操作 DML(data manipulation language)数据操作语言,主要是数据库增删改三种操作 DDL(data defination language)数据库定义语言,主要是建表、删除表、修改表字段等操作 DCL(data control language)数据库控制语言,如commit,revoke之类的,在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL 来源: https://www.cnblogs.com/daiwenxiang/p/12230696.html

SQL Server 2005中使用DDL触发器监控数据库变化

。_饼干妹妹 提交于 2020-01-23 13:18:35
添加,删除或修改数据库的对象,一旦误操作,可能会导致大麻烦,需要一个数据库管理员或开发人员对相关可能受影响的实体进行代码的重写。   为了在数据库结构发生变动而出现问题时,能够跟踪问题,定位问题的根源,我们可以利用DDL触发器来记录类似“用户建立表”这种变化的操作,这样可以大大减轻跟踪和定位数据库模式的变化的繁琐程度。    1、DDL触发器介绍   DDL 触发器是一种特殊的触发器,它在响应数据定义语言 (DDL) 语句时触发。它们可以用于在数据库中执行管理任务,例如,审核以及规范数据库操作。   使用 DDL 触发器,可以达到以下几种目的:    要防止对数据库架构进行某些更改。   希望数据库中发生某种情况以响应数据库架构中的更改。   要记录数据库架构中的更改或事件。   与标准的DML触发器一样,DDL 触发器在响应事件时执行存储过程。 但与标准的DML触发器不同的是,它们并不在响应对表或视图的 UPDATE、INSERT 或 DELETE 语句时执行存储过程。 它们主要在响应数据定义语言 (DDL) 语句执行存储过程。 这些语句包括 CREATE、ALTER、DROP、GRANT、DENY、REVOKE 和 UPDATE STATISTICS 等语句。 执行 DDL 式操作的系统存储过程也可以激发 DDL 触发器。    2、如何使用DDL触发器   第一步