数据库
1.1什么是数据库
数据库(DB,DataBase)
概念:数据仓库,软件
作用:用来存储数据,管理数据
1.2数据库的分类
关系型数据库:(SQL)
- MySQL,Oracle,Sql Server
- 通过表和表之间,行和列之间的关系进行数据的存储,学员信息表
非关系型数据库:(NoSQL)
- Redis,MongDB
- 非关系型数据库,对象存储,通过对象的自身属性来决定。
DBMS(数据库管理系统)
-
数据库的管理软件,科学有效的管理我们的数据。维护和获取数据
-
MySQL,数据库管理系统
DDL 数据库定义语言
DML 数据库操作语言
DQL 数据库查询语言
DCL 数据库控制语言
1.3操作数据库中的表
1.数据库的列类型
1.数值
- tinyint 十分小的数据 1个字节
- smallint 较小的数据 2个字节
- mediumint 中等大小的数据 3个字节
- int 标准的整数 4个字节
- bigint 较大的数据 8个字节
- float 浮点数 4个字节
- double 浮点数 8个字节(精度问题)
- decimal 字符串形式的浮点数 金融计算的时候一般使用,decimal(M,D)占M+2个字节
2.字符串
-
char 字符串固定大小的 0~255
-
varchar 可变字符串 0~65535 常用的变量 String
-
tinytest 微型文本 2^8-1
-
text 文本串 2^16-1 保存大文本
3.时间日期
java中的包 java.util.Date
- date YYYY-MM-DD,日期格式
- time HH: mm: SS时间格式
- datetime YYYY-MM-DD HH: mm: SS 最常用的时间格式
- year年份表示
4.null
- 没有值,未知
- 使用NULL进行运输,结果为NULL
2.数据库的字段属性(重点)
Unsigned:
- 无符号的整数
- 声明了该列不能声明为负数
zerofill:
-
0填充
-
不足的位数,使用0来填充, int(5),5------00005
自增:
-
自动在上一条记录的基础上+1(默认)
-
通常用来设计唯一的主键 ,比如 index,必须是整数类型
-
可以自定义主键自增的起始值和步长
非空NULL NOT NULL
-
设置为not null,如果不给它赋值,就会报错
-
NULL,如果不设置,默认就是NULL
默认:
-
设置默认的值!
-
sex,默认值为男,如果不指定该列的值,则会有默认的值!
3.阿里巴巴设计规范
- id 主键
- version 乐观锁
- is_delete 伪删除
- gmt_create 创建时间
- gmt_update 修改时间
1.4.数据库引擎
InnoDB 5.5后默认使用
MyISAM 早些年使用
MyISAM | InnoDB | |
---|---|---|
事务支持 | 不支持 | 不支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 较大,MyISAM的2倍 |
常规使用操作:
-
MyISAM 节约空间,速度较快
-
InnoDB 安全性高,事务处理,多表多用户操作
在物理空间存在的位置
-
默认路径保存在C:\ProgramData\MySQL\MySQL Server 5.7\Data
-
MySQL的配置文件在C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
所有的数据库文件都存放在data目录下,本质是文件存储
引擎文件在物理文件上的区别
-
InnoDB 表在数据库中只有一个*.frm文件,和它的.ibd文件
-
MyISAM对应文件
- *frm 表结构的定义文件
- *MYD 数据文件(data)
- *MYI 索引文件(index)
设置数据库表的字符编码
CHARSET=utf8
不设置的话,会是mysql默认的字符集编码Latin1 (不支持中文)
在my.ini中配置默认的编码
character-set-server=utf8
sql语句
数据库
操作数据库>操作数据库中的表>操作数据库表中的数据
连接数据库
mysql -uroot -proot
创建数据库
create database westos;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xR6uI95y-1666777952489)(C:\Users\雷雄雄\Desktop\图片\新建数据库.JPG)]
查看所有数据库
show databases;
查看创建数据库的语句
show create database school;
删除数据库
drop database westos;
切换数据库
use cs;
操作数据库中的表
show tables;
显示表的所有信息
describe standent;
查看表的创建语句
show create table student;
创建一个学生表
# if not exists如果这个表不存在就创建
create table if not exists student(
# auto_incremen 自增 comment '学号' 注释
id int(4) not null auto_increment comment '学号',
# default '匿名' 默认值
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 '出生日期',
address varchar(100) default null comment '家庭住址',
email varchar(50) default null comment '邮箱',
#主键声明
primary key(id)
#存储引擎 默认字符集 注释
)Engine=innodb default charset=utf8 comment '学生表';
格式
create table [if not exists] 表名(
字段名 字段类型 [属性][索引][注释],
字段名 字段类型 [属性][索引][注释],
...
[primary key("主键字段")]
)[表类型] [字符集] [注释];
显示表的结构
desc student;