1、解决字符集,默认建表是utf-8,windows是gbk,需要声明字符集:set names gbk;
2、整型:tinyInt,smallint,mediumint,int,bigint:分别占据1-5位.(其中一位占据八个字节) 在声明例如年龄列的时候,可以声明为无符号类型的整型,unsigned; zerofill:零填充,在整型不够的时候会默认零填充(如果该列是zerofill,就是无符号的)(详细内容见zerofill.jpg)。
3、给建好的表增加列:alter table 表名 add 列名 类型等声明 更改已建好的列:alter table 表名 change 列名 新列名 类型等。
4、浮点型:float Float(M精度,D标度)例如:float(6,2):表示总位数是6,小数位是2.
5、char 和varchar括号中表示的是字符数而不是字节。例如如果声明char(8),那么可以容纳八个字母或者汉字。 char如果不够,最后用空格补齐,取出来的时候将最后空格去掉。 varchar会使用1-2个字节来存储它的实际的字符数。 速度上char快。
6、日期时间类型: year:如果输入了两位:"00-69"表示2000-2069; "70-99"表示1970-1999.最好输入四位。 date:典型格式:1990-01-21(日期类型) time类型:典型格式:hh:mm:ss(时间类型) datetime类型:典型格式:'1990-01-21 08:28:08'(日期时间类型)
注意:在开发中很少用一个时间类型来表示一个精确到秒的时间,问题是它不方便电脑来计算,一般使用时间戳来记录。(int)
7、性别列最好用tinyint(只占用一个字节)。 8、in、between、
注入漏洞攻击 万能密码:bb' or 1='1 万能用户名:xx' union select * from 表名/*(解释:/*表示后面的不执行)
解决方法: ①:使用用户名查出密码,然后和输入的密码比较 ②:使用PDO(PHP Data Object)(必须先在php.ini中启用pdo)
搜索中注入攻击: select * from users where name like '%$str%';
如果其中的$str是%或者是__的话,会将users表中的数据全部查出来,可以使用对%、_等字符进行转义(在前面加上一个\)PHP中可以使用addsalash函数。