数据库 : DB
所有的数据存放的仓库
每一个文件夹也是一个数据库
数据库管理系统 – 软件 DBMS
关系型数据库 : mysql oracle sqllite sql server db2 access
非关系型数据库 : redis mongodb memcache
数据库管理员 DBA
管理数据库软件
数据库服务器 :一台跑着一个数据库管理软件的机器
表 : 文件,一张存储了数据的表
数据/记录 : 表中的信息,一行就是一条记录。
使用mysql --------用户相关操作
查看当前用户是谁? select user();
给当前用户设置密码 set password = password(‘123’);
创建用户 create user ‘用户名’@‘主机的ip/主机域名’ identified by ‘密码’
授权 grant select on 数据库名.* to ‘用户名’@‘主机的ip/主机域名’ identified by ‘密码’
授权并创建用户 grant select on 数据库名.* to ‘用户名’@‘主机的ip/主机域名’
mysqld install 安装mysql服务 mysql服务就被注册到操作系统中
net start mysql 启动mysql服务
net stop mysql 关闭mysql
启动客户端连接server
mysql -uroot -p123 -h192.168.14.12(这里也可以填域名,代表这个域名也可以连接mysql)
基础的库\表\数据操作
库 - 文件夹
创建库 **create database** 数据库名;
切换到这个库下 use 库名
查看所有库 show databases;
表 - 文件
查看这个库下的所有表 show tables;
创建表 create table 表名(字段名 数据类型(长度),字段名 数据类型(长度),..);
删除表 drop table 表名;
查看表结构 desc 表名;
describe 表名;
数据(记录) - 文件中的内容
增 : insert into 表 values (一行数据),(一行数据),(一行数据);
删 : delete from 表 where 条件;
改 : update 表 set 字段名=值,字段2=值2 where 条件;
查 : select 字段 from 表;
存储引擎:-- 存储数据的方式。
常用的存储引擎 :Innodb存储引擎 mysql5.6之后的默认的存储引擎 (一般都用这个)
数据和索引存储在一起 2个文件
数据索引\表结构
好处:
数据持久化
支持事务 : 为了保证数据的完整性,将多个操作变成原子性操作 : 保持数据安全
支持行级锁 : 修改的行少的时候使用 : 修改数据频繁的操作
支持表级锁 : 批量修改多行的时候使用 : 对于大量数据的同时修改
支持外键 : 约束两张表中的关联字段不能随意的添加\删除 : 能够降低数据增删 改的出错率
Myisam存储引擎 mysql5.5之前的默认的存储引擎
数据和索引不存储在一起 3个文件
数据\索引\表结构
数据持久化
只支持表锁
Memory存储引擎
数据存储在内存中, 1个文件
# 表结构
数据断电消失
面试题(例子)
你了解mysql的存储引擎么?
你的项目用了什么存储引擎,为什么?
# innodb
# 多个用户操作的过程中对同一张表的数据同时做修改
# innodb支持行级锁,所以我们使用了这个存储引擎
# 为了适应程序未来的扩展性,扩展新功能的时候可能会用到...,涉及到要维护数据的完整性
# 项目中有一两张xx xx表,之间的外键关系是什么,一张表的修改或者删除比较频繁,怕出错所以做了外键约束
创建表的时候 数据类型
数字 : int float(7,2) --------
int 不约束长度,最多表示10位数,
float(m,n)
# m 一共多少位,
# n 小数部分多少位
例子:
create table t1(
id int, # 默认是有符号的
age tinyint unsigned # 如果需要定义无符号的使用unsigne