mysql update语句

数据库(MySQL)表基本操作

眉间皱痕 提交于 2020-01-01 05:55:44
数据库表基本操作 思前想后,最终还是把博客的名字改成了数据库表基本操作,以前叫SQL语句大全,感觉用“大全”这个名词太大了,而文章中介绍的内容有限而且也不深。如果您在阅读的过程中发现有不完善的地方,欢迎补充说明。 创建数据库    一提笔就讲创建数据库,感觉好像是从半道上开始的。创建数据库前总得安装数据库吧,不管是SQL Server、mysql、Oracle。但是如果这样写下去,不知道这篇博客还能不能完成,那就默认是安装好数据库了吧,本片博客如下都是使用mysql数据库,首先是登入数据库操作(mysql -u root -p)。 查看当前所存在的数据库: show databases; 查询结果中的mysql数据库是必须的,用来描述用户的访问权限;information_schema数据库提供了访问数据库元数据的方式,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等;performance_schema用于收集数据库服务器性能参数。 创建新的数据库: create database test_db; test_db为要创建的数据库名称,该名称不能与现有的数据库重名。 查看创建好的数据库定义:show create database test_db; 删除数据库: drop database test_db; test

MySQL数据库事务详解

こ雲淡風輕ζ 提交于 2020-01-01 05:30:05
微信公众号【黄小斜】大厂程序员,互联网行业新知,终身学习践行者。关注后回复「Java」、「Python」、「C++」、「大数据」、「机器学习」、「算法」、「AI」、「Android」、「前端」、「iOS」、「考研」、「BAT」、「校招」、「笔试」、「面试」、「面经」、「计算机基础」、「LeetCode」 等关键字可以获取对应的免费学习资料。 ​ 事务的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。 例如:A向B转账100元,对应于如下两条sql语句: update from account set money=money+100 where name='b'; update from account set money=money-100 where name='a'; 1 2 1 2 数据库 默认事务是自动提交的,也就是发一条sql它就执行一条,如果想多条sql放在一个事务中执行,则需要使用如下语句: start transaction … … commit 1 2 3 4 1 2 3 4 数据库开启事务命令: start transaction :开启事务 rollback :回滚事务 commit :提交事务 MySQL数据库中操作事务命令 编写 测试 SQL脚本,如下: /* 创建数据库 */ create database day16

MYSQL数据库引擎区别详解

风流意气都作罢 提交于 2020-01-01 05:29:41
数据库引擎介绍 MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MYSQL。在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。如果技术高超,还可以使用MySQL+API自己做一个引擎。下面介绍几种数据库引擎: ISAM :ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到 数据库被查询的次数要远大于更新的次数。因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM的两个主要不足之处在于,它不 支持事务处理,也不能够容错:如果你的硬盘崩溃了,那么数据文件就无法恢复了。如果你正在把ISAM用在关键任务应用程序里,那就必须经常备份你所有的实 时数据,通过其复制特性,MYSQL能够支持这样的备份应用程序。 MyISAM :MyISAM是MySQL的ISAM扩展格式和缺省的数据库引擎。除了提供ISAM里所没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作,其代价是你需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间。MyISAM还有一些有用的扩展,例如用来修复数据库文件的MyISAMCHK工具和用来恢复浪费空间的 MyISAMPACK工具

MySql视图

℡╲_俬逩灬. 提交于 2020-01-01 05:04:24
创建视图 创建视图是指在已经存在的 MySQL 数据库表上建立视图。视图可以建立在一张表中,也可以建立在多张表中。 可以使用 CREATE VIEW 语句来创建视图。 语法格式如下: CREATE VIEW <视图名> AS <SELECT语句> 语法说明如下。 <视图名> :指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。 <SELECT语句> :指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图。 对于创建视图中的 SELECT 语句的指定存在以下限制: 用户除了拥有 CREATE VIEW 权限外,还具有操作中涉及的基础表和其他视图的相关权限。 SELECT 语句不能引用系统或用户变量。 SELECT 语句不能包含 FROM 子句中的子查询。 SELECT 语句不能引用预处理语句参数。 视图定义中引用的表或视图必须存在。但是,创建完视图后,可以删除定义引用的表或视图。可使用 CHECK TABLE 语句检查视图定义是否存在这类问题。 视图定义中允许使用 ORDER BY 语句,但是若从特定视图进行选择,而该视图使用了自己的 ORDER BY 语句,则视图定义中的 ORDER BY 将被忽略。 视图定义中不能引用 TEMPORARY 表(临时表),不能创建 TEMPORARY 视图。 WITH CHECK OPTION 的意思是,修改视图时

我的MYSQL学习心得(十一)

