1. 数据库的操作
显示数据库: show databases;
创建数据库: create database 数据库名;
删除数据库: drop database 数据库名;
2. 表的操作
选中数据库: use 数据库名;
创建表:
create table student(
id int primary key auto_increment,
name char(4) not null default '',
age tinyint unsigned not null default 0,
sex enum('男','女') not null,
birthday date not null,
intro varchar(1000),
salary decimal(7,2) not null default 0
) charset utf8;
修改表名: rename table 旧表名 to 新表名;
描述表: desc 表名;
删除表: drop table 表名;
表增加列: alter table 表名 add 列名;
表在某一列后增加列:
alter table 表名 add 列名 after 列名;
表在第一列前增加列:
alter table 表名 add 列名 first;
修改列名:alter table 表名 change 旧列名 新列名 新列声明;
删除列:alter table 表名 drop 列名;
解决 Incorrect string value: set names gbk;
建立临时表:
create table PersonsCopy like Persons;
清空表数据:
truncate PersonsCopy
3. 数值型
1.整型:
- tinyint
- smallint
- mediumint
- int
- bigint
tinyint(M) unsigned zerofill
M: 配合 zerofill 使用,数值前补充几位零。
unsigned: 无符号类型,非负 0 - 255
zerofill: 零填充
2.小数型
- 浮点型:float(M,D) unsigned
- 定点型:decimal(M,D) unsigned
M代表总位数,D代表小数位,如:float(6,2) 代表 -9999.99 -9999.99
unsigned 代表非负
区别? decimal更精准,float在数值较大会丢失精度
4.字符型
- char(M)
- varchar(M)
M 碉堡宽度,可容纳的字符数,其中1个中文字符占据3个字节,
区别?
1. char 可存字符长度 短,0<=M<=255
varchar 可存字符长度 长,0<=M<=65535,以 ansi 为例
2. char 为 定长,实存字符 i , 实占空间 M,利用率为 i / M <= 100%
varchar 为 变长,实存字符 i , 实占空间 i +(1~2)字节,利用率为 i <(i+1~2) <100%
3. char 内容不够 M 个字符,末尾用空格补充,导致如果存入内容本身末尾带有空格,取出时末尾空格被舍弃
varchar不存在该问题
4. char 速度更快,varchar 空间利用更灵活
5.时间型
- Year : 1个字节,代表 1901-2155
如果输入2位,’00 - 69’,表示 2000 - 2069
‘70 - 99’,表示 1970 - 1999 - Date :1000 - 01 - 01 - 9999 - 12 - 31
- time : - 838.59.59 - +838.59.59
- Datetime
- timestamp
参考文章:
[1]http://www.cnblogs.com/bukudekong/archive/2011/06/27/2091590.html
[2]http://blog.csdn.net/aidenliu/article/details/5465300