一、MySQL中的数据类型
- MySQL支持多种数据类型,数值类型、日期/时间类型和字符串类型
- 不区分大小写
1、数值类型
类型名 | 涵义 |
tinyint | 一个很小的整数,1个字节 0-255 例:定义年龄,可以用这个类型 |
smallint | 一个小整数,2个字节 |
mediumint | 一个中等大小的整数,3个字节 |
int、integer | 一个正常大小的整数,4个字节 |
bigint | 一个大整数,8个字节 |
float | 一个小(单精密)浮点数字,近似值,可以带一个整数类型的参数,0到23的精度对应的float列的4个字节单精度,24到53精度对应double列的8个字节双精度 |
double double precision real | 一个正常大小(双精密)浮点数字,近似值 |
decimal numeric | 一个精确的浮点数字 |
1、tinyint
create table p(id tinyint unsigned);
2 decimal(5,2)
5表示总长度,不包括小数字
2表示小数点长度
![](https://images2015.cnblogs.com/blog/773205/201509/773205-20150909105637169-1626563839.png)
2、日期时间类型
类型名 | 涵义 |
date | 一个日期,以'YYYY-MM-DD'格式来显示,范围从'1000-01-01'到‘9999-12-31’,3个字节 |
time | 一个时间,以'HH:MM:SS'格式来显示,time值的范围可以从‘-838:59:59’到‘838:59:59’.小时部分会大的原因是:time类型不公可以用于表示一天的时间(必须小于24小时),还可以表示某个过去的事情到现在的时间或两个事件之 间的时间间隔(可以大于24小时,或者为负)。3个字节 |
datetime | 日期和时间的组合,以‘YYYY-MM-DD HH:MM:SS’格式来显示,取值范围:“1000-01-01 00:00:00"到”9999-12-31 23:59:59“,8个字节 |
timestamp | 一个时间戳,基本上与datetime差不多,但是在建时间戳类型的列上会自动添加默认值为current_timestamp,而且在更新行时自动用当前时间更新时间戳类型的列。取值范围:”19700101000000“到2037年的某个时刻,4个字节 |
year | 以YYYY格式 检索和显示year值。范围是1901到2155.1个字节 插入的值可以是4位字符串,也可以是2位字符串,也是4位或2位数字 |
3、字符数据类型
![](https://images2015.cnblogs.com/blog/773205/201509/773205-20150909105639872-808265592.png)
- text和blob是二进制类型的,text 适合存储长文本,blob适合文本、声音、图像
4、布尔数据类型
- boolean简写成bool
- 0表示假,非0值表示真
二、MySQL数据库的操作
1 创建数据库
create database 数据库名称;
2 查看数据库
//查看已创建的数据库
show database;
3 选择数据库
use 数据库名;
4 删除数据库
drop database 数据库名;
三、表操作
1 创建表
create table[if not exists] table_name(
列名 数据类型 列级约束,
...
)
注:创建表时,需要指定下列内容:
- 唯一的表名称
- 表内唯一的列名称
- 列的数据类型及其宽度和其他约束
![](https://images2015.cnblogs.com/blog/773205/201509/773205-20150909105641559-371476336.png)
- 为列设置默认值,可以用使用关键字:default
- 对于整数列,可以使用关键字 auto_increment,将该列定义成自动增长列
- 一个表只能有一个自增列
- t得到最后一次插入的值:last_insert_id()
- 为表设置存储引擎
![](https://images2015.cnblogs.com/blog/773205/201509/773205-20150909105642419-1219403542.png)
2 查看表结构
desc 表名;
![](https://images2015.cnblogs.com/blog/773205/201509/773205-20150909105643247-2056266087.png)
3 查看列信息
show columns 数据库名.表名;
![](https://images2015.cnblogs.com/blog/773205/201509/773205-20150909105643809-400718081.png)
4 修改表结构
- 添加一列
alter table 表名 add column 列名 类型
//column这个关键字可以省略
- 修改某列的类型
alter table 表名 modify column 列名 列类型;
- 修改列名
alter table 表名 change 旧列名 新列名 数据类型;
//数据类型可改可不改
- 删除一列
alter table 表名 drop column 列名;
//column关键字可以省略
5 重命名表
rename table 表名 to 新表名
![](https://images2015.cnblogs.com/blog/773205/201509/773205-20150909105644747-444056328.png)
6 查看表:查看数据库的表
show tables [like 'pattern'] from 数据库名;
![](https://images2015.cnblogs.com/blog/773205/201509/773205-20150909105645309-756472585.png)
7 删除表
drop table [if exits] 表名;
![](https://images2015.cnblogs.com/blog/773205/201509/773205-20150909105646075-647437143.png)
- drop table 删除一个或多个数据库表,所有表中的数据和表的结构均被删除。
三、练习
1.创建新闻发布系统,表名为message有如下字段
id 文章id
title 文章标题
content 文章内容
category_id 文章分类id
hits 点击量
注意: 要求文章(id)设置为自动增长, 并要求表的存储引擎为InnoDB
2.同样上述新闻发布系统:表comment记录用户回复内容,
字段如下
comment_id 回复id
id 文章id,
comment_content 回复内容
注意: 要求回复id(comment_id) 设置为自动增长,并要求表的存储引擎为MyISAM
捐赠我们
良师益友工作室一直在致力于帮助编程爱好更加快速方便地学习编程,如果您对我们的成果表示认同并且觉得对你有所帮助,欢迎您对我们捐赠^_^。 ![](https://images2015.cnblogs.com/blog/773205/201509/773205-20150909105647684-2011853849.jpg)
良师益友工作室一直在致力于帮助编程爱好更加快速方便地学习编程,如果您对我们的成果表示认同并且觉得对你有所帮助,欢迎您对我们捐赠^_^。
![](https://images2015.cnblogs.com/blog/773205/201509/773205-20150909105647684-2011853849.jpg)