谁说胖子不能爱 提交于 2020-01-01 04:27:09
原文: 我的MYSQL学习心得(十一) 我的MYSQL学习心得(十一) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYSQL学习心得(五) 我的MYSQL学习心得(六) 我的MYSQL学习心得(七) 我的MYSQL学习心得(八) 我的MYSQL学习心得(九) 我的MYSQL学习心得(十) 我的MYSQL学习心得(十二) 这一篇《我的MYSQL学习心得(十一)》将会讲解MYSQL的视图 使用视图的理由是什么? 1、安全性:一般是这样做的:创建一个视图,定义好该视图所操作的数据。 之后将用户权限与视图绑定,这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。 2、查询性能提高 3、有灵活性的功能需求后,需要改动表的结构而导致工作量比较大,那么可以使用虚拟表的形式达到少修改的效果。 这是在实际开发中比较有用的 4、复杂的查询需求,可以进行问题分解,然后将创建多个视图获取数据。将视图联合起来就能得到需要的结果了。 创建视图 创建视图的语法 CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW view_name [(column_list)] AS select_statement [WITH

我的MYSQL学习心得(十一) 视图

偶尔善良 提交于 2020-01-01 04:26:06
这一篇《我的MYSQL学习心得(十一)》将会讲解MYSQL的视图 使用视图的理由是什么? 1、安全性:一般是这样做的:创建一个视图,定义好该视图所操作的数据。 之后将用户权限与视图绑定,这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。 2、查询性能提高 3、有灵活性的功能需求后,需要改动表的结构而导致工作量比较大,那么可以使用虚拟表的形式达到少修改的效果。 这是在实际开发中比较有用的 4、复杂的查询需求,可以进行问题分解,然后将创建多个视图获取数据。将视图联合起来就能得到需要的结果了。 创建视图 创建视图的语法 CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL] CHECK OPTION] 其中,CREATE:表示新建视图; REPLACE:表示替换已有视图 ALGORITHM :表示视图选择算法 view_name :视图名 column_list:属性列 select_statement:表示select语句 [WITH [CASCADED | LOCAL] CHECK OPTION]参数表示视图在更新时保证在视图的权限范围之内

我的MYSQL学习心得(十一)

半城伤御伤魂 提交于 2020-01-01 04:24:43
原文: 我的MYSQL学习心得(十一) 我的MYSQL学习心得(十一) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYSQL学习心得(五) 我的MYSQL学习心得(六) 我的MYSQL学习心得(七) 我的MYSQL学习心得(八) 我的MYSQL学习心得(九) 我的MYSQL学习心得(十) 我的MYSQL学习心得(十二) 这一篇《我的MYSQL学习心得(十一)》将会讲解MYSQL的视图 使用视图的理由是什么? 1、安全性:一般是这样做的:创建一个视图,定义好该视图所操作的数据。 之后将用户权限与视图绑定,这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。 2、查询性能提高 3、有灵活性的功能需求后,需要改动表的结构而导致工作量比较大,那么可以使用虚拟表的形式达到少修改的效果。 这是在实际开发中比较有用的 4、复杂的查询需求,可以进行问题分解,然后将创建多个视图获取数据。将视图联合起来就能得到需要的结果了。 创建视图 创建视图的语法 CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW view_name [(column_list)] AS select_statement [WITH

视图、触发器、事务、存储过程、函数

拥有回忆 提交于 2020-01-01 03:29:46
视图、触发器、事务、存储过程、函数 阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 一 视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用 #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 | 生物 | 1 | | 2 | 物理 | 2 | | 3 | 体育 | 3 | | 4 | 美术 | 2 | +-----+--------+------------+ 4 rows in set (0.00 sec) mysql> select * from teacher; +-----+-----------------+ | tid |

MySQL的学习--触发器

家住魔仙堡 提交于 2020-01-01 03:28:28
MySQL包含对触发器的支持。触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行。 创建触发器 在MySQL中,创建触发器语法如下: CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt 其中: trigger_name:标识触发器名称,用户自行指定; trigger_time:标识触发时机,取值为 BEFORE 或 AFTER; trigger_event:标识触发事件,取值为 INSERT、UPDATE 或 DELETE; tbl_name:标识建立触发器的表名,即在哪张表上建立触发器; trigger_stmt:触发器程序体,可以是一句SQL语句,或者用 BEGIN 和 END 包含的多条语句。 由此可见,可以建立6种触发器,即:BEFORE INSERT、BEFORE UPDATE、BEFORE DELETE、AFTER INSERT、AFTER UPDATE、AFTER DELETE。 另外有一个限制是不能同时在一个表上建立2个相同类型的触发器,因此在一个表上最多建立6个触发器。 trigger_event 详解 M ySQL 除了对 INSERT、UPDATE

Python操作MySQL数据库9个实用实例

北城余情 提交于 2020-01-01 03:18:46
用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示。下边是打包了32与64版本。 MySQL-python-1.2.3.win32-py2.7.exe MySQL-python-1.2.3.win-amd64-py2.7.exe 实例 1、取得 MYSQL 的版本 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # -*- coding: UTF-8 -*- #安装 MYSQL DB for python import MySQLdb as mdb con = None try : #连接 mysql 的方法: connect('ip','user','password','dbname') con = mdb.connect( 'localhost' , 'root' , 'root' , 'test' ); #所有的查询,都在连接 con 的一个模块 cursor 上面运行的 cur = con.cursor() #执行一个查询 cur.execute( "SELECT VERSION()" ) #取得上个查询的结果,是单个结果 data = cur.fetchone() print "Database version : %s " % data finally : if con: