1 初识mysql
什么是数据库
数据库的作用:存储数据,管理数据。
数据库的分类:
关系型数据库:mysql oracle sql server等。
非关系型数据库:Redis,MongDB
DB 和DBMS
DB: 数据库
DBMS: 数据库管理系统
mysql是最好的关系型数据库管理系统之一。
mysql中常用的命令
--cmd命令连接数据库
mysql -uroot -p;
show databases;--显示所有的数据库
flush privileges;--刷新权限
show tables;--显示表
show create table 表名;--显示创建表的语句。
2 操作数据库
操作数据库>操作数据库中的表>操作数据表的数据
数据库操作的四种基本语言
DDL:数据库定义语言
DML:数据库管理语言
DQL:数据库查询语言
DCL:数据库控制语言
--数据库的操作
create database if not exists databasename;--创建数据库
drop database if exists databasename;--删除数据库
use databasename;--切换数据库
数据库中列的类型
--1 数值类型
tinyint 1B
smallint 2B
int 4B 常用的
mediumint 3B
bigint 8B
float 4B
double 8B
decimal 字符串形式的浮点数 金融计算的时候一般使用
-- 2 字符串类型
char 不可变 0-255
varchar 可变字符串 0-65535 常用
tinytext 微型文本 2^8-1
text text大文本 2^16-1 大文本常用
-- 3 日期类型
java.util.Date
date YYYY-MM-DD
time HH-mm-ss 时间格式
datatime YYYY-MM-DD HH:mm:ss 最常用的
timestamp 时间戳 1970.1.1 到现在的毫秒数
year 年份表示
-- 4 null类型
没有值,未知
不要使用null进行运算。
数据库中字段的属性(重点)
- Unsigned 无符号整数 规定了该列不能为负
- zerofill: 0填充
- null 和 not null : 默认为null 和 不能为空。
- auto_increment :自增。
- default :默认
- primary key :主键
创建表
每一个表,都必须存在者五个字段,未来做项目,表示一个记录的意义。
- id 主键
- version 乐观锁
- is_delete 伪删除
- gmt_create 创建时间
- gmt_update 修改时间
--创建表
create table if not exists 表名(
`字段1` 字段类型 [约束] comment'',
`字段2` 字段类型 [约束],
字段2` 字段类型 []
)engine=innodb default chatset=utf-8
--删除表
drop table if exists tablename;
--查看表结构
desc tablename;
desc student;
--注意
/*
在删除和添加表或数据库的时候要判断是否存在,以防报错。
提高程序的健壮性。
*/
//常用命令
show create table 表名;--查看创建数据库的语句
show create database 数据库名;--查看创建表的语句
关于数据库的引擎
项目 | Myisem | Innodb |
---|---|---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间的大小 | 下较小 | 较大(约为2倍) |
Myisem 节约空间,速度快
Innodb 安全性,事务的处理,多表多用户操作
在物理空间的位置
在data文件下
本质还是文件的存储