MySQL数据库
前言
数据存储方式?
Java:内存
- 优点:数据处理速度极快
- 缺点:生命周期比较短
文件:eg:word,excel
- 优点:可议长期保存数据
- 缺点;不便于快速查找复杂关系的数据,会丢失,没有数据备份
新的存储数据的方式由此诞生:数据库
数据库分类:
- 关系型数据库:mysql,oracle,db2,sql,server
- 非关系型数据库(nosql):redis(基于键值对方式存储数据),es(基于文档方式存储数据)
数据库管理系统(DBMS):用于维护数据库数据的维护
二、数据库的字段类型(常用)
1.整型
- 整型:int
2.字符串
-
char:一般存储定长字符。eg:性别,MD5加密数据
-
varchar:一般存储变长字符。
区别:
char:存数:按照定义的长度存储数据。取数:char会去掉空格
varchar:存数:参照实际录入的数据大小存储。取数:varchar不会去掉空格
-
text:长文本数据(0-65535)
-
blob:二进制数据
3.浮点型
- double(5,2):第一个参数表示整个数据长度,第二个参数表示小数位数
- decimal(5,2):运算精度高,适合做报表运算
4.日期
-
datetime:8字节,存储数据格式:
yyyy-MM-dd HH:mm:ss
-
timestamp:4字节,存储数据格式
yyyy-MM-dd HH:mm:ss
区别:
-
datetime数据范围(1000-9999)
timestamp数据范围(1970-2038),会自动赋值
-
-
year:1字节,yyyy
-
date:3字节,yyyy-MM-dd
-
time:3字节,HH:mm:ss
三、约束
1.主键约束
- primary key(唯一且不能为空),习惯用在表的ID上
2.唯一约束
- unique(唯一),比如用户名唯一
3.非空约束
- not null,该字段的不能存空
4.外键约束
-
foreign key
alter table 表名1 add foreign key(字段名) references 表名2(字段名);
- 外键约束是做用于子表上
- 添加外键约束涉及到的两张表字段类型必须一致
- 添加数据时,先新增主表的数据,再新增子表的数据
- 删除数据时,先删除子表的数据,再删除主表的数据
5.default
- 默认约束,定义字段默认值
四、SQL语言
1.sql定义
structure query language;标准的结构化查询语言
2.sql语言分类
- DDL:数据定义语言,比如创建库,创建表
- DCL:数据控制语言,比如grant(分配权限),revoke(回收权限)
- DML:数据库操作语言,比如insert,updata,delete
- DQL:数据查询语言(重点),select
- TCL:事务控制语言,比如rollback(回滚),commit(提交)
3.DDL数据库定义语言
3.1.库操作和定义表
-
查询数据库
dos界面连接数据库(需要配置环境变量)
mysql -u root -proot:连接数据库
show databases:展示所有库
-
创建库
--方式一: create database 库名; --方式二: create database 库名 default character set utf8(常用) --方式三: create database 库名 default character set utf8 collate utf8_general_ci;//utf8_bin(大小写敏感)
-
修改库
alter database 库名 default character set utf8;
-
删除库
drop database 库名;
-
使用库
--use 库名; ********************************************* --查看当前使用是哪个库: select database()
-
定义表
create table 表名(