Mysql入门#mysql #SQL

文章详细介绍了阿里巴巴对于MySQL的命名规范,包括表名、字段名的规则,以及必备字段的设定。此外,还讨论了数据库的函数、子查询、视图和事务的使用,特别是事务的四大特性(ACID)和并发事务可能引发的问题及隔离级别。
摘要由CSDN通过智能技术生成

阿里巴巴Mysql命名规范

  1. 表名和字段名必须使用小写和数字,禁止使用数字开头

  1. 禁止使用保留字

  1. 表必备三字段:id,gmt_create,gmt_modified

id必须是主键,为tinyint,unsigned无符号,且自增长1

gmt_create和gmt_modified均为DATETIME类型,gmt_create表示表创建时间,后者表示最新的更新时间。

  1. 库名和应用尽量一致

  1. 表的命名最好是遵循“业务名称_表的作用)

  1. 定义数据类型要尽量节省空间

数据类型

主要可以分为,整型,浮点型(小数),时间类型,字符集类型,文本型

修改表名

方式一: ALTER TABLE 表名 RENAME TO 新表名;

ALTER TABLE 旧表名 RENAME TO 新表名

方式二:修改多个表名:

语法:RENAME TABLE 旧表名1 TO 新表名1,旧表名2 TO 新表名2

函数

函数的概念:将常用的代码封装起来在需要时调用,依此提高了代码效率,又提高了可维护性。

函数主要分为内置函数自定义函数。

子查询

子查询大致可以分为四类:

  1. 标量子查询 :即返回的是单个值

视图

视图概述

前提:视图建立在已有表的基础上,视图依赖的表称为基表

本质:可以把视图看作一个查询语句的别名,即存储起来的SELECT语句。且视图并不存储数据,因为视图是一种虚拟表本身不具有数据,占用内存很少的内存空间。

注意视图的创建和删除只影响视图本身,不影响对应基表。但是当对视图中的数据进行增加,删除和修改操作时,数据表的数据会随之改变

使用场景:针对小型项目并不推荐视图!,即大型项目更加推荐视图!

优点:简化查询,控制访问权限!

创建视图

基本语法:

CREATE VIEM 视图名 AS 查询语句
CREATE VIEW view_scourse
AS
SELECT Cname
FROM Course;

利用视图查询

SELECT * FROM view_scourse;

事务简介

是一组操作的集合,事务会把所有的操作作为一个整体一起向系统(服务器端)提交或者撤销操作回滚请求,即这些操作要么同时成功,要么同时失败。(可以理解为多个SQL操作的绑定打包提交,其中的任意一条SQL语句出现了异常都会回滚事务)

默认Mysql的事务是自动提交的,也就是说,当执行DML语句,Mysql会立即隐士的开启事务

特别注意:如果不提交事务,那么操作只针对在客户端,服务器端并没有发生变化。

事务的操作

查看事务提交方式
# 查看事务提交方式
SELECT @@autocommit;

显示如果为‘1’那么为自动提交,显示为‘0’为手动提交

手动设置提交方式
# 设置事务为手动提交
SET @@autocommit =0;
开启事务

START TRANSACTION 或者 BEGIN;

手动提交事务

将客户端的SQL执行指令提交服务器端进行更改

commit

commit;
回滚事务

对客户端的数据修改SQL指令进行撤回

rollback

rollback;

事务的四大特性(ACID)

  1. 原子性Atomicity)

事务是不可分割的最小操作单位,要么全部成功,要么全部失败

  1. 一致性Consistency)

事务完成时,必须使所有数据都保持一致

  1. 隔离性(Isolation)

数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行

  1. 持久性Durability)

事务一旦提交或者回滚,它对数据库中的数据改变就是永久的

并发事务问题

通俗的理解概念:就是事务A和事务B同时在操作表A

经典三大问题:

  1. 脏读:一个事务读到另外一个事务还没有提交的数据。

  1. 不可重复读:一个事务先后读同一条记录,但读取的数据不同,称为不可重复读

  1. 幻读:一个事务按照查询条件查询数据时,没有对应的数据行,但是在插入数据时,发现数据已经存在,

事务的隔离级别

主要分为四种隔离级别

Read Uncommitted (未读,未提交)

该隔离级别可能会出现的并发事务问题:脏读,不可重复读,幻读。(性能高,安全性差)

该级别的隔离一般用的较少

Read Commited ( 未完待续。。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@日与夜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值