MySQL数据库的基本知识

◆ 数据库语言类型 ◆
语句简称语句类型代表操作字
DQL语句数据查询语言select
DML语句数据操作语言insert delete update
DDL 语句数据定义语言create drop alter
TCL 语句事务控制语言commit rollback
◆ MySQL支持的常见数据类型 ◆

数值类型
    整形: TinyInt、SmallInt、MediumInt、Int和BigInt。
    浮点型: Float、Double、Decimal。
字符串类型
    定长字符串: Char,在圆括号内用一个大小修饰符(0~2^8)来定义。
    变长字符串: VarChar,在圆括号用一个大小修饰符(0~2^16)来定义。
    VarChar类型可以根据实际内容动态改变存储的长度,因此在不能确定字段需要多少字符串时使用VarChar可以大大地节约磁盘空间、提高存储效率。
日期类型
    DateTime: YYYY-MM-DD HH:MM:SS

◆ 数据库的基本操作 ◆

创建数据库   create database dbname;
使用数据库   use dbname;
删除数据库   drop database dbname;
说明:其中dbname表示所建数据库名。

◆ 数据表的基本操作 ◆

创建数据表   create table tbname(name type, name type);
查看数据表   show create table tbname;
展示数据表   describe tbname;
删除数据表   drop table tbname;
说明:其中tbname表示所建表名,name为字段,type为字段类型。

◆ 表中数据的基本操作 ◆

插入数据  insert into tbname (name1,name2,name3) values (value1, value2,value3);
更新数据  update tbname set name1 = value1 [where name2 = value2];
删除数据  delete from tbname [where name1 = value1];
查询数据  selete name1,name2,name3 from tbname [where name4 = value4];
说明:其中tbname表示所建表名,name为字段,value为对应的值。

◆ 数据的完整性 ◆

主键约束:   primary key,不可重复,不可为空。
唯一约束:   unique,不可重复。
自动增长:   auto_increment,从1开始。
唯一索引:   unique index。
非空约束:   not null。
默认值约束:   default 默认值。
外键约束:   alter table tbname add foreign key(外键字段名) references 主表(主键字段名)。
删除外键约束:   alter table tbname drop foreign key 外键名。

◆ 表与表的关系 ◆

一对一,一对多和多对一,多对多。

◆ 查询 ◆

合并查询:   union,自动过滤重复数据。
合并查询:   union all,不过滤重复数据。
内连接查询:   select name from tbname1 inner join tbname2 on tb1.name1 = tb2.name2 [where 条件];
左外连接:   select name from tbname1 left join tbname2 on tb1.name1 = tb2.name2 [where 条件];
右外连接:   select name from tbname1 right join tbname2 on tb1.name1 = tb2.name2 [where 条件];

◆ 视图 ◆

视图是一种虚拟的表,其内容由查询定义,和真实的表类似,视图包括一系列带有名称的列和行数据,但是,视图在数据库中并不以存储数据值的形式存在,它的数据来自定义视图查询时所引用的表,并且在引用视图时动态生成。

  1. 简化用户操作。视图机制使用户把注意力集中在所关心的数据上。用户只是对一个虚表进行简单的查询操作,而无需了解表与表之间的操作关系。
  2. 使用户能以多种角度看待同一数据。视图机制能使不同的用户以不同的方式看待同一数据。
  3. 为重构数据库提供了一定程度的逻辑独立性。
  4. 对机密数据提供了保护。隐藏表的细节。

创建视图   create view viewname(name1, name2) as select name1, name2 from tbname;
展示视图   describe viewame;
修改视图   alter view viewname as select name1, name2 from viewname;
删除视图   drop view if exists viewname;
说明:其中viewname表示所建视图名。

◆ 事务 ◆
事务的四个特性:

原子性:   事务作为一个整体被执行,是最小单元,不可再分;
一致性:   事务应保持数据库的状态,数据库中的数据都满足完整性约束,对数据库的操作要么都执行成功,要么都执行失败
隔离性:   当多个事务兵法执行时,一个事务的执行不应影响其他事务的执行;
持久性:   事务完成之后,该书屋对数据库的修改应永久的保存在数据库中;

事务的隔离界别:

读未提交——read uncommited:
    A未提交,B可看到A的内容,脏读(其他事务未提交的结果);
读已提交——read commited:
    大多数默认级别,A已提交,B可看到A的内容,重复读(内容不一致,做了修改数据的操作),幻读(条数不一致,做了插入或删除操作);
可重复读——repeatable read:
    MySQL默认级别,事务B只能读到开启事务的点的数据,但仍避免不了幻读;
可串行化——serializable:
    事务A只有commit,事务B才能操作,强制事务排序实质不可能相互冲突,实际上是加共享锁,会导致大量的超时和锁竞争。

隔离级别脏读重复读幻读
串行化
可重复读
读已提交
读未提交
事务的使用方法:
  1. 在使用事务之前首先要关闭自动提交:
    set autocommit = 0;
  2. 然后开启事务,SQL语句如下:
    start transaction;
  3. 事务开启后就可以执行DML语句,在执行完成后需要提交事务,TCL语句为:commit;在MySQL中SQL语句是默认提交的,但在事务中的操作语句都需要使用commit语句手动提交,提交完的事务才会生效。如果不想提交事务,执行的TCL语句为:rollback;
◆ 范式 ◆

第一范式: 有主键、每一个字段都是原子性的不能再分的;
第二范式: 要求数据库中所有非主键字段完全依赖主键,不能产生部分依赖;
第三范式: 非主键列必须直接依赖于主键,不能存在传递依赖。

◆ MySQL常用存储引擎 ◆

MyISAM存储引擎:
    MyISAM是MySQL数据库最常用的存储引擎,但却不是默认的。可转化为压缩只读表来节省空间。适合大量的数据读而少量数据更新。
InnoDB存储引擎:
    InnoDB是MySQL数据库默认的存储引擎。支持事务、外键及引用的完整性,包括级联更新和级联删除。适合较多数据更新操作。
MRMOTY存储引擎:
    MEMORY以前被称为HEAP。数据存储在内存中,且行的长度固定,使得MEMORY存储引擎非常快。字段属性不能包含Text和Blob字段。适合存储非永久性的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值