查看表描述:
DESCRIBE MYTABLE;
创建表:
CREATE TABLE [IF NOT EXISTS]表名称(
列名称1 数据类型 [属性] [索引],
列名称2 数据类型 [属性] [索引],
列名称3 数据类型 [属性] [索引],….
)[表类型][表字符集];
修改表:
ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec ...];
alter_specification:
ADD [COLUMN] create_definition [FIRST | AFTER column_name ]
or ADD INDEX [index_name] (index_col_name,...)
or ADD PRIMARY KEY (index_col_name,...)
or ADD UNIQUE [index_name] (index_col_name,...)
or ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
or CHANGE [COLUMN] old_col_name create_definition
or MODIFY [COLUMN] create_definition
or DROP [COLUMN] col_name
or DROP PRIMARY KEY
or DROP INDEX index_name
or RENAME [AS] new_tbl_name
or table_options
删除表:
DROP TABLE IF EXISTS `tbname`;
字段支持的类型:
1、数值型
整型(整数)
TINYINT :非常小的整型 1个字节 -128---127 0---255(无符号情况、无负数) UNSIGNED;
SMALLINT :较小的整型 2个字节 -32768-----32767 0------65535
MEDIUMINT :中等大小的整型 3个字节 0---------16777215
INT :标准的整数型 4个字节 -2147483648--------2147483647
BIGINT :大整数型 8个字节
浮点型(小数) 注意浮点数误差
float(M,D) 4字节 M位数,D小数点保留
double(M,D) 8字节
定点数decimal(M,D) M+2字节(精确,以字符串形式存,效率低需要转化)
2、字符型
char(m) 255 固定长度字符串
varchar(m) 255 可变长度
char(4) ‘ab’ 4个字节 删除空格
varchar(4)‘ab’ 3个字节(比预设多一个字节) 不删除空格
text 文本数据(文章) MEDIUMTEXT (二的二十四次方减一) LONGTEXT(二的三十二次方)
blob 保存二进制数据 照片、电影、压缩包 MEDIUMTEXT LONGTEXT(二的三十二次方)
ENUM 枚举 1个或2个字节
ENUM(“one”,“two”,“three”)----------------最多65535成员,一次只能用一个值
SET 集合 1,2,3,4,8个字节----------------------64----一次可以用多封集合中的值,中间用逗号分开
3、日期型
DATE YYY-MM-DD
TIME hh:mm:ss
DATETIME YYYY-MM-DD hh:mm:ss
TIMESTAMP YYYYMMDDhhmmss
YEAR YYYY
创建表示最好不要使用这些中的时间格式(php中时间戳1970-1-1 0:0:0)是一整数
用整数保存时间time(); int
数据字段属性:
1、unsigned 可以让空间增加一倍 0-255
只能用在数值型字段
2、zerofill
只能用在字符型字段,前导零, int(5)保证五位不足前面补零
该字段自动应用unsigned [,?n'saind]
3、AUTO_INCREMENT
只能是整数,数据每增加一条就会自动增1,字段的值是不容许重复
NULL 零 留空 情况自动增1
必须是唯一索引 primary key;
每个表都最好有一个id字段设置为自动增长的auto_increment
4、NULL和 NOT NULL
默认是空
NULL 值
将这个表的数据转为php程序的数据时,整数列有null如何转成0 ?
建议:在创建表示每个字段都不要插入空值
设置为 not null;
5、defaut缺省值
CREATE TABLE users(
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL DEFAULT ' ',
height DUOBLE(10,2) NOT NULL DEFAULT 0.00,
age INT NOT NULL DEFAULT '男',
)