mysql拓展
事务定义
就是将一组SQL语句放在同一批次内去执行
如果一个sql语句出错,则改批次内的所有sql都将被取消执行
(1)原子性
一个事务要么全部提交成功,要么全部失败回滚,不能只执行其中的一部分操作,这就是事务的原子性
(2)一致性
在事务开始之前和事务结束以后,数据库的完整性没有被破坏。[例如两账户的和不变]
(3)隔离性
数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。
(4)持久性
事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
事物的常用命令:
- 开始事物:begin或者start transaction
- 提交事务:commit
- 回滚事物 rollback
流程是:先关闭自动提交(set autocommit=0)开启事物(begin)运行代码 手动提交(commit)就可以同时进行多项操作 结束需要开启自动提交(set autocommit=1)否则,之后的操作都不会在表中显示,必须用手动提交才行 仅限于引擎类型为InnoDB,MyIsam不行
为什么需要视图
1.不同的人员关注不同的数据
2.保证信息的安全性
视图定义
- 视图是一张虚拟表(不是真实存在的)
- 一张表创建多个视图
3.视图不存放数据,但是展示数据
视图的作用
1.筛选表中的行
2.防止未经许可的用户访问敏感数据
3.降低数据库的复杂程度
4.将多个物理数据库抽象为一个逻辑数据库
创建视图
create view v_shitu as select name,pwd from shitu;//创建视图
SELECT*from v_shitu;//查询视图
DROP VIEW v_shitu ;//删除视图
UPDATE v_shitu set name='xxxx';//修改视图:视图中的数据可以影响到原表中的数据,即使视图是虚拟的也可以
查询所有表和视图 show tables
查询视图 show table status where comment ='view'
索引
1.索引作用:
大大提高数据库的检索速度
改善数据库性能
- 拓展:索引可以提高查询的效率,但是会减低增删改的效率
- 索引的种类:普通索引 主键索引 全文索引 组合索引 全文索引
- alter table 表名 add primary key(主键索引的属性名)
- alter table 表名 add unique(唯一索引的属性名)
- alter table 表名 add index(普通索引的属性名)
- Alter table 表名add index(属性名,属性名)创建组合索引
- show index from 表名(查询所有的索引)
- drop index 索引的属性名 on 表名(删除索引)
alter table 表名 drop primary key(删除主键索引。
mysql拓展的更多相关文章
- MySQL拓展操作
MySQL除了基本的增删该查功能,还有以下拓展功能: create table t1( id int ...., num int, xx int, unique 唯一索引名称 (列名,列名), con ...
- MySQL拓展 视图,触发器,事务,存储过程,内置函数,流程控制,索引,慢查询优化,数据库三大设计范式
视图: 1.什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2.为什么要用视图 如果要频繁使用一张虚拟表,可以不用重复查询 3.如何使用视图 create view tea ...
- 前端学PHP之mysql扩展函数
× 目录 [1]连接数据库 [2]使用数据库 [3]执行SQL查询[4]操作结果集[5]关闭连接 前面的话 mysql由于其体积小.速度快.总体拥有成本低,尤其是具有开放源码这一特点,许多中小型网站为 ...
- apache+mysql+php环境的手动搭建
一.搭建Apache Http Server 官方下载地址:http://www.apachehaus.com/cgi-bin/download.plx 搭建环境:win10 64位 WIN10 64 ...
- PHP API中,MYSQL与MYSQLI的持久连接区别
转载自:http://www.cnxct.com/some-differences-between-mysql-and-mysqli-of-persistent-connection/ 很久很久以前, ...
- 页游手游服务器(二)c支持mysql
上一篇说的是liua的net拓展,这一篇说lua的sql拓展,准确说是mysql拓展,这里推荐下postgre,比mysql好用,支持数组,各种好,不过腾讯平台不支持,所以你的公司要和腾讯合作,掂量下 ...
- 2-22-实现jsp通过tomcat连接mysql
所有软件的版本如下: MySQL-Connector-Java: mysql-connector-java-5.1.36 Tomcat: apache-tomcat-8.0.26 JDK: jdk-8 ...
- 记录Python学习中的几个小问题
记录Python学习中的几个小问题,和C#\JAVA的习惯都不太一样. 1.Django模板中比较两个值是否相等 错误的做法 <option value="{{group.id}}&q ...
- guacamole 0.8.3 项目部署 桌面虚拟化
Guacamole是一个基于HTML5的虚拟桌面应用程序,其中包含多个组件,由各组件共同构成Guacamole---一个完整的虚拟桌面解决方案,不需要任何插件,只要浏览器支持HTML5就可以实现,而且 ...
- 什么是php?以及mysqlnd与libmysqlclient
今天想彻底搞清楚php与mysql的关系,于是在php官方网站(http://php.net/manual/en/mysqli.installation.php) 看了一下mysqli,mysql.感 ...
随机推荐
- Vulhub activewq_漏洞复现——源码分析
Vulhub activewq_漏洞复现--源码分析 漏洞简介 Apache ActiveMQ是由美国阿帕奇(Apache)软件基金会开发的开源消息中间件,支持Java消息服务.集群.Spring框架 ...
- 2020-11-10:golang中的接口,类型不空,值为空,如何判断是nil?
福哥答案2020-11-10: reflect.ValueOf(接口变量).IsNil(),用这个即可判断.对于值类型,会panic.两种方法如下:1.异常判断:recover捕获.2.类型判断:re ...
- 2021-10-18:乘积最大子数组。给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。力扣152。
2021-10-18:乘积最大子数组.给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积.力扣152. 福大大 答案2021-1 ...
- 基于DevExpress的GridControl实现的一些界面处理功能
DevExpress的GridControl控件能够提供很多强大的操作,其视图GridView能够通过各种设置,呈现出多种复杂的界面效果,本篇随笔探讨一些常见的GridControl控件及其GridV ...
- nodejs 入门基本概念
nodejs 的诞生 Node.js 是2009的时候由大神 Ryan Dahl 开发的.Ryan 的本职工作是用 C++ 写服务器,后来他总结出一个经验,一个高性能服务器应该是满足"事 ...
- request args kwargs的作用
self.request : 包含了请求过来的对象 self.args:请求传递过来的参数,列表形式 self.kwargs:请求传递过来的参数,字典形式
- TypeError: Cannot read property 'upgrade' of undefined
解决方案: 在你的.env.dev配置文件中配置VUE_APP_BASE_API并对target赋值
- nodejs 中 stream.pipe()直接将文件输出到页面乱码
最近仿照anywhere写个anyentry目录读取器,发现使用stream.pipe()将文件输入到页面时,出现中文乱码 看哇 看到着实不爽,不解决咋能算 于是开始寻找问题根源 一.配置encodi ...
- Java中的金钱陷阱
前言 有多少小伙伴是被标题 骗 吸引进来的呢,我可不是标题党,今天的文章呢确实跟"金钱"有关系. 但是我们说的不是过度追求金钱而掉入陷阱,而是要说一说在Java程序中,各种跟金钱运 ...
- 逍遥自在学C语言 | break-循环的中断与跳转
前言 在C语言中,break语句是一种控制流语句,它用于终止当前所在的循环结构(for.while.do-while)或者switch语句,从而跳出循环或者结束switch语句的执行. 一.人物简介 ...