除非注明,文章均为易水寒原创,版权属于易水寒博客,转载请注明出处,谢谢。
三、数据字段属性:
1、unsigned 可以让空间增加一倍,如果不希望在字段中插入负值就使用此属性,另外只能用在数值型字段。
2、zerofill 只能用在数值型字段,前导0(例如id int(5) zerofill,如果插入数据为11,会自动存储为00011),该字段自动应用unsigned。
3、AUTO_INCREMENT 只能是整数,数据每增加一条就会自动增1,字段的值不允许重复。
4、NULL和NOT NULL 控制字段插入数据是否可以为空值。
5、default 缺省值。在某个表里,某个字段不插入值的话,就会启用缺省值。
CREATE TABLE users(
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL DEFAULT '',
height DOUBLE(10,2) NOT NULL DEFAULT 0.00,
age INT NOT NULL DEFAULT 0,
sex CHAR(4) NOT NULL DEFAULT '男'
);
四、创建索引:
1、主键索引
主要作用是确定数据库表里一条特定数据记录的位置。
最好为每一张数据表定义为一个主键索引。
一个表只能指定一个主键,主键的值不能为空。
指定主键有2种方法:
(1)
CREATE TABLE users(
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
);
(2)
CREATE TABLE users(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id)
);
2、唯一索引
unique
它和主键索引一样,都可以防止创建重复的值,不同的是,每个表可以有多个唯一索引。
3、常规索引
最重要的技术,提高数据库性能,索引优化首先考虑常规索引。
查询提高了,增删改减慢了。
key和index是同义词,用哪个都可以。
创建方法:
单独创建常规索引:
CREATE index 索引名称 on 表名(字段名,多个用逗号分隔);
删除:
drop index 索引名称 on 表名;
创建表时创建常规索引:
CREATE TABLE users(
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
uid INT NOT NULL,
index 索引名称(uid)
);
4、全文索引
fulltext类型索引,只能在MyISAM表类型上使用,只有在varchar,char,text等文本字符串上使用,也可以多个数据列使用。
CREATE TABLE books(
id int,
bookname varchar(30),
price double,
detail text not null,
fulltext(detail,bookname),
index ind(price),
primary key(id)
);
正常查询:select * from books where bookname like '%php%';
全文索引查询:select bookname,price from books where MATCH(detail) AGAINST('php');
以上两种查询来比,全文索引查询效率比较高。