枚举类型enum和set都是字符串对象
enum(‘1’,’2’,’0’) 用数字下标来表示各个对象
set(‘1’,’2’,’3’,’4’) 用而进行二进制方式来表示各个对象顺序
0001 0010 0100 1000 0101
‘1,2,3’
主键 :可以选择一个字段或多个字段
字段信息变化较少,和表中其他字段的关联少;
Primary key()
外键:参照完整性约束
Foreign key(字段)references 表名(字段)
注意存储引擎MYISAM、 innodb
Myisam tb3 tb5,声明了外键不起作用
Insert 和delete
Innodb tb4 tb8 支持外键
Insert 和 delete
索引:index
例如: 姓名 年龄 单位 工资
姓名
年龄
姓名,年龄,单位 (推荐)
注意:
缩短搜索的时间;
会单独保存索引文件;
Insert等 会有影响,不建议小的数据表创建索引;
使用索引一次只允许一个索引起作用;
1、Select语句
语法顺序:select 表达式|字段名 from 表 where 条件表达式|子查询 group by 字段名列表(支持排序) having 条件表达式 order by 字段列表 limit
执行顺序:from where select group by having order by limit
注意:select 信息有别名;
2、多表的使用
1)全连接
select id1,id8 from tb1,tb2 where …;
注意:
相当于从(tb1的行数*tb2的行数产生的)结果中搜索;
Where子句中指定的表达式使用了“=”叫做等值连接;
2)内连接 inner join
Select tb1.id1,id7 from tb1 join tb2 on 表和表连接的条件
Where 条件表达式;
注意:
l 等同于有条件的全连接
l 可用于多个表(超过两张表)的连接
l 显示结果包括所有表中的信息
3)外连接 outer join
Select tb1.id1,id8 from tb1 left outer join tb2
注意:
用于两张表;
只保留一张表的全部记录,另一张表保留满足条件的记录,不满足的用null来填充
cross join、straight join 等同于join;
自然连接适合于连接条件只有一个字段;
4)子查询
注意:
步骤 :
分类:in(select …)、比较运算符(select…)只执行一次子查询语句
exists(select …) 执行次数和外部选择表的记录行数保持一致
select 、where、 group by、order by
from 必须给子查询的结果起别名
3、视图
相当于用一种格式显示数据表中的记录;
只保存了创建视图的语句;
并不产生新表;
create view view_name[( )]
as select语句;
Mysql5.1中文在线手册
http://dev.mysql.com/doc/refman/5.1/zh/index.html