(三)、MySQL的数据类型
1.数值类型
1.整形:
取值范围如果加了unsigned,则最大值翻倍。比如 tinyint unsigned(0~256);
2.数值类型(double float)
3.定点数()
浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。
declima(m,d); 所占内存 m+2个; m<65; 连上小数一共最多有65个。 d<30&&d<m 小数部位最多有30个并且小数部分不能大于总数。
2.字符串类型:
char和varchar:
1.char(n)若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存储的字符串末尾不能有空格,varchar不限于此。
2.char(n)固定长度,char(4)不管是存入几个字符,都将占用4个字节.varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),所以varchar(4),存入3个字符将占用4个字节。
3.char类型的字符串检索速度要比varchar类型的快。
varchar和text:
1.varchar可指定n,text不能指定,内部存储 varchar是存入的实际字符数+个字节(n<=255)或2个字节(n>255),text是实际字符数+2个字节。
2.text类型不能有默认值。
3.varchar可直接创建索引,text创建索引要指定前多少个字符。varchar查询速度快于text,在都创建索引的情况下,text的索引似乎不起作用。
3.日期数据类型:
若定义一个字段为timestamp,这个字段里的时间数据会随其他字段修改的时候自动刷新,所以这个数据类型的字段可以存放这条记录最后被修改的间。
(四)、字段的约束:
通过对字段的类型进行约束。就是字段的约束.为了保障数据的有效性,保证数据的完整性(null),保证数据的唯一约束(unique).
NULL 字段的内容可以为空 NOT NULL 字段的内容绝不可以为空 Unique 字段的内容绝对不能重复 primary key 能够唯一标识数据表中的某个字段的属性 forigner key 主要建立不同表之间的关系。
1.主键(primary key)
能够唯一标识数据表中的某个字段的属性,一个表中最多只有一个主键并且主键不能为空。(不空)(不重复)
创表的同时,添加主键。
stu_id char(8) primary key; 后面的约束可省略
创建表之后,再添加主键。
alter table <TableName> modify <被添加主键的字段名> <Type> primary key;
2.删除主键
alter table <TableName> drop primary key;
3.主键自动增长
我们在创建数据表的时候,假如说表中有列可以作为主键(列如 学生表中的学号,图书馆中图书管号)我们可以把这个列作为主键。
当有些数据表中没有合适的列作为主键的时候,我们可以额外定义一个与记录本身无关的(ID)作为主键,此列数据无具体的含义主要用于标识一条记录,在mysql中我们可以将此设置为int,并且同时设置为自动增长。
定义主键自动增长型:
auto_increment 自动增长
DML(数据操纵语言)
(一)、数据表数据的添加
1.指定字段数据的插入
insert into <数据表名>(字段1,字段2) values (值1,值2);
2.全部数据的添加
insert into <数据表> values(值1,值2,值3);
3.批量添加操作
insert into <数据表>(字段1,字段2) values(值1,值n),(值1,值n)
4.全部数据添加
insert into <数据表> values(值1,值2),(值1,值2);