【MySQL】2、MySQL 创建数据库和表
2.MySQL 创建数据库和表
2.1、创建数据库
为了让 PHP 执行上面的语句,我们必须使用 mysql_query() 函数(用于向 MySQL 连接发送查询或命令)。
2.2、创建表
CREATE TABLE 用于在 MySQL 中创建数据库表。
CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, column_name3 data_type, .......);
为了执行此命令,我必须向 mysql_query() 函数添加 CREATE TABLE 语句。
重要事项:在创建表之前,必须首先选择数据库。通过 mysql_select_db() 函数选取数据库。
2.3、MySQL 常用数据类型
| 数值类型 | 描述 | 
|---|---|
| 
 | 仅支持整数。size 参数规定最大位数。 【各个数据类型最大位数取值:bigint(20) > int(11)> 其他】 (--比如:int(5)表示最大可以存储99999以内的数字 --) | 
| 
 | 支持带有小数的数字。在 size 参数中规定数字的最大位数。在 d 参数中规定小数点右侧的数字的最大位数。 | 
| 文本数据类型 | 描述 | 
|---|---|
| char(size) | 支持固定长度的字符串。(可包含字母、数字以及特殊符号)。 在 size 参数中规定固定长度。最大是char(255)。 | 
| varchar(size) (适合标题...短长度) | 支持可变长度的字符串。(可包含字母、数字以及特殊符号)。 在 size 参数中规定最大长度。最大是varchar(255)。 | 
| tinytext | 支持可变长度的字符串,最大长度是 255 个字符。 | 
| 
 | 支持可变长度的字符串,最大长度是 65535 个字符。 | 
| 
 | 支持可变长度的字符串,最大长度是 16777215 个字符。 | 
| 
 | 支持可变长度的字符串,最大长度是 4294967295 个字符。 | 
| 日期数据类型 | 描述 | 
|---|---|
| 
 | 支持日期或时间 timestamp用来存时间戳 | 
2.4、主键和自动递增字段
每个表都应有一个主键字段。
主键用于对表中的行进行唯一标识。每个主键值在表中必须是唯一的。此外,主键字段不能为空,这是由于数据库引擎需要一个值来对记录进行定位。
主键字段永远要被编入索引。这条规则没有例外。你必须对主键字段进行索引,这样数据库引擎才能快速定位给予该键值的行。
下面的例子把 personID 字段设置为主键字段。主键字段通常是 ID 号,且通常使用 AUTO_INCREMENT 设置。AUTO_INCREMENT 会在新记录被添加时逐一增加该字段的值。要确保主键字段不为空,我们必须向该字段添加 NOT NULL 设置。(数据库创建完整代码)
2.5、时间存储类型比较
既可以比较大小,又可以直观看懂日期。可以将日期以20180326(int)形式存储在数据库。
注意:timestamp比datatime显示的日期范围小,容易受时区影响。不建议使用。
2.6、MyISAM和InnoDB两种引擎比较
MyISAM
- MyISAM引擎是MySQL5.1及之前版本的默认引擎,它的特点是:
- 不支持行锁,读取时对需要读到的所有表加锁,写入时则对表加排它锁
- 不支持事务
- 不支持外键
- 不支持崩溃后的安全恢复
- 在表有读取查询的同时,支持往表中插入新纪录
- 支持BLOB和TEXT的前500个字符索引,支持全文索引
- 支持延迟更新索引,极大提升写入性能
- 对于不会进行修改的表,支持压缩表,极大减少磁盘空间占用
InnoDB
- InnoDB在MySQL5.5后成为默认索引,它的特点是:
- 支持行锁,采用MVCC来支持高并发
- 支持事务
- 支持外键
- 支持崩溃后的安全恢复
- 不支持全文索引
总体来讲,MyISAM适合SELECT密集型的表,而InnoDB适合INSERT和UPDATE密集型的表。
一般中小型数据量试用MyISAM引擎,大型数据量适用InnoDB引擎
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号