char 与 varchar 类型的区别
(1)char 的长度是不可变的,而varchar的长度是可变的,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的。
(2)char 类型的存取速度要比 varchar 要快得多,因为其长度固定,方便程序的存储与查找。
(3)char 的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;而 varchar 的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节。
视图
视图是虚拟表,本身不存储数据,而是按照指定的方式进行查询。使用视图和使用表完全一样,只需要把视图当成一张表就OK了。
可以通过视图插入数据,但是只能基于一个基础表进行插入,不能跨表更新数据。
视图的主要作用是方便查询。
左连接和右链接
左连接:结果集包括连接子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
右连接:将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
内连接:内连接是只有符合条件的才显示。
全连接:返回左表和右表中的所有行,MySql不支持全连接FUll JOIN,不过可以通过联合UNION来模拟(把左右连接的结果并起来)。
交叉联接:返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉联接也称作笛卡尔积。
主键、外键
主键是能唯一确定一条记录的标识。
外键用于与另一张表的关联,是能确定另一张表记录的字段,用于保持数据的一致性。
Sql语句的执行顺序
(1) from
(3) join
(2) on
(4) where
(5) group by
(6) avg,sum....
(7) having
(8) select
(9) distinct
(10) order by
随机选取10条数据
SELECT * FROM 表名 ORDER BY RAND() LIMIT 10。