数据定义语言
- 格式:ppt
- 大小:2.05 MB
- 文档页数:7
DDL数据定义语⾔DDL(Data Definition Language):数据定义语⾔,⽤于库和表的创建、修改、删除。
主要包括CREATE、DROP、ALTER语句;1、对数据库的操作-- 创建数据库create database [if not exists] 数据库名 [character set 字符集名];-- 删除数据库drop database [if exists] 数据库名;-- 修改数据库的字符集alter database 数据库名 character set gbk;2、常⽤的数据类型数值tinyint,⾮常⼩的数据,1个字节。
(bit)smallint,较⼩的数据,2个字节。
(short)mediumint,中等⼤⼩的数据,3个字节。
int,标准的整数,4个字节。
bigint,较⼤的整数,8个字节。
(long)float,单精度浮点数,4个字节。
double,双精度浮点数,8个字节。
decimal,字符串形式的浮点数(⽤于⾦融计算)。
字符串char,固定长字符串,⽐较耗费空间,长度⼤⼩:0~255。
varchar,可变字符串,长度⼤⼩:0~65535。
(String)tinytext,微型⽂本,2^8-1。
text,⽂本串,2^16-1。
(保存⼤⽂本)时间⽇期date,⽇期,YYYY-MM-DD。
time,时间,HH:mm:ss。
datetime,最常⽤的时间格式,YYYY-MM-DD HH:mm:ss。
timestamp,时间戳,1970.1.1到现在的毫秒数。
year,年份。
3、对表的操作表(table)是数据库的基本组成单元,所以数据都以表的形式组织,⽬的是可读性强。
表分为⾏和列,⾏:数据/记录(data),列:字段(column)字段属性:字段名,数据类型,相关的约束-- 创建数据表create table [if not exists] `表名`(`字段名` 列类型 [属性] [索引] [注释], -- 使⽤``来区分mysql⾃带的关键字...`字段名` 列类型 [属性] [索引] [注释])[表类型] [字符集设置];-- 删除数据表drop table [if exists] 表名;-- 添加字段alter table `表名` add(`字段名1` 字段类型1,...,`字段名n`,字段类型n);-- 修改字段类型alter table `表名` modify `字段名` 字段的新类型;-- 同时修改字段名和字段类型alter table `表名` change `字段名` `新字段名` 新字段类型;-- 删除字段alter table `表名` drop 字段名;-- 修改表名alter table `表名` rename to `新表名`;【⽰例 1】创建student表CREATE TABLE IF NOT EXISTS `student` (`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',`sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',`birthday` DATETIME DEFAULT NULL COMMENT '出⽣⽇期',`address` VARCHAR(100) DEFAULT NULL COMMENT '家庭地址',`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',PRIMARY KEY(`id`) -- 设置主键)ENGINE=INNODB DEFAULT CHARSET=utf8; -- 设置引擎和字符编码4、字段属性Unsigned:⽆符号的,声明的数据不允许为负数。
【MySQL】DDL数据定义语⾔的基本⽤法create、drop和alter(增删改)DDL 的基础语法⽂章⽬录简单复习⼀波 SQL必知必会DDL 的英⽂全称是 Data Definition Language(数据定义语⾔),它定义了数据库的结构和数据表的结构。
在 DDL 中,我们常⽤的功能是增删改,分别对应的命令是 CREATE、DROP 和 ALTER。
对数据库进⾏定义建数据库的基本SQL语法格式为:CREATE DATABASE database_name;//创建⼀个名为 database_name 的数据库“database_name”为要创建的数据库的名称,该名称不能与已经存在的数据库重名。
mysql> CREATE DATABASE database_name;Query OK, 1 row affected (0.00 sec)mysql> CREATE DATABASE database_name;ERROR 1007 (HY000): Can't create database 'database_name'; database exists删除数据库是将已经存在的数据库从磁盘空间上清除,清除之后,数据库中的所有数据也将⼀同被删除。
删除数据库的基本SQL语法格式为:DROP DATABASE database_name;//删除⼀个名为 database_name 的数据库“database_name”为要删除的数据库的名称。
若指定的数据库不存在,则删除出错。
mysql> DROP DATABASE database_name;Query OK, 0 rows affected (0.00 sec)mysql> DROP DATABASE database_name;ERROR 1008 (HY000): Can't drop database 'database_name'; database doesn't exist在这⾥插⼊图⽚描述mysql> CREATE DATABASE database_name;Query OK, 1 row affected (0.00 sec)mysql> CREATE DATABASE database_name;ERROR 1007 (HY000): Can't create database 'database_name'; database existsmysql> SHOW CREATE DATABASE database_name;+---------------+------------------------------------------------------------------------+| Database | Create Database |+---------------+------------------------------------------------------------------------+| database_name | CREATE DATABASE `database_name` /*!40100 DEFAULT CHARACTER SET utf8 */ |+---------------+------------------------------------------------------------------------+1 row in set (0.00 sec)mysql> DROP DATABASE database_name;Query OK, 0 rows affected (0.00 sec)mysql> SHOW CREATE DATABASE database_name;ERROR 1049 (42000): Unknown database 'database_name'CREATE DATABASE mysqlcrashcourse;// 创建⼀个名为 mysqlcrashcourse 的数据库DROP DATABASE mysqlcrashcourse;// 删除⼀个名为 mysqlcrashcourse 的数据库对数据表进⾏定义创建表结构的语法是这样的:CREATE TABLE table_name;创建⼀个名为 table_name的表⼀般要写⾄少写⼀⾏ A table must have at least 1 column,后⾯介绍如何创建表结构创建⼀个名为 table_name的表mysql> CREATE DATABASE database_name;Query OK, 1 row affected (0.00 sec)mysql> USE database_name;Database changedmysql> CREATE TABLE table_name;ERROR 1113 (42000): A table must have at least 1 columnmysql> CREATE TABLE table_name( name VARCHAR(50) NOT NULL);Query OK, 0 rows affected (0.01 sec)mysql> show tables;+-------------------------+| Tables_in_database_name |+-------------------------+| table_name |+-------------------------+1 row in set (0.00 sec)mysql> CREATE TABLE table_name( name VARCHAR(50) NOT NULL);ERROR 1050 (42S01): Table 'table_name' already existsmysql>删除表的基本SQL语法格式为:DROP TABLE table_name;DROP TABLE [IF EXISTS] table_name;DROP TABLE table_name;删除⼀个名为 table_name的表DROP TABLE IF EXISTS table_name;执⾏了这条语句如果存在table_name表就删除,不存在不会报错也是执⾏。
数据库的DDL、DML、DQL、DCL名词详解展开全文简言之:1,DDL(DataDefinitionLanguage):数据定义语言,用来定义数据库对象:库、表、列等;2,DML (DataManipulationLanguage):数据操作语言,用来定义数据库记录(数据);3,DQL(DataQueryLanguage):数据查询语言,用来查询记录(数据);4,DCL(DataControlLanguage):数据控制语言,用来定义访问权限和安全级别。
举例说明1,DDL用来定义数据库对象:库、表、列等;适用范围:对数据库中的某些对象(例如,database,table)进行管理,如Create,Alter和Drop.注意:在生产环境中,DDL类操作需要慎用,因为不能做roolback操作,一旦执行无法回退。
2,DML对数据库中的数据进行一些简单操作,,如insert,delete,update,select(插入、删除、修改、检索)等都是DML.对select来说,它有两种划分方法,可以放在DML,也可以单独放在DQL3,DQL用来查询记录(数据);基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT <字段名表>FROM <表或视图名>WHERE <查询条件> 4,DCL用来定义访问权限和安全级别。
数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。
如:1.GRANT:授权。
2.ROLLBACK [WORK]TO[SAVEPOINT]:回退到某一点。
回滚—ROLLBACK回滚命令使数据库状态回到上次最后提交的状态。
其格式为:SQL>ROLLBACK;MIT [WORK]:提交。
在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成。
在事务提交前,只有操作数据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到。
汇编语法大全汇编语言是一种底层的计算机语言,可以用来编写应用程序、驱动程序和嵌入式系统等。
其语法简洁、效率高,但也较为复杂。
下面是汇编语法大全,希望对大家能有所帮助。
1. 注释语句注释语句是程序员为了方便自己和他人阅读代码而添加的语句。
汇编语言中,使用分号(;)表示注释语句,写在行尾。
示例:mov ax, bx ;将bx寄存器的值赋给ax寄存器2. 标号语句标号语句用来表示程序中的一个位置,在汇编程序中可以用它来实现跳转、条件执行等功能。
标号语句必须在第一行,以字母开头,由数字、字母和下划线组成,长度不超过32个字符。
3. 数据定义语句数据定义语句用来为变量、常量分配存储空间,可以为它们指定初值。
汇编语言中,数据定义语句有三种形式:db、dw、dd。
db:定义一个字节(8位)长度的数据,可以用来存储字符、布尔型变量等。
data1 db 'A' ;定义一个字符型变量,初值为'A'4. 操作数表示操作数即指令中被操作的对象,可以是通用寄存器、内存单元、立即数等。
汇编指令中,操作数的表示方法主要有以下几种:寄存器表示法:使用寄存器的名称表示操作数,如AL、AX、DX等。
立即数表示法:表示一个常量数值,用于参与运算或存储到内存中,如100、0AH等。
内存变量表示法:使用内存变量的地址表示操作数,如[2000H]、[BX]等。
mov al, 02h ;将立即数02h赋给AL寄存器mov byte ptr ds:[bx], al ;将AL寄存器的值存储到2000h地址所指向的内存单元中5. 寻址方式汇编语言中,寻址方式用于表示操作数在内存中的地址。
汇编语言提供了多种寻址方式,例如寄存器间接寻址、基址变址寻址、相对寻址等。
寄存器间接寻址寄存器间接寻址是指操作数的地址存储在一个寄存器中。
例如,[BX]表示将BX寄存器中的值作为地址,访问该地址存储的数据。
基址变址寻址相对寻址相对寻址是指让程序计算出偏移量以便于寻址,这种寻址方式用于程序中的跳转指令。
MySQL数据定义语⾔(DDL)参考资料:SQL 包含以下4部分:1数据定义语⾔(DDL):DROP、CREATE、ALTER 等语句。
2数据操作语⾔(DML):INSERT(插⼊)、UPDATE(修改)、DELETE(删除)语句。
3数据查询语⾔(DQL):SELECT 语句。
4数据控制语⾔(DCL): GRANT、REVOKE、COMMIT、ROLLBACK 等语句。
MySQL之DDL(Data Definition Language): 数据定义语⾔:CREATE,ALTER,DROP等DDL:操作数据库,表(CRUD)1、操作数据库(CRUD)(1)C(Create):创建数据库CREATE DATABASE[IF NOT EXISTS]数据库名[[DEFAULT]CHARACTER SET字符集名][[DEFAULT] COLLATE 校对规则名];[]中的内容是可选的。
语法说明如下:数据库名:创建数据库的名称。
MySQL 的数据存储区将以⽬录⽅式表⽰ MySQL 数据库,因此数据库名称必须符合操作系统的⽂件夹命名规则,不能以数字开头,尽量要有实际意义。
注意在 MySQL 中不区分⼤⼩写。
IF NOT EXISTS:在创建数据库之前进⾏判断,只有该数据库⽬前尚不存在时才能执⾏操作。
此选项可以⽤来避免数据库已经存在⽽重复创建的错误。
[DEFAULT]CHARACTER SET:指定数据库的字符集。
指定字符集的⽬的是为了避免在数据库中存储的数据出现乱码的情况。
如果在创建数据库时不指定字符集,那么就使⽤系统的默认字符集。
[DEFAULT] COLLATE:指定字符集的默认校对规则。
eg.mysql>CREATE DATABASE IF NOT EXISTS test->DEFAULT CHARACTER SET utf8->DEFAULT COLLATE utf8_general_ci;Query OK, 1 row affected, 1 warning (0.01 sec)(2)R(Retrieve):查询SHOW DATABASES [LIKE '数据库名'];语法说明如下:LIKE从句是可选项,⽤于匹配指定的数据库名称。
数据控制语言(DCL,Data ControlLanguage)2SQL Server 2000中的SQL语言是Transact-SQL语言。
Transact-SQL语言主要组成部分有一下几种:1.数据定义语言(DDL,Data Definition Language)2.数据操纵语言(DML,Data Manipularion Language)3.数据控制语言(DCL,Data Control Language)4.系统存储过程(System Stored Procedure)5.一些附加的语言元素数据控制语言(DCL)数据控制语言(DCL)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT、DENY、REVOKE等语句,在默认状态下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成员才有权利执行数据控制语言。
GRANT语句GRANT语句是授权语句,它可以把语句权限或者对象权限授予给其他用户和角色。
授予语句权限的语法形式为:GRANT {ALL | statement[,...n]} TO security_account [ ,...n ]授予对象权限的语法形式为:GRANT { ALL [ PRIVILEGES ] | permission [ ,...n ] }{[ ( column [ ,...n ] ) ] ON { table | view }| ON { table | view } [ ( column [ ,...n ] ) ]| ON { stored_procedure | extended_procedure }| ON{ user_defined_function } } TO security_account [ ,...n ] [ WITH GRANT OPTION ] [ AS { group | role } ]2、DENY语句DENY语句用于拒绝给当前数据库内的用户或者角色授予权限,并防止用户或角色通过其组或角色成员继承权限。