当前位置:首页 > MySQL学习笔记
一、数据类型
整数类型:常见的有int和Bigint类型。 浮点类型:float,double,decimal
1、float(6,2)表示该数据长度为6,保留2位小数(double和decimal同样)。 2、如果数据的精度大于设定的精度,如如果数据为3.145,则会自动进行四舍 五入,变成3.15。不同的是,decimal四舍五入时会报警告,而float和double 不会。
3、如果没有设定精度,float和double会默认保存实际精度,而decimal的默 认设置为decimal(10,0),即默认为整数。 4、精度:decimal 〉 double 〉 float
时间和日期类型:
YEAR:表示年份的类型 (1)‘YYYY’,其范围是1901-2155,如果超过范围会自动变为0000. (2)‘YY’,‘00’到‘69’表示2000到2069年;‘70’到‘99’表示1970 到1999年。‘0’和‘00’是一样的。 (3) YY(注意这里是数字形式),1到69表示2001到2069,70到99表示1970 到1999年。要注意2位字符串和2位数字的不同,如果输入0,则认为 不在范围内,转换成0000。 TIME:表示时间的类型 (1)‘HH:MM:SS’,例如输入12:30:00,则表示时间12:30:00;也可以省略 部分,例如12:30,同样表示时间12:30:00。省略部分以00代替。 (2)‘D HH:MM:SS’,其中D表示天数,范围在0到34,例如输入 1 12:30:00, 1表示1天,乘以24小时再加12小时,所以表示时间是36:30:00. (3)‘HHMMSS’,或者是其数字形式HHMMSS,如123030和‘123030’表 示的时间是12:30:30。 DATE:表示日期类型 (1)‘YYYY-MM-DD’或者‘YYYYMMDD’的字符串形式表示日期,日期范 围是1000-01-01到9999-12-31,例如输入‘2015-3-1’则转换成 ‘2015-03-01’。
注意,此类型还支持不严格的符号作间隔,例如‘2015/3/1’或者 ‘2015,3,1’等。
(2)‘YY-MM-DD’或者‘YYMMDD’表示,与YEAR类似,‘YY’表示年, ‘00’到‘69’表示2000到2069年;‘70’到‘99’表示1970到1999 年。
DATETIME:表示日期和时间 (1)‘YYYY-MM-DD HH:MM:SS’或者‘YYYYMMDDHHMMSS’表示日期 和时间。
同样,MySQL支持任意符号作为分割,与DATE类型相似,但是TIME 类型则只能使用 :作为分割。 (2)‘YY-MM-DD HH:MM:SS’或者‘YYMMDDHH:MM:SS’表示,‘YY’ 范围同上。
字符串类型:常见的有char和varchar类型
(1)Char类型固定长度,分配多少就占用多少字节,而varchar类型实际占 用多少就分配实际的字节加1的长度,因为varchar结束标志占用了1 个字节。
(2)如果某个字符串结尾有空格,char类型会自动去掉结尾的空格,而varchar 则会保存结尾空格。
二、操作表
设置主键:单字段主键
Create table tableName( id int primary key, ... );
多字段主键
Create table tableName( id int,
name varchar(10), Primary key(id, name) );
撤销主键:如果主键有其他约束,比如自增长,则应该先删除该约束,再删除主键约束。
设置外键:type表的主键是t_id,把t_id设置为book表的外键;
Create table book( b_id int primary key, typeId int,
constraint fk foreign key (typeId ) references
type (t_id));//其中fk是外键的别名
上面是在创建表的同时设置外键,也可以在表已创建好后在设置外键约束:
alter table book add constraint fk foreign key (typeId) references type (t_id);//fk为外键别名
表的唯一性约束:属性名 类型 UNIQUE
表的非空约束:属性名 类型 NOT NULL
表的属性值自动增加:属性名 类型 AUTO_INCREMENT 注意:一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须是 主键或者是主键的一部分,该约束的字段只能是整数类型,默认情 况下是从1开始增加。
追加主键自增长约束:alter table book modify id int auto_incremetn; 表的属性的默认值:属性名 类型 DEFAULT 默认值
例如:age int default 0
查看表的结构:
describe(desc) tableName:可以显示表的各个字段及其约束等信息。
show create table tableName:可以显示创建表时的代码。
修改表
修改表名:
alter table tableName rename newName; 修改字段的数据类型:
alter table tableName modify 属性名 数据类型;
修改列名:
alter table tableName change 旧列名 新列名 新数据类型; 删除一列:
alter table tableName drop (column) 属性名; 增加一列:
alter table tableName add (column) 属性名 数据类型; alter table tableName add (column) 属性名 数据类型 first; //增加到第一列的位置
alter table tableName add column 属性名 数据类型 after (已存在)属性名; //增加到属性名2的后面位置 修改属性的排列位置:
alter table tableName modify 属性1 数据类型 first; alter table tableName modify 属性1 数据类型 after 属性2;
删除表的外键约束:
alter table tableName drop foreign key 外键别名; 其中外键别名可以通过show create table tableName查看。 删除表:
删除没有关联的表:drop table tableName
删除有外键约束的表:先删除外键约束,再按上面的语法删除。
共分享92篇相关文档