概述
SQL(Structured Query Language)是用于管理和操作关系数据库的编程语言。在SQL中,数据库中的数据以表的形式组织和存储。一个表由若干列(字段)组成,每列定义了特定的数据类型和约束规则,而每行则表示表中的一个记录。
表结构的概述主要包括以下几个方面:
-
表名:每个表都有一个唯一的名字,用于标识表的身份和用途。
-
列(字段):每个表由若干列组成,每列具有一个唯一的名称和特定的数据类型。常见的数据类型包括整数、浮点数、字符型、日期时间型等。
-
主键:主键是一列或一组列的组合,它们的值能够唯一地识别表中的每一行。主键的值不能重复且不能为空。
-
外键:外键是指表中的一列,它与另一个表的主键之间建立关联,用于建立表之间的关系。外键约束可以确保数据的完整性和一致性。
-
索引:索引是一种数据结构,用于加快数据库查询的速度。通过在表的一列或多列上创建索引,可以减少数据搜索的时间。
-
默认约束:默认约束是在插入新行时,为某列提供预设值的规则。如果插入语句没有提供该列的值,将使用默认约束中定义的值。
-
约束规则:约束规则用于限制数据的完整性和一致性。常见的约束规则包括唯一约束、非空约束、检查约束等。
以上是SQL表结构的概述,它们共同定义了表在数据库中的结构和特性,为数据的存储和查询提供了基础。
实战
创建表结构之前,我们先要了解表结构的基本语法
语法如下:
create table 表名(
字段1 字段类型 [约束] [comment 字段1注释],
......
字段n 字段类型 [约束] [comment 字段n注释],
)comment 表注释[];
那么我们开始用下面这写字段来创建表
id | phone | name | age | gender |
1 | 1234567 | 三上 | 18 | 女 |
2 | 12345678 | 三宫 | 19 | 女 |
3 | 123456789 | 桃乃木 | 20 | 女 |
4 | 12345678910 | 永美 | 21 | 女 |
sql语句:
create table table_name(
id int comment 'ID,唯一标识',
phione varchar(20) comment '电话',
name varchar(10) comment '姓名',
age int comment '年龄',
gender char(1) comment '性别',
) comment '通讯表'
以上就是MySQL表的结构创建的大致流程。
总结
通过以上所图,我们来简单总结一下:
首先我们看变结构的基础语法和我们实际创建的过程中 可以看到我们是严格遵循语法规范的,其次,可能大家伙疑惑为什么我的varchar后面会标记(20),(10)或者char后面标记(1)这种约束,其实主要是因为这下几点:
我们首先得知道一点,为什么我们会有int ,char 等约束(这个自行了解)。在了解过后再来看接下来我为什么选择他们。
1 为什么phone选用varchar,因为他是一个可变长度字符的数据类型,比如拿电话来说,有些是短号,有些是长号,但是你们见过20多位的我电话号码吗,想必大家都没有见过吧,所以我们给他设置长度最长为20位。
2 那通过第一点相信大家也能知道为什么创建姓名的字段约束了吧(有人说了,说我看过维吾尔住的名字巴拉巴拉xxxxx,这个只是给你做个案例,认真你就必定分手!)
3 那么问题又来了,为什么我性别不是varchar(1)尼,那么请听分说:
我自己总结就一点:
char的存储他是固定的,是不可变的
varchar的存储他是可变的,不固定的
大家可以想象一下,性别这玩意只有男女吧,所以我们就只需要一个字就行了(别提人妖,不然和你急!)
具体总结
-
存储空间:CHAR是固定长度的字符数据类型,它总是占用指定长度的存储空间。例如,如果定义一个CHAR(10)的列,无论实际存储的数据是否达到10个字符,该列都会占用10个字符的存储空间。而VARCHAR是可变长度的字符数据类型,它只会占用实际存储的数据长度加上一些额外的字节数。例如,如果定义一个VARCHAR(10)的列,存储"Hello"时只会占用5个字符的存储空间。
-
存储方式:由于CHAR是固定长度的,所以当插入的字符串长度小于指定长度时,会用空格字符填充到指定长度。而VARCHAR是根据实际存储的数据长度进行存储,没有额外的填充字符。
-
性能:由于CHAR的固定长度特性,当存储和检索数据时,消耗的资源相对较少,速度较快。而VARCHAR的变长特性可能会导致一些额外的处理,因此在某些情况下,CHAR的性能可能会稍微好一些。
讲了这么多,大家是不是都学会了尼。如果学会了,麻烦给了一键三连,听说一键三连可以暴富哦!!!