- 数据在数据库的存储方式是存储在表中,表中是以行列的方式存储数据的。
- 创建表时重点关注列的属性(即表头),包括一些约束
1. 数据库中的数据类型
1.1 数值类型
1.2 字符类型
值 | ’ ’ | ‘ab’ | ‘abcd’ |
---|---|---|---|
CHAR(4) | 4字节 | 4字节 | 4字节 |
VACHAR(4) | 1字节 | 3字节 | 5字节 |
- 特点
char: 不论存储值的长度是多少,都会占用()里面设置的字节数,查询结果要高于VARCHAR
varchar: 占用实际长度+1个字节 - 使用场景
如果字段长度能够确定,比如手机号,用CHAR;
如果不确定,如地址、昵称等用VARCHAR
1.3 日期类型
2. 创建表基础命令 create table
CREATE TABLE 表名
(
field1 datatype,
field2 datatype,
field3 datatype
);
field:指定列名 datatype:指定列类型
- 注意
(1)创建表前,要先使用(use 数据库名称)语句选中某个库,列和列之间用逗号隔开,列内用空格隔开
(2)创建表时,要根据需保存的数据创建相应的列,并根据要存储数据的类型定义相应的列类型
3. 约束条件
约束条件就是给列加一些约束,使得该字段存储的值更加符合预期
约束条件 | 说明 |
---|---|
UNSIGNED | 无符号,值从0开始,无负数 |
ZEROFILL | 零填充,当数据的显示长度不够的时候可以使用填补0的效果填充至指定长度,字段会自动添加UNSIGNED(正数才可使用零填充)。如指定长度为4,输入1,会自动填充为0001 |
NOT NULL | 非空约束,表示该字段的值不能为空,作为必填项的约束 |
DEFAULT | 如果插入数据时没有给该字段赋值,那么就使用默认值 |
PRIMARY KEY | 主键约束,表示唯一标识,不能为空,且一个表只能有一个主键,如学号、订单号必须是唯一的 |
AUTO_INCREMENT | 自增长,只能用于数值列,默认起始值从1开始,每次增长1,经常与PRIMARY KEY搭配使用 |
UNIQUE KEY | 唯一值,表示该字段下的值不能重复,可以为空,可以有多个 |
4. 创建表进阶命令(加上约束)
CREATE TABLE 表名
(
field1 datatype UNSIGNED ZEROFILL NOT NULL,
field2 datatype DEFAULT ‘abc’,
field3 datatype PRIMARY KEY NOT NULL
);
- 约束顺序
(1) PRIMARY KEY(主键)一般放在表的最下面
(2) 如果一列同时有UNSIGNED、ZEROFILL、NOT NULL这几个约束,UNSIGNED、ZEROFILL必须在NOT NULL前面,否则会报错
(3) 第一个必须是列名,第二个必须是数据类型,后面的语句严格来说不分先后顺序
- 说明
一般最后会加COMMENT,用来描述这一列是用来干什么的,提高语句的可读性,在表里没有实际显示
5. 查看表 show tables
命令 | 含义 |
---|---|
show tables; | 显示当前数据库中所有表的名字 |
desc 数据表名字 | 显示某张表的每一列的属性(列名、数据类型、约束) |
6. 删除表 drop table
命令 | 含义 |
---|---|
drop table 数据表名称; | 数据表删除 |
7. 修改表(不常用)
7.1 添加 add
命令格式 | 含义 |
---|---|
ALTER TABLE 数据表名字 ADD 列名 列的数据格式 约束; | 数据表中添加一列(默认添加在末尾) |
在最后面加FIRST | 添加在第一列 |
在最后面加AFTER 某一列列名 | 添加在指定列后面 |
7.2 删除 drop
命令格式 | 含义 |
---|---|
ALTER TABLE 数据表名字 drop 列名; | 删除数据表中的某一列 |
7.3 修改 modify/change
命令格式 | 含义 |
---|---|
ALTER TABLE 表名 MODIFY 列名 数据格式 约束; | 列名不变,其他要变 |
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据格式 约束; | 修改列名和其他 |
- 说明
修改的同时可以设置默认值,也可以直接使用CHANGE,修改时要保留原有的所有内容,比如约束条件,不然会被新的条件覆盖