增
insert into 表名 values (值1,值2...);
也可以指定所要插入的列:
insert into 表名 (列1,列2...) values (值1,值2...);
注:一般MySQL的字符集是utf-8的,若我们使用的客户端默认的编码方式不是utf-8,则sql语句中有中文时会有编码错误;
可以通过先声明字符集进行规避该问题:set names gbk;
插入多条数据:
INSERT INTO good
(name,age,tel)
VALUES
('张飞',79,'110'),
('赵云',69,'112'),
('黄忠'59,'135');
|
删
delete from 表名 where 列名=值;
改
update 表名 set 列名=新值 where 列名=值;
查
select 列名 from 表名;
字段数据类型:
整型
tinyint
微小的整型,占1个字节,表示数字大小0~255.
若要表示负数,用最高位来标识符号位,1表示负数;则取值范围:-128~127(只有后7位表示绝对值,最高位表示的符号).
smallint
mediumint
int
bigint
类型 | 字节 | 位 | 无符号 | 有符号 |
tinyint | 1 | 8 | 0~2^8-1 | -2^7~2^7-1 |
smallint | 2 | 16 | 0~2^16-1 | -2^15~2^15-1 |
mediumint | 3 | 24 | 0~2^24-1 | -2^23~2^23-1 |
int | 4 | 32 | 0~2^32-1 | -2^23~2^23-1 |
bigint | 8 | 64 | 0~2^64-1 | -2^63~2^63-1 |
注意:tinyint默认是有符号的存储范围是-128~127之间,可以通过整型列的可选属性进行修饰,在类型后面跟unsigned进行修饰,可使类型无符号表示。
tinyint(M) unsigned zerofill
M:宽度(在0填充时才有意义)---M值在zerofill时才有意义
unsigned:无符号类型(非负)---无符号显示,影响存储范围
zerofill:0填充,(默认无符号)---某列若设置了zerofill,则默认是unsigned(无符号),且整列数值长度相同,前面用0做填充,数据总长度为M。
小数型
浮点型
声明:float(M,D)
定点型
声明:decimal(M,D)----比浮点型更精确
M:精度(总位数,不包含点);以(6,2)为例,存储范围为:-9999.99~9999.99
D:标度(小数位)
注意:float和decimal类型在数据库存储中字节数是固定的(4个字节或8个字节),跟M,D的参数没必要联系。
字符型
char:定长字符串,char(M)M代表宽度,可容纳的字符数;
varchar:变长字符串,varchar(M)M代表宽度,可容纳的字符数;
char和varchar的区别:
1.char定长,最大M个字符,若存入数据小于M的N个字符,实占M个字符,若不够则内部用空格补齐(尾部);M代表宽度,0<=M<=255;
2.varchar变长,最大M个字符,若存数据小于M的N个字符,实占N个字符;M代表宽度,0<=M<=65535(以ascii字符为例,utf-8大约22000左右);
3.对于char类型,若存储数据尾部有空格,则取出时空格会被去掉,造成数据不对;
4.在空间利用上,varchar更优,在处理速度上,char更优;
text:文本串,可以存储比较大的文本段,搜索速度稍慢,且不能设置默认值。
时期/时间型
year:年类型--1个字节,表示1901~2155之间的整数,为防止出错,还有一个0000年(输入非法字符时转成0000)
注,若输入的是两位数字,“00-69”,则表示2000--2069年;
若输入的两位数字,“70-99”,则表示1970--1999年
date:日期类型,典型格式1992-08-12
日期类型表示的时间范围:'1000-01-01'------'9999-12-31'
time:时间类型,典型格式:hh:mm:ss
time值的取值范围:‘-838:59:59’---'838:59:59'
datetime:日期时间类型,典型格式:1985-05-06 12:38:02
datetime取值范围:1000-01-01 00:00:00---9999-12:31 23:59:59
设计表时,字段的数据类型要重点考虑两个方面:1.占据空间,2.存储范围;