数据库的基本概念
数据库的引擎
innordb 两个文件
1.什么是数据库的事务?
事务是支持多用户的共享机制,在修改的时候要加select
2.什么是行级锁?
在共同相处理同一行的数据的时候我们需要在行内加锁以保证数据的安全,但是在修改的时候修改者都要带一个行级锁的钥匙,不然是没有办法去修改数据的
对于少量的数据的的并发修改效率更高
但是对于整个表的大量数据字段修改反而拖慢了速度
3.如何创建外键?
create table (表名)
myisam 5.5版本下默认的储存引擎 会生成三个文件
查询速度
memory存储引擎
断电消失
blakhole 引擎
多级主从复制 如果之后几台的时候是没有必要添加的因为没有太大的意义
存啥啥没
数据库在读写数据的时候的效率差:
数据库在写的时候是比读的时候慢很多的所以要做读写分离
表结构的操作:
数据类型:
数字:int float
字符串:char 优先 定长 :存取快,消耗空间 varchar 变长.存取慢,节省空间
时间:datetime timestame 能表示的时间戳比较短2038年就结束了所以一般不用
问题:在做月统计的时候你一般用什么数据类型来存储时间?
用datetime,因为可以直接查日 月 天操作方便
枚举和集合
enum : create table (gender enum("male","female"))
set 集合多选去重
约束条件:
非空: not null
默认值: default
唯一: unique
联合唯一 unique (字段1,字段2)
唯一+int 自增 auto_increment
主键: primatry
删除表结构: drop table 表名
修改表结构:
alter table 表名
查看表结构:
desc 表名
数据库的记录操作
增:
insert into 表(字段) values (值1,值2),(值1,值2)
删:
delete from table where 条件
delete from table 删除整个表中的数据
改:
update 表 set 字段
查:
单表:
select * from 表
where 条件
group by 字段
having 过滤条件
order by 排序
limit 取前几条
order by 和limit会拖慢查寻的速度因为都会整体查询一边
多表: 连续查询 子查询