枚举类型enum和set都是字符串对象
Enum(‘1’,‘2’,‘0’…..)用数字下标来表示各个对象
Set(‘a’,’b’,’c’,’d’…….)用二进制方式来表示各个对象顺序
0001 0010 0100 1000
主键:可以选择一个字段或多个字段
字段信息变化较少,和表中其他字段的关联少
Primary key()
外键:参照完整性别约束
Foreign key(字段) references 表名(字段)
注意存储引擎MYISAM 、innodb
Myisam tb3 tb5 ,声明了外键不起作用
Insert 和 delete
Innodb tb4 tb8 支持外键
Insert 和 delete
注意:
缩短搜索的时间
会单独保存索引文件
Insert等会有影响,不建议小的数据表创建索引
使用索引一次只允许一个索引起作用
多表的使用
1)全连接
Select id1,id8 from tb1,tb2 where …..;
相当于从(tb1的行数*tb2r 行数产生的)结果中进行搜索
Where 子句中指定的表达式使用了”=”叫做等值连接
2)内连接 inner join
Select tb1.id1,id8 from tb1 join tb2 on 表和表连接的条件
Where 条件表达式;
注意:等同于有条件的全连接
可用于多个表(超过两张表)的连接
显示结果包括所有表中的信息
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 语句:
数学函数
提醒;函数名和小括号不要有空格
允许嵌套使用
Creatext(列表) 取最大值
Least(列表) 取最小值
Floor(浮点数) 取浮点小
Ceiling(浮点数) 取大
Round()四舍五入
Truncate(浮点数,小数位数)截取
Abs(数值数据)取绝对值
Sign(数值数据)返回正负号 获取符号(+、-、0)
Sqrt(正整数)求平方根 开方
Pow(底数,指数)计算幂
Bin() 二进制
Oct() 八进制
Hex() 十六进制
Format(小数,保留位数)格式化
Mod(数字1,数字2)求余数 (正负依赖数字1 )数字1是正余数就是正是负余数就是负
Rand()生成0<=n<=1之间的随机数
聚合函数:
Count sum avg max min
字符串函数:
Charset(字符串)返回该串的字符集
Concat(字符串1,字符串2.。。。。。)连接字符串