操作数据库
简单操作
- 创建数据库
(加入if not ,如果数据库已经存在会警告,不会报错)
create database if not exists school;
- 删除数据库
drop database if exists school;
- 使用数据库
use school;
如果字段名和mysql的关键字冲突,可以使用``,当然没有冲突的时候,也可以使用
select `user` from student;
- 查看数据库
show databases;
数据库的列类型
数值
int 标准的整数 4个字节
float 浮点数 4个字节
double 浮点数 8个字节
decimal 字符串类形式的浮点数,常用在金融计算
字符串
varchar 字符串
text 文本串
时间
java.util.Date
datetime YYYY:MM:DD HH:mm:ss 最常用的时间格式
timestamp 时间戳 1970.1.1到现在的毫秒数
数据库的列属性(重点)
- zerofill
0填充,比如int(3),不足的位数用零填充 5->005
- 自增
auto_increment
- not null
非空
-
默认值
default
拓展
每一个表都要有的五个字段(项目中)
属性 | 含义 |
---|---|
id | 主键 |
version | 乐观锁 |
is_delete | 伪删除 |
gmt_create | 创建时间 |
gmt_update | 修改时间 |
操作表
创建表
-- 创建表student
-- 注意:表和字段尽量使用``括起来
-- 自增
-- 所有语句的后面加 ,除了最后一个不要加
-- primary 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` DATETIME DEFAULT NULL COMMENT '出生日期',
`addres` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
关于数据库引擎
INNODB | MYISAM | |
---|---|---|
使用 | 默认使用 | 早些年使用 |
事务支持 | 支持 | 不支持 |
数据行锁定 | 支持 | 不支持(表锁定,效率低) |
全文索引 | 支持(之前版本不支持,现在支持) | 支持 |
外键约束 | 支持 | 不支持 |
表空间的大小 | 较大 | 较小 |
在物理空间存在的位置
所有的数据库文件都是存在data文件夹下,一个文件夹对应一个数据库
本质还是文件存储
设置字符编码
CHARSET=utf8
mysql 默认的编码是Latin1,不支持中文
character-set-server=utf8
或者在my.ini中加入上面这句设置编码,但是不建议这样做,因为在项目一起开发的时候,同事的配置文件中可能没有这个。
修改表
-- 修改表名
ALTER TABLE student RENAME AS student1;
-- 增加表的字段
ALTER TABLE student ADD t1 INT(11)
-- 修改表的字段(修改约束) modify
ALTER TABLE student MODIFY t1 VARCHAR(11)
-- 修改表的字段(重命名) 需要带上列类型 change
ALTER TABLE student CHANGE t1 t INT(11)
-- 删除表的字段
ALTER TABLE student DROP t