吾爱乐享
个人学习博客

php学习之mysql数据表的增删改查

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,

当输入的数字大于数据类型的范围,默认会自动截取取值的最大值

  • 小数: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。第三范式就是要消除这种依赖,通常的实际做法中,我我们只要注意到一个表存储一种数据就可以符合第三范式

未经允许不得转载:吾爱乐享 » php学习之mysql数据表的增删改查
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!