一、Mysql设计部分
1.数据表概念
是长期存储在计算机中的有组织、有结构的数据集合
2.数据字段类型
1)数值 int(n) //int(3)与长度无关,不够3位时前面补0,默认看不见
float
2)字符串 char(n) //n最大255,存储时占n个字节空间,但检索速度快
varchar(n) //n最大65535,存储时按照实际字符串+1存储,相对于char要省空间,但检索速度慢
text //65535字节 存储L+2
longtext //42亿字节 存储L+4
3)日期
列类型 存储需求
date 3个字节
datetime 8个字节
timestamp 4个字节
time 3个字节
year 1个字节
//建议日期类型存int
3.字段属性
unsigned //全是正数
zerofill //零填充,int(3),不够3位补0
auto_increment //自增ssss
null //这一列值允许为null
not null //这一列值不允许为null
default //配合not null使用。即,这一列值不允许为null,但载入这列的数据有的为空,这时就将默认值赋给空值
建表语句:
mysql> create table t1(
-> id int unsigned auto_increment primary key,
-> name varchar(30),
-> sex varchar(5) not null default "nan");
4.数据表对象管理
?
5.数据表的类型及存储位置
?
6.数据表的默认字符集
Mysql安装目录下的my.ini文件是配置文件
其中的[mysqld]下面配置服务器
配置字符集:character-set-server=utf8
校验字符集:collation-server=utf8_general_ci
[mysql]下面配置客户端,配置字符集:default-character-set=utf8
7.创建索引(优化数据库数据读取速度)
1).主键索引(每个表中只能有一个主键索引)
在设计初,主键索引就要设计
2).普通索引
后期维护普通索引:
①添加普通索引
mysql> alter table t2 add index in_name(name); //给name列加索引
②删除普通索引
mysql> alter table t2 drop index in_name;
创建带索引的表:
mysql> create table t2(
-> id int unsigned auto_increment,
-> name varchar(30),
-> primary key(id), //将id设为主键索引
-> index in_name(name) //将name设为普通索引
-> );
查看表中的所有索引:
show index from 表名;
检测sql语句:
desc select * from t1 where id=3G //加G对所有行转置
表组成→
表记录:行
表字段:组成表记录的“格”
表结构:每个字段的名称
实际储存→
表数据:MYI
表索引:MYD
表结构:frm