MySQL体系结构
- 连接池
- SQL接口组件
- 解析器:词法分析,语法分析
- 优化器:怎样选择索引,各表需要链接时如何进行链接
- 缓存:将查询结果按照k-v缓存,k是查询语句,v是结果。当表发生更新后缓存失效。
- 存储引擎:
1、Mysql支持两种存储机制:MyISAM和InnoDB,
MyISAM不常用,对事物支持不够好,InnoDB提供事务安全存储机制,通过建立行级锁来保证事务完整性。
2、Sql语句类型
查询语句:select
DDL(数据定义语言create ,alter, drop, trunate)、
DML(数据操作语言 insert into, update, delete from)
DCL(数据控制 涉及权限的grant ,revoke)
事务控制语句:commit savepoint rollback
其中创建表create table user( id int, name varchar(64));列类型放在名字后面。Drop删除表、表中数据、该表相关联的约束。MySql对trunate比较特殊,“截断”删除表中数据,但保留表结构,相对于delete而言速度更快,一次只能删除表中全部数据,但是delete的话可以删除指定记录,一般不建议使用,或者使用前仔细查看一下相关介绍。
3、几种常见的列类型
Int、varchar、float(m,d)、decimal(d)精确小数类型、datetime、text
4、数据库约束
Not null:非空约束(数据库里的null值指的是int varchar float boolean等数据类型都可以为null)
Unique:唯一约束(不允许重复 但允许多个null出现,因为数据库中null值不等于null值)
Primary Key:主键,该列的值可以唯一标识该条记录(非空且唯一,每个表最多一个主键,但是可以由多个列组合而成)
Foreign key:外键,用于参照完整性的(先删除字表中记录 再删主表中记录,或者删除主表记录时级联删除字表记录;一对一、一对多实体关系)
Check:检查,mysql并不支持该项约束,如果想实现的话可以借助触发器机制
约束也是数据库对象,并被存储在系统表中,也拥有自己的名字,约束分为两类:单列约束和多列约束,mysql中使用information_schema数据库里的表table_constraint来保存约束对象。
5、索引和视图
索引就相当于目录 加速查找的 必须依赖某个表不能单独存在。视图建立后,查询视图和人查询表没什么区别,但是不能修改视图里数据,因为视图本身没有存储数据。
6、基本增删改查
(1)Insert into 表名(列名1,列名2) values(值1,值2)
(2)Delete from 表名 [where 条件]
(3)update 表名 set 列名1=值1 [,列名2=值2] [where 条件]
(4)select 列名 from 表名
7、其他
可以使用select distinct去重;
Select ...Order by 列名 按照某列升序排列;
赋值符号:=
Where student_id in(2,10) 在2到10之间
Where name like ‘小%’以小开头的名字