引言
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。
前言
如果没有mysql基础的伙伴,可以先看看之前发的mysql--入门篇。
目录
主键约束
添加主键
在创建表时,添加主键约束
create table "表名"("字段名1" "数据类型1",
"字段名2" "数据类型2",
‘‘‘‘‘’’’’’ primary key ("字段名1","字段名2",......) );
已有表,添加主键约束
alter table "表名" add constraint "外键名" foreign key ("字段名");
删除主键
alter table "表名" drop primary key "主键名";
外键约束
添加外键
在创建表时,添加外键约束
create table "表名"("字段名1" "数据类型1",
"字段名2" "数据类型2",
‘‘‘‘‘’’’’’ constraint "外键名" foreign key ("字段名称" ) references "表名1" ("表1字段名") );
已有表,添加外键约束
alter table "表名" add constraint "外键名" foreign key ("字段名") references "主表名" ("字段名");
删除外键
alter table "表名" drop foreign key "外键名";
多表查询
多表查询相关内容
多表查询分为:一对多;多对多;一对一。
一对一:
在多的一方建立外键指向一的一方的主键。
多对多:
建立第三张中间表,中间表至少包含两个外键,分别关联两方主键。
一对一:
在任意一方加入外键,并设置外键为唯一(unique)。
简单多表查询
select * from "表1","表2" where "表1"."字段名" = "表2"."字段名";
多表查询分类
连接查询:分为内、外连接。
内连接:相当于查询表1、表2交集部分数据。
外连接:又分为左外连接查询、右外连接。
左外连接查询:左表所有数据以及两表交集部分数据。
右外连接查询:右表所有数据以及两张表交集部分数据。
自连接:当前表与自身的连接查询,自连接必须使用表别名。
内连接:
隐式内连接
select "字段列表" from "表1","表2" where ....;
显式内连接
select "字段列表" from "表1" [inner] join "表2" on 连接条件;
外连接:
左外连接
select "字段列表" from "表1" left join "表2" on 连接条件;
右外连接
select "字段列表" from "表1" right join "表2" on 连接条件;
自连接查询
select "字段列表" from "表1" [as] "别名1" join "表1" "别名2" on 连接条件;
联合查询---union、union all
对于union 查询,把多次查询的结果合并起来,形成一个新的查询结果集。
select "字段列表" from "表1"
union [all]
select "字段列表" from "表2";
子查询分为:
标量子查询(子查询结果为单个值) =、<>、>、>=、<、<=。
列子查询(子查询结果为一列) in、not in、any、some、all。
行子查询(子查询结果为一行) =、<>、in、not in。
表子查询(子查询结果为多行多列) in。
创建视图
create view "视图名" as "作为视图的表数据";
事务
事物会把所有的操作作为一个整体,一起向系统提交或撤销操作请求,要么同时成功,要么同时失败。
事务的相关内容
事务操作步骤:
1、开始事务。
2、正常执行或者抛出异常,回滚。
3、提交事务。
查看事务提交方式
select @@autocommit;(等于1时,为自动;等于0时,为手动)
设置事务提交方式
set @@autocommit = 0或者1;(等于1时,为自动;等于0时,为手动)
开启事务
start transaction 或者 begin;
提交事务
commit;
回滚事务
rollback;
查看事务隔离级别
查看系统隔离级别:select @@global.tx_isolation;
查看会话隔离级别(5.0以上版本):select @@tx_isolation;
查看会话隔离级别(8.0以上版本):select @@transaction_isolation;
修改事务隔离级别
set session transaction isolation level repeatable read; 设置会话隔离级别为可重复读
set session transaction isolation level read uncommitted; 设置会话隔离级别为读未提交
set session transaction isolation level read committed; 设置会话隔离级别为读已提交
后续会更新mysql进阶篇更进一步的内容,敬请期待吧!