初识MySQL
数据库(DB)分类:
- 关系型数据库: (SQL)
- MySOL,Oracle,Sql Sever,DB2,SOLlite
- 通过表和表之间,行和列之间的关系进行数据你的存储,学员信息表,考勤表,……
- 非关系型数据库: (NoSQL) Not Only
- Redis,MongDB
- 非关系型的数据库,对象存储,通过对象自身的属性来决定
DBMS(数据库管理系统):
- 数据库的管理软件,科学有效的管理数据,维护和获取数据
- MySOL,是关系型数据库管理系统
基本操作指令
mysql -u root -p
set password for 用户名 @localhost = password('新密码');
flush privileges
show databases;
mysql> use school;
show tables;
dicribe student;
create database wang;
exit;
多行注释
数据库语言:
DDL 定义
DML 操作
DQL 查询
DCL 控制
操作数据库
- mysql中关键字不区分大小写,建议小写
- 字段名用反引号`` 包裹
操作数据库(增删改查)
CREATE DATABASE abc;
CREATE DATABASE IF NOT EXISTS abc;
SHOW CREATE DATABASE `school`;
DROP DATABASE IF EXISTS abc;
USE `school`;
SHOW DATABASES;
数据库的列类型
数值
数据类型 | 属性和大小 |
---|
tinyint | 十分小的数据,1字节 |
smallint | 比较小的数据,2字节 |
mediumint | 中等大小的数据,3字节 |
int(常用) | 标准整数,4字节 |
bigint | 较大的数据,8字节 |
float | 浮点数,4字节 |
double | 浮点数,8字节 |
decimal | 字符串形式的浮点数,金融计算的时候一般用decimal |
字符串
字符串类型 | 属性和大小 |
---|
char | 固定大小的字符串 0-255 |
varchar | 可变大小的字符串 0-65535 常用的变量 String |
tinytext | 微型文本 2^8 -1 |
text | **文本串 2^16-1 保存大文本 ** |
时间日期
java.utill.Date
时间类型 | 格式 |
---|
date | YYYY-MM-DD |
time | HH:mm:ss |
datetime | YYYY-MM-DD HH:mm:ss 最常用时间格式 |
timestamp | 时间戳,1970.1.1到现在的毫秒数!! |
year | 年份表示 |
null
没有值,未知
字段属性(重点)
属性 | 说明 |
---|
Unsigned | 限定为无符号整数,不能为负数 |
zerofill | 使用0去填充不足的位 |
autoincreament | 自增长,自动在上一条记录的基础上+1(默认),幅度可调 |
notNULL | 不能为空,若没有赋值则报错 |
default | 设置默认值,不赋值则使用默认值填充 |
每个表必须存在以下5个字段,表示一个表存在的意义
- id 主键自增
- version 乐观锁
- is_delete 伪删除
- gmt_create 创建时间
- gmt_updata 修改时间
操作表
创建表
基本操作
CREATE TABLE IF NOT EXISTS `student`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`password` VARCHAR(20) NOT NULL DEFAULT'123456' COMMENT'密码',
`name` VARCHAR(30) NOT NULL DEFAULT'匿名' COMMENT'姓名',
`sex` VARCHAR(2) NOT NULL DEFAULT'女' COMMENT'性别',
`birthday` DATETIME DEFAULT NULL COMMENT'出生日期',
`address` VARCHAR(100) DEFAULT NULL COMMENT'家庭住址',
`email` VARCHAR(20) DEFAULT NULL COMMENT'邮箱',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
SHOW CREATE TABLE `students`;
DESC `students`;
数据表的类型
| MYISAM | INNODB |
---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
大小 | 较小 | 较大,约2倍 |
- 常规使用操作
- MYISAM:节约空间,速度较快
- INNODB:安全性高,事务的处理,多表多用户男的操作
修改和删除表
修改
ALTER TABLE `teacher` RENAME AS `teachers`;
ALTER TABLE `teachers` ADD `age` INT(11);
ALTER TABLE `teachers` MODIFY `age` INT(3);
ALTER TABLE `teachers` CHANGE `age` `age1` INT(11);
删除
ALTER TABLE `teachers` DROP `age1`;