show //查看数据库 create //创建数据库 use
//选择数据库 \s //查看数据库状态 ? //创建表的帮助 show //查看表 desc //查看表结构 \c //退出创建表 一、创建表的基本模型([]为可选的): CREATE 字段名1 列类型 [属性] [索引], 字段名2 列类型 [属性] [索引], ... 字段名n 列类型 [属性] [索引] )[表类型] 表名称和字段名需要我们自己定义名称。 二、数据值和列类型: 细分都是按空间大小来区分的。 1、数值型 整形(整数) 非常小的整型 1字节 TINYINT 较小的整型 2字节 SMALLINT 中等大小的整型 3字节 MEDIUMINT 标准的整型 4字节 INT 大整型 8字节 BIGINT 浮点型(小数)M为位数,D为小数点保留几位 float(M,D) 4字节 double(M,D) 8字节 定点数decimal(M,D) M+2字节 2、字符型 char(M) 255 属于固定长度字符串 varchar(M) 255 可变长度字符串 3、日期型 DATE
TIME hh:mm:ss DATETIME YYYY-MM-DD hh:mm:ss TIMESTAMP YYYYMMDDhhmmss YEAR YYYY 时间保存最好采用INT类型,因为它可以参与运算。 |
除非注明,文章均为易水寒原创,版权属于易水寒博客,转载请注明出处,谢谢。
三、数据字段属性:
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');
以上两种查询来比,全文索引查询效率比较高。http://www.yishuihan.net/index.php/2011/07/06/mysql%E5%88%9B%E5%BB%BA%E6%95%B0%E6%8D%AE%E8%A1%A82/