ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

MySQL——DDL(数据库定义语言)sql8.0版

2022-10-16 15:15:24  阅读:197  来源: 互联网

标签:mysql DDL 数据 数据库 定义语言


DDL

数据(结构)定义语言 DDL(Data Definition Language),用于创建和修改数据库表结构的语言。

常用的语句:create(创建)、alter(修改)、drop(删除)、rename(重命名)

创建数据库:

CREATE DATABASE 数据库名;
CREATE DATABASE IF NOT EXISTS 数据库名;
# IF NOT EXISTS 意为如果不存在就创建这个数据库,若存在就不创建
CREATE DATABASE IF NOT EXISTS 数据库名 CHARSET utf8;
# CHARSET utf8 给数据库设置一个编码

删除数据库:

DROP DATABASE 数据库名;

修改字符集

ALTER DATABASE 数据库名 CHARSET utf8;

mysql中是不能修改数据库名的

数据库中的表

数据库存储数据的特点

是将数据放到表中,再将表放到数据库当中。

一个数据库中是由多张表的,每个表都拥有一个名字,用来标识自己。且表名是具有唯一性的。

表具有一定的特性,这些特性定义了数据在表中如何的存储,类似Java中的“类”的设计。

数据库表由列组成,我们也称为字段。所有表都是由一个或多个列组成的,每一列都类似java中的“属性”。

表中的数据时按行存储的,每一行就类似于java中的“对象”。

数据表中的基本概念

  1. 数据表 表(table)是数据存储的最常见和最简单的形式,是构成关系数据库的基本元素。表的最简单形式是由行和列组成,分别都包含着数据。每个表都有一个表头和表体组成。表头定义表名和列名。表中的行被看作是文件中的记录,表中的列被看作是这些记录的字段。
  2. 记录 记录也被称为一行数据,是表里的一行。在关系型数据库的表里,一行数据时指一条完整的记录。
  3. 字段 字段是表里的一列,用于保存每条记录的特定信息。如顾客订单表的字段包括“订单ID”、“姓名”、“客户ID”、“职务”、“上级”、“地区”、“运货商”、“国家”等等。数据表的一列包含了特定字段的全部信息。

在我们需要设计一个表的时候。在创建之初,就应该先确定要设计表的以下特征: 表面(表星系)、表中的字段、字段中的数据类型和长度、都有哪些约束(添加数据的一些限制)

主键: 在一张表中代表唯一的一条记录,不能为空,不呢重复

约束:

PRIWARY KEY : 设置主键约束(主键约束包含了不能为空和唯一性的约束) NOT BULL : 设置不能为空的约束(一个表中可以有多个这种的约束) UNIQUE :设置唯一性约束(一个表中可以有多个这种的约束) 检查约束 : 这个需要条件判断的约束(不是所有的数据库都可以设置这个约束) 外键约束 : 出现在多表关联时使用。

主键自动增长: AUTO_INCREMENT

默认值: DEFAULT default——value

字段注释: COMMENT ‘注释’

数据表的基本数据类型:

char(n)长度为n的定长字符串,即使只存入一个字符,它也要站n长的内存 varchar(n) 最大长度为n的可变长字符串,实际存储几个就占几个字符的内存(在n长之下) date 日期,包含年月日 datetime 年月日 时分秒(时间)

整数

类型 字节 最小值 最大值 TINYINT 1 -128 127 SMALLINT 2 -32768 32767 MEDIUMINT 3 -8388608 8388607 INT 4 -2147483648 2147483647 BIGINT 8 -9223372036854775808 923372036854775807

浮点型

类型 字节 FLOAT 4 DOUBLE 8

在我们应用这些数据类型的时候,就需要注意这些浮点型的小数点位数的控制。 数据类型(M,D) M:精度,数据的总长度 D:标度,小数点后的长度 Float(6,2) Double(6,2) ===》例如:3245.12 四位整数,两位小数总长为6位

BLOB和TEXT类型

BLOB是一个二进制的大对象,可以容纳可变数量的数据,用于存储图片视频信息。 有4中BLOB的具体类型:TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB。 它们只是可容纳值的最大长度不同。

TEXT列字符字符串 有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT。

它们两个的长度都是可变的长度。

类型 最大长度 TINYBLOB / TINYTEXT 2^8 - 1 BLOB / TEXT 2^16 - 1 MEDIUMBLOB / MEDIUMTEXT 2^24 - 1 LONGBLOB / LONGTEXT 2^32 - 1

建表语句

建立一个基本表,不涉及任何约束

CREATE TABLE t_student{
	`num` INT,
	`number` VARCHAR(4),
	`sex` CHAR(1),
	`birthday` DATE,
	`height` FLOAT(4,1),
	`phone` CHAR(11),
	`register_time` DATETIME
}

加上约束来对数据库表进行创建[ ]表示可以没有,也能创建出表。

CREATE TABLE t_user (
	id INT [ PRIMARY KEY NOT NULL AUTO_INCREMENT ],
	number INT (5) [ NOT NULL ],
	`name` VARCHAR (10) [ NOT NULL ],
	sex CHAR (1) [ DEFAULT 男 ] COMMENT 性别,默认为男。comment意为注释说明,
	age INT (3) [ CHECK (age > 18) ],
	phone CHAR (11) [ NOT NULL UNIQUE ],
	birthday DATE,
	weight DOUBLE,
	oper_time DATETIME,
)

删除表语句

DROP TABLE [IF EXISTS] 表名;

修改表名语句

RENAME TABLE 旧表名 TO 新表名;

复制表(对某张表操作时,备份数据)语句

CREATE TABLE 新表名 LIKE 被复制表名;

修改表结构语句

添加/删除表的主键约束

#给表中的某一列添加主键且一张表中只能有一个主键,
#但是可以多个表字段联合作为表的主键
ALTER TABLE 表名 ADD PRIMARY KEY(列名) 

#删除表中的主键
ALTER TABLE 表名 DROP PRIMARY KEY

设置表中的自动增长

#添加列为自增(设置自增的列必须为整数型的数据类型)
ALTER TABLE 表名 MODIFY 列名 数据类型 AUTO_INCREMENT;

#删除列的自增
ALTER TABLE 表名 MODIFY 列名 数据类型;

设置不能为空

#添加一个列不能为空的约束
ALTER TABLE 表名 MODIFY 列名 类型 NOT NULL;

#取消一个列不能为空的约束
ALTER TABLE 表名 MODIFY 列名 类型 NULL;

设置唯一约束

#添加表中某一列不能为空的约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(列名);

#删除表中某一列不能为空的约束
ALTER TABLE 表名 DROP INDEX 约束名;

设置检查约束

#添加约束名
ALTER TABLE 表名 ADD CONSTRAINT 约束名 CHECK (条件);

#删除约束名
ALTER TABLE 表名 DROP CHECK 约束名;

添加列

#添加一个数据表中的列,默认是在最后一列进行添加
ALTER TABLE 表名 ADD 列名 数据类型; 

#指定给第一列前进行一个添加列的操作
ALTER TABLE 表名 ADD 列名 数据类型 FIRST;

#指定给列名1之后添加一列
ALTER TABLE 表名 ADD 列名 数据类型 AFTER 列名1;

删除列

ALTER TABLE 表名 DROP 列名;

修改列名

ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型;

修改列的数据类型

ALTER TABLE 表名 MODIFY 列名 新数据类型;

标签:mysql,DDL,数据,数据库,定义语言
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有