1.创建表
语句:create table 表名(
字段名称1 字段类型 字段选项,
字段名称2 字段类型 字段选项,
….
)表选项;
- 表选项:表字符集和数据引擎
- 字符集:charset=utf8;
- 数据引擎:默认innodb,语法:engine=引擎。如engine=innodb;
什么是存储引擎?
存储引擎也叫表类型,是指一个表中的数据以何种方式存放在文件或内存中,不同的存储引擎提供不同的性能特性和可用功能,没有一种各方面都是既具有最佳性能有具有各种功能的存储引擎。我们要做的时根据数据的具体使用情形开选择合适的存储引擎,有的要求读取速度快、有的一起哦写入速度快、有 的要具有高安全可靠性、有的要海量存储等等,常用的存储引擎是innodb(默认)和myisam
- 字段:当前表中的数据的数据名称,自定义的,但是使用单词,见名知意
- 字段类型:当前字段中存储的数据类型,必须一开始就指定好
- 字段选项:设置当前字段的一些选项—是否为空、是否为主键、是否为唯一键、是否加备注等
- null、not null:是否可以为空
- default:是否有默认值
- auto_increment:是否可以自动增长,必须是数字。如:需要给每条数据一个编号,原因是数据内容可以重复、编号不能重复。
- primary key:设置主键,数据内容不能重复,在查询数据主查询条件,一个表中一个主键一般都是id
- unique[key]:设定唯一键,即表中所有行的数据在该字段中的值能不能有重复
- comment:设置备注,给当前字段设置说明
- 字段类型:字符串、日期时间、数值
- 数值型:存储的数值大小不一样,默认有符号的,无符号:unsigned
- 整数:tinyint、smallint、int、bigint,
- 数值型:存储的数值大小不一样,默认有符号的,无符号:unsigned
当输入的数字大于数据类型的范围,默认会自动截取取值的最大值
- 小数:float、decimal
float:范围大约是-3.4e+38到-1.1e-38、0和1.1e-38到3.4e+38
- decimal:定点型
decimal(10,2):长度为10位,其中小说2位
- 字符串:
- char:最大255 varchar:65532 text:无限制
- varchar:和char的区别:前面是变长型,后面的时定长型
- char:定长型,固定的长度,如char(20),最大存储为20的长度,如果没有写如20 长度的数据,其他位置用空格自动补齐
- varchar:变长型,可以变化长度,如varchar(20),最大存储20的长度,如果没有写的长度,写入多少算多少
- 日期时间:
- date类型:支持的范围为1000-01-01到9999-12-31
- datetime类型:支持的范围为1000-01-01 00:00:00到9999-12-31 23:59:59
当日期和时间格式不是按照规定输入时插入的数据为0
2.删除表
语句:drop table 表名;
3.查看表
查看所有表:show tables;
查看表结构:desc 表名;
- field:字段名称
- type:字段类型
- null:是否为空
- key:索引
- default:默认值
- extra:其他
查看创建表语句:show create table 表名;
4.修改表
修改表名:alter table 旧表名 rename[to] 新表名;
添加新字段:alter table 表名 add 新字段 字段类型 字段选项;
修改表字段(包含字段名):
alter table 表名 change 旧字段名 新字段名 新字段类型 新字段选项;
修改字段类型和选项
alter table 表名 modify 字段名 新字段类型 新字段选项;
删除字段:alter table 表名 drop 字段名;
数据库的设计原则:
数据库设计三范式(3nf):
- 第一范式(1nf):原子性,数据不可再分,一个表中的数据(字段值)不可再分。
- 第二范式(2nf): 唯一性,消除部分依赖,一个表中的每一行必须唯一可区分,且非主键字段值完全依赖主键字段值,也可以说,必须消除在一个表中的非主键字段值仅仅依赖于部分主键的值情形,显然这个要求只能对有联合主键的表才有可能违反情况,对单字段主键的表是不会出现的
- 第三范式(3nf):独立性,消除传递依赖,使一个表中的任何一个非主键,完全独立地依赖于主键。而不能又依赖于另外的非主键,如果一个表中的非主键字段b依赖于另一个非主键字段a 因为啊作为非主键字段,自然是依赖于主键字段(范式2所决定),则此时会出现传递依赖:主键->a-> b。第三范式就是要消除这种依赖,通常的实际做法中,我我们只要注意到一个表存储一种数据就可以符合第三范式
评论前必须登录!
注册