Java全栈课程之MySQL数据库——操作数据库
一、操作数据库
1.创建数据库
create database [if not exists] 数据库名
2.删除数据库
drop database [if exists] 数据库名
3.使用数据库
use 数据库名
4.查看数据库
show databases
二、数据库的列类型
1.数值型
tinyint | 十分小的数据 | 1个字节 |
smallint | 较小的数据 | 2个字节 |
mediamint | 中等大小的数据 | 3个字符 |
int | 标准大小的字符 | 4个字节 |
big | 较大的数据 | 8个字节 |
float | 浮点型 | 4个字节 |
double | 浮点型 | 8个字节 |
decimal | 字符串形式的浮点型 | 金融计算 |
2.字符串
char | 字符串固定大小 | 0~255 |
varchar | 可变字符串 | 0~65535 |
tingteext | 微型文本 | 2^8-1 |
text | 文本串 | 2^16-1 |
3.时间日期
data | YYY-MM-DD | 日期格式 |
time | HH:mm:SS | 时间格式 |
datatime | YYYY-MM-DD HH:mm:ss | |
timestamp | 时间戳 | 1970.1.1开始的毫秒数 |
year | 年份表示 |
4.null
没有值,未知
注意:不要使用null进行计算,结果为null。
三、数据库的字段属性
1.unsigned:
(1)无符号的整数
(2)不能声明为负数
2.zerofill:
(1)0填充的
(2)不足的位数用0来填充 例:int(3) 5→005
3.自增:
(1)通常理解为自增,自动在上一条记录的基础上+1(默认)
(2)通常用来设计唯一的主键,必须为整数
(3)可以自定义设计主键自增的起始值和步长
4.非空 null not null:
假设设置为not null,如果不给它赋值,就会报错!null如果不填写值,默认就是null!
5.默认:
设置默认的值
sex 默认值为男,如果不指定该列的值,则会有默认的值
6.拓展
每一个表都有必须存在以下五个字段
id | 主键 |
`version` | 乐观锁 |
is_delete | 伪删除 |
gmt_create | 创建时间 |
gmt_update | 修改时间 |
四、创建数据库表
格式:
create table [if not exists] `表名`(
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释],
……
`字段名` 列类型 [属性] [索引] [注释]
) [表类型] [字符集设置] [注释]
例:创建一个student表,学号、姓名、密码、性别、出生日期、家庭住址、Emil
注意点:
1.使用英文(),表的名称和字段尽量使用``括起来
2.AUTO_INCREMENT自增
3.字符串使用单引号括起来
4.所有的语句后面加,(英文的)最后一个不用加
5.PRIMAPY KEY主键,一般一个表只有一个唯一的主键
create table if not exists `student` (
`id` int(4) not null AUTO_INCREMENT comment '学号',
`name` varchar(30) not null default'匿名' comment '姓名',
`pwd` varchar(20) not null default'123456' comment '密码',
`sex` varchar(2) not null default'女' comment '性别',
`birthday` datatime default null comment '出生日期',
`address` varchar(100) default null comment '家庭住址',
`emil` varchar(50) default null comment '邮箱',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
五、数据表的类型
1.关于数据库的引擎
MYISAM | INNODB | |
早些年使用 | 默认使用 | |
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间的大小 | 较小 | 较大约为2倍 |
2.常规使用操作
(1)MYISAM节约空间,速度较快
(2)INNODB按全性高,事务的处理,多表多用户操作
(3)在物理空间存在的位置:所有的数据库文件都存在data目录下,一个文件夹就对应一个数据库,本质还是文件的存储!
3.MySQL引擎在物理文件上党的区别:
(1)InnoDB在数据库中只有一个*.frm文件,以及上级目录下的ibdatal文件。
(2)MYISAM对应文件
*.frm 表结构定义文件
*.myd 数据文件(data)
*.myi 索引文件(index)
3.设置数据表的字符集编码
charset=utf8
不设置的话会是MySQL默认的字符集编码(不支持中文)
MySQL的默认编码是Lutinl,不支持中文
在my.ini中配置默认的编码:character-set-server=utf8
六、修改删除数据表
1.修改
(1)修改表名:alter table 旧表名 rename as 新表明
alter table teacher rename as teacher1;
(2)增加表的字段:alter table 表名 add 字段名 列属性
alter table teacher add age int(11);
(3)修改表的字段(重命名、修改约束)
alter table 表名 change 旧名字 新名字 列属性[];
alter table teacher change age age1 int(1)
alter table 表名 modify 字段名 列属性[];
alter table teacher modify age varchar(11);
2.删除
(1)删除表(如果存在再删除)
drop table if exists teacher1;
(2)删除表的字段
alter table teacher drop age1;
所有的创建和删除尽量加上判断语句以免报错