Web开发笔记2——MySQL拾零
仅仅是看一些书是零零散散记下的,给自己备忘而已。建议去看专业网站的笔记。
1.主键的值必须是唯一的,并且不能为空,这可以提高MySQL从多个表中取得数据或者取得指定键值对应的行的速度。MySQL通过一个特殊的称为Index索引的数据结构做到这一点,Index是找到一条记录的快捷方式,就像图书馆的卡片目录。
2.查看表的列定义使用describe命令.
3.整数列大小默认是11.
4.Insert时引号的使用:数字数值、函数和NULL不要用,字符串数值、时间、日期则要用引号括起来。
5.使用alter修改表定义时,即使没有改变列的数据类型,列的定义仍然必不可少。
6.在使用select语句时,你应该养成TABLE.COLUMN方式来引用列,这样可以避免混淆。
7.结果排序用select XX from YY order by zz;
8.使用自然连接natural join可以避免输入很长的命令:MySQL可以把两个表中的同名域连接起来。可以使用左连接方式将表连接起来。
9.join on也是连接,但是需要指定要进行连接的列。SELECT * from books JOIN authors ON (books.title_id = authors.title_id);
10.使用别名可以将长的表名换成较短的,还可以让你在同一个查询中两次引用同一个表而区分你究竟是引用的第一个还是第二个。
SELECT * from books AS b,authors AS a WHERE b.title_id = a.title_id;
11.SQL语句特点:做什么+ 大概从哪+具体从哪,例如select from * where title_id=1;
12.查找:SELECT * from authors WHERE author LIKE "%b%"; 百分号是通配符,表示一个或多个。而下划线_则表示一个字符。
12.通过包含另外一张表的主键而形成的表之间的连接被称为外键关系。
13.数据库的关系有三种:一对一、一对多、多对多。以一个在线书店为例,用户和其邮寄地址(假设只能设定一个地址)时一对一的关系,而图书的类型与具体书籍则是一对多的关系,用户对书则是多对多的关系。多对多的关系被转换为两个一对多关系的变换表才能在数据库中体现出来。
14.规范化:
理清数据之间的关系并找出组织数据的最有效方式的过程被称作规范化。要规范化一个数据库,需要从最基础的规则开始,分为三个阶段——第一范式、第二范式、第三范式,后者必须在前者完成的基础上才可得以进行。
第一范式:解决数据在同一行内的冗余,要求所有的表不能重复的包含同样的数据列,所有的列中只能包含一个值,必须存在一个主键可以唯一指定一行数据,主键可以是一列或者多列,这取决于需要多少列才能唯一指
相关文档:
默认导出到当前目录中
1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldum ......
如果在一些更新命令之后,mysqld总是当掉,或者如果你遇到被破坏的表,你可以用下面的操作测试看这个缺陷是否是可重复产生的:
卸掉MySQL守护进程(用mysqladmin shutdown)。
给该表做备份(防止修复操作反而搞坏这种很不可能出现的情况)。
用 myisamchk -s database/*.MYI 检查所有的表,用myisamchk -r database/ ......
第五章 代码重用与函数编写
require()或include()可以将一个文件载入到php脚本中。
这两个函数几乎等价,唯一的区别是调用失败后require()给出一个致命错误,而include()只给出一个警告。
如果Web页面具有一致的外观,可以将相同的部分分离到单独的页面中,然后可以在php中使用require()语句将模板元素加入到页面中。
......