DDL、数据类型、键和MySQL约束

WI
Wilan
阅读时间:约 6 分钟
DDL

数据定义语言(DDL)简介

DDL是_数据定义语言_的缩写,是在SQL(结构化查询语言)中用于全面描述数据库设计的命令集。DDL中的主要命令包括:

  • CREATE:用于创建新对象。
  • ALTER:用于修改现有对象的结构。
  • DROP:用于删除对象。

MySQL中CREATE、ALTER和DROP命令的使用

a. CREATE

CREATE命令用于创建新数据库、新表或新视图。

  • 示例:CREATE DATABASE toko_buku;
  • 说明:该命令用于创建一个名为toko_buku的新数据库。

b. ALTER

ALTER命令用于修改已创建的表的结构。此操作可以添加、删除、修改列,修改表,甚至为列赋予新属性。

  • 示例:ALTER TABLE buku ADD judul_buku varchar(20);
  • 说明:该命令用于在buku表中添加一个名为judul_buku的新字段(列),数据类型为varchar,最大字符长度为20。

c. DROP

DROP命令用于永久删除数据库中的对象。这些对象可以是数据库本身、表、函数、索引、存储过程、触发器或视图。

  • 示例:DROP DATABASE toko_buku;
  • 说明:该命令用于删除名为toko_buku的数据库。

MySQL中的数据类型

选择合适的数据类型对于数据库存储效率至关重要。以下是MySQL中的数据类型分类:

A. 数值数据类型(数字)

用于存储数字类型的数据。

  • TINYINT:存储整数(正/负)。范围:-128 到 127。大小:1字节(8位)。
  • SMALLINT:存储整数。范围:-32768 到 32767。大小:2字节(16位)。
  • MEDIUMINT:存储整数。范围:-8388608 到 8388607。大小:3字节(24位)。
  • INT:存储整数。范围:-2147483648 到 2147483647。大小:4字节(32位)。
  • BIGINT:存储大范围整数。范围:-9223372036854775808 到 9223372036854775807。大小:8字节(64位)。
  • FLOAT:存储单精度浮点数。大小:4字节(32位)。
  • DOUBLE / REAL:存储双精度浮点数。大小:8字节(64位)。
  • DECIMAL / NUMERIC:存储高精度浮点数。大小:8字节(64位)。

B. 字符串数据类型(文本)

用于存储字符或文本类型的数据。

  • CHAR:存储固定长度的字符串(例如:商品ID、身份证号)。范围:0 到 255个字符。
  • VARCHAR:存储可变长度的字符串。范围:0 到 65,535个字符(最新版本)。
  • TINYTEXT:存储短文本数据。范围:0 到 255个字符。
  • TEXT:存储标准文本数据。范围:0 到 65,535个字符。
  • MEDIUMTEXT:存储中等长度文本数据。范围:0 到 16,777,215个字符。
  • LONGTEXT:存储超长文本数据。范围:0 到 4,294,967,295个字符。

C. 日期和时间数据类型

用于存储时间和日期数据。

  • DATE:存储日期(格式:YYYY-MM-DD)。范围:1000-01-01 到 9999-12-31。大小:3字节。
  • TIME:存储时间(格式:HH:MM:SS)。范围:-838:59:59 到 +838:59:59。大小:3字节。
  • DATETIME:日期和时间的组合(格式:YYYY-MM-DD HH:MM:SS)。范围:1000-01-01 00:00:00 到 9999-12-31 23:59:59。大小:8字节。
  • YEAR:存储年份(格式:YYYY)。范围:1900 到 2155。大小:1字节。

D. BLOB(二进制)数据类型

BLOB是_Binary Large Object_的缩写。用于存储纯二进制数据,区分大小写,适用于多媒体文件如图像、文档或音频。

  • BIT:存储二进制数据。范围:64位二进制数字。
  • TINYBLOB:最大大小255字节。
  • BLOB:最大大小65,535字节。
  • MEDIUMBLOB:最大大小16,777,215字节。
  • LONGBLOB:最大大小4,294,967,295字节。

SQL中的键类型

SQL中的键是多个属性(列)的组合,用于唯一标识表中的数据行,或将一个表与另一个表关联(建立关系)。

  • 超键(Super Key):能够唯一标识表中每一行数据的属性集合。
  • 候选键(Candidate Key):不包含冗余属性的最小超键。候选键从最少的字段组合中选出,用于标识唯一值。
  • 主键(Primary Key):被选为主要标识记录的候选键。主键中的数据不能为空(Not Null)且不能重复。每个表只能有一个主键。
  • 备用键(Alternate Key):未被选为主键的候选键。
  • 外键(Foreign Key):用于关联一个表与另一个表的键,形成父表和子表关系。父表(主表)中的主键被子表(相关表)中的外键引用。
  • 复合键(Composite Key):由两个或多个属性组成的键,用于唯一标识实体。通常在没有单个列满足主键条件时使用。

MySQL中的约束类型

_约束_是应用于列或表的规则限制,用于维护数据的完整性和有效性。

  • NOT NULL:确保列在插入记录时不能为空,该列必须填写数据。
  • UNIQUE:确保列中的每个值互不相同(没有重复记录)。
  • PRIMARY KEY:NOT NULLUNIQUE约束的组合。唯一标识表中的每一行。一个表只允许有一个PRIMARY KEY
  • FOREIGN KEY:维护表之间的引用完整性。确保子表列中的值必须在父表(其他表)的列中有有效引用。
  • CHECK:在数据存储到数据库之前进行验证或检查。数据会以布尔值进行评估;如果满足条件则返回_true_并存储,如果为_false_,SQL将拒绝并显示错误消息。
Tags: #编程
W

作者

Wilan

巴厘岛Tekno的常驻撰稿人,积极分享技术、编程和软件工程领域的知识。

返回首页 最后更新日期:2026年5月26日