数据库MySQL学习——day1(创建表与数据类型)
文章目录
- 1. 创建表(CREATE TABLE)
- 1.1. 创建表的基本语法:
- 1.2. 示例:创建学生信息表
- 2. 数据类型
- 2.1. 常用的数据类型:
- 3. 表约束
- 3.1. 常见约束类型:
- 3.2. 示例:添加约束条件
- 3.3. 修改表添加约束:
- 4. 总结
MySQL的配置与登录有很多大佬已经发过相关详细文章,我就不做过多赘述,这里只是对个人MySQL数据库的学习做一个记录。
1. 创建表(CREATE TABLE)
1.1. 创建表的基本语法:
CREATE TABLE 表名 (字段1 数据类型 [约束条件],字段2 数据类型 [约束条件],...[表级约束]
);
CREATE TABLE
:用于创建新表。字段名
:定义表的每个列。数据类型
:指定字段存储的数据类型(如整数、字符串、日期等)。约束条件
:可以为字段设置约束,如NOT NULL
、DEFAULT
、UNIQUE
等。
1.2. 示例:创建学生信息表
CREATE TABLE student (student_id INT NOT NULL PRIMARY KEY, -- 学生ID,主键且不能为空name VARCHAR(100) NOT NULL, -- 姓名,不能为空age INT, -- 年龄,可为空birth_date DATE, -- 生日,日期格式gpa DECIMAL(3,2) -- GPA,带两位小数
);
student_id
:整数类型,作为主键,不能为空。name
:字符串类型(最大100字符),不能为空。age
:整数类型,允许为空。birth_date
:日期类型,用于存储出生日期。gpa
:小数类型,最多3位数字,其中2位为小数。
2. 数据类型
2.1. 常用的数据类型:
- INT :用于存储整数(没有小数部分)。如
student_id INT
。 - VARCHAR(n) :用于存储变长字符串,
n
指定最大字符数。适用于存储姓名、地址等文本数据。 - DATE :用于存储日期,格式为
YYYY-MM-DD
,例如2025-01-01
。 - DECIMAL(p, s) :用于存储精确的小数,
p
是总位数(包括整数部分和小数部分),s
是小数部分的位数。如DECIMAL(3, 2)
表示最多三位数字,两位小数。
2.2. 示例数据类型与字段:
CREATE TABLE example (column1 INT, -- 整数类型column2 VARCHAR(50), -- 可变长字符串,最大50字符column3 DATE, -- 日期column4 DECIMAL(5, 2) -- 小数类型,最多5位,2位小数
);
3. 表约束
3.1. 常见约束类型:
- NOT NULL:确保字段不能为空。
- DEFAULT:为字段提供默认值,如果插入数据时未提供该字段的值,数据库会使用默认值。
- UNIQUE:确保字段的值唯一,不能重复。
- PRIMARY KEY:指定字段为主键,主键是唯一且不能为空。
- FOREIGN KEY:用于指定外键约束,确保字段值存在于另一个表的主键或唯一字段中。
3.2. 示例:添加约束条件
CREATE TABLE student (student_id INT NOT NULL PRIMARY KEY, -- 主键且不能为空name VARCHAR(100) NOT NULL, -- 姓名不能为空age INT DEFAULT 18, -- 年龄默认值为18email VARCHAR(100) UNIQUE -- 邮箱必须唯一
);
student_id
:作为主键,不能为空。name
:不能为空。age
:默认值为18,如果插入时没有指定年龄,系统自动填充18。email
:邮箱字段确保每个邮箱地址唯一,不能重复。
3.3. 修改表添加约束:
如果已经创建了表,可以使用 ALTER TABLE
添加或修改字段约束。例如,添加一个NOT NULL
约束:
ALTER TABLE student ADD CONSTRAINT CONSTRAINT_NAME CHECK (age > 0);
4. 总结
- 表创建:使用
CREATE TABLE
语句来创建表并定义字段及其数据类型。 - 数据类型:常见数据类型包括
INT
、VARCHAR
、DATE
和DECIMAL
。 - 表约束:通过使用
NOT NULL
、DEFAULT
、UNIQUE
等约束条件来确保数据的完整性和一致性。