mysql update语句

MySQL学习笔记——〇四

妖精的绣舞 提交于 2020-02-06 01:15:42
今天我们继续对MySQL内容进行一些补充,但是今天所讲的内容已经不是平时常用的了。 先穿插一条指令贯穿了今天所讲的所有知识点: MySQL结束符 结束符delimiter其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束,那么回车后,mysql将会执行该命令。 但是在今天的知识点中我们经常需要用到begin...end这种结构体,那么在结构体中的sql语句后的分号就不能作为结束符了,我们需要随便设置一个结束符,在结构体结束后再换回分号。 MySQL视图(View) 如果我们在日常进行数据库维护过程中需要一个重复的虚拟表,这个虚拟表的构建过程我们要敲很多次,MySQL给我们提供了一个对齐进行优化的方法_视图(View)。 视图的创建 比方我们今天需要对一个用户表中id>10的用户进行操作,这个操作要重复好多好多次,那么我们就要写好多次这样的代码 select *from (select * from table where id>10) as t; 这个时候,为了提高效率,我们就可以创建一个视图 create view v1 as select * from table where id>10; 这个时候我们只需要调用v1就可以了。 注意:视图是一个虚拟的表,是动态的

CentOS 7 安装 MySQL

a 夏天 提交于 2020-02-06 00:44:25
环境 CentOS 7.1 (64-bit system) MySQL 5.6.24 CentOS 安装 参考: http://www.waylau.com/centos-7-installation-and-configuration/ 依赖 MySQL 依赖 libaio,所以先要安装 libaio yum search libaio # 检索相关信息 yum install libaio # 安装依赖包 成功安装,提示如下: [root@bogon /] # yum install libaio 已加载插件: fastestmirror Loading mirror speeds from cached hostfile * base : mirrors .yun-idc .com * extras : mirrors .163 .com * updates : mirrors .163 .com 软件包 libaio-0 .3 .109-12 .el7 .x86_64 已安装并且是最新版本 无须任何处理 检查 MySQL 是否已安装 yum list installed | grep mysql 如果有,就先全部卸载,命令如下: yum -y remove mysql-libs .x86_64 若有多个依赖文件则依次卸载。当结果显示为 Complete!即卸载完毕。 下载

mysql事务隔离界别与锁机制

你说的曾经没有我的故事 提交于 2020-02-05 22:58:43
数据库锁 共享锁(Shared lock) 例1: ---------------------------------------- T1: select * from table (请想象它需要执行1个小时之久,后面的sql语句请都这么想象) T2: update table set column1='hello' 过程:T1运行 (加共享锁) T2运行等待T1运行完之后再运行T2 之所以要等,是因为T2在执行update前,试图对table表加一个排他锁,而数据库规定同一资源上不能同时共存共享锁和排他锁。所以T2必须等T1执行完,释放了共享锁,才能加上排他锁,然后才能开始执行update语句。 例2: ---------------------------------------- T1: select * from table T2: select * from table 这里T2不用等待T1执行完,而是可以马上执行。 分析: T1运行,则table被加锁,比如叫lockA T2运行,再对table加一个共享锁,比如叫lockB。 两个锁是可以同时存在于同一资源上的(比如同一个表上)。这被称为共享锁与共享锁兼容。这意味着共享锁不阻止其它session同时读资源,但阻止其它session update 例3: ---------------------------------

MySQL索引及执行计划

[亡魂溺海] 提交于 2020-02-05 22:54:47
MySQL索引及执行计划 索引 合理的建立索引可以加快数据查询,例如,学校图书管为每一本书编号,根据编号可以快速锁定一本书所在位置。MySQL索引默认B+树索引。索引虽然能够提高检索效率,但同时也会降低更新的速度,因为 insert 、update、delete 也会操作索引文件,会调整因为更新等操作带来的键值变化后的索引信息。 索引类型 主键索引:唯一索引,并且并指定为 primary key ,每个表中只能有一个主键 唯一索引:索引列的所有值都只能出现一次,即值必须唯一,值可以为空 普通索引:基本的索引类型,值可以为空,没有唯一性限制 复合索引:一个索引中包含多个列 何时建立索引 主键自动创建唯一索引 频繁作为查询条件的字段适合创建索引 查询中与其他表关联的字段适合创建索引 频繁更新的字段不适合创建索引,因为在更新记录的同时会更新索引 where条件中使用不到的字段不需要创建索引 在高并发下,在单值索引和复合索引中,复合索引更合适 order by字段添加索引可以提高排序速度 不需要索引 表记录较少 经常增删改的表 数据重复且分布平均的表,如性别 执行计划 可以使用 explain 关键字模拟优化器执行sql查询语句,从而分析查询语句或者表结构的性能瓶颈。 通过查看执行计划,可以了解到表的读取顺序、数据读取操作、哪些索引可以使用、哪些索引被实际使用、表之间的引用

mysql(2)

爷,独闯天下 提交于 2020-02-05 21:27:11
1、DQL查询数据 1.1、DQL (Data Query LANGUAGE : 数据查询语言) 所有的查询操作都用它 Select 简单的查询,复杂的查询它都能做~ 数据库中最核心的语言,最重要的语句 使用频率最高的语句 1.2、指定查询字段 SELECT * FROM student SELECT * FROM result -- 查询指定字段 SELECT ` studentNo ` , ` studentname ` FROM student -- 别名 给结果起一个名字 SELECT ` studentNo ` AS 学号 , ` studentname ` AS 姓名 FROM student -- 函数 Concat(a,b) SELECT CONCAT ( '姓名:' , studentname ) AS 新名字 FROM student 语法: SELECT 字段,... FROM 表 去重 作用:去除SELECT 查询出来的结果中重复的数据,重复的数据只显示一条 -- 去重 SELECT * FROM result SELECT ` studentno ` FROM student SELECT DISTINCT ` studentno ` FROM student 数据库的列 SELECT VERSION ( ) -- 查询系统版本 SELECT 90 - 2

MySQL基础

﹥>﹥吖頭↗ 提交于 2020-02-05 21:19:40
1、MySQL的部署结构 服务器端:服务存储/维护数据 要确保3306不被占用 mysqld.exe 客户端:负责向服务端发起增删改差 mysql.exe 2、使用客户端连接服务器端 mysql.exe -h127.0.0.1 -P3306 -uroot -p -h host 主机ip或域名 -P port 端口 -u user 用户 -p password 密码 mysql -uroot 注意:连接的时候不能在结尾加分号 3、MySQL常用管理命令 quit; 退出服务器连接 show databases: 显示服务器上当前所有数据库 use 数据库名; 进入指定的数据库 show tables; 显示当前数据库中所有的数据库表 desc 表名; 描述表中有哪些列 4、SQL命令 SQL:结构化查询语言,用于操作关系型数据库,主要是对数据库进行增删改查等操作 SQL命令的两种执行方式: (1)交互模式:适用于临时性的查看数据 (2)脚本模式:适用于批量操作数据 不能进入MySQL mysql -uroot <脚本路径名 5、SQL语法规范 (1)每条SQL命令可以跨越多行遇到英文分号结束 (2)假如某一条命令出现语法错误,则该语句及后面的语句都不会再执行 (3)SQL命令不区分大小写,习惯上关键字用大写,非关键字用小写 (4)SQL中可以使用单行注释(#),也可以使用多行注释(/

MySQL基本命令整理,java数据库秘籍!

安稳与你 提交于 2020-02-05 19:08:45
MySQL基本命令整理,java数据库秘籍! 一、 mysql服务的启动和停止 net stop mysql net start mysql 二、 登陆mysql 语法如下: mysql -u用户名 -p用户密码 键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是: mysql> 注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP 三、 增加新用户 格式:grant 权限 on 数据库. to 用户名@登录主机 identified by “密码” 如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以 root用户连入mysql,然后键入以下命令: grant select,insert,update,delete on . to user1@localhost Identified by “password1″; 如果希望该用户能够在任何机器上登陆mysql,则将localhost改为”%”。 如果你不想user1有密码,可以再打一个命令将密码去掉。 grant select,insert,update,delete on mydb. to user1@localhost identified by “”;

MySQL 存储过程的简单使用

对着背影说爱祢 提交于 2020-02-05 14:07:50
首先创建一张 students 表 SQL脚本如下: create table students( id int primary key auto_increment, age int, name varchar(20), city varchar(20) ) character set utf8; insert into students values(null, 22, 'lisa', '杭州'); insert into students values(null, 16, 'rock', '上海'); insert into students values(null, 20, 'jack', '深圳'); insert into students values(null, 21, 'rose', '北京'); 不带参数的存储过程 -- 查询学生个数 drop procedure if exists select_students_count; delimiter ;; -- 替换分隔符 create procedure select_students_count() begin select count(id) from students; end ;; delimiter ; 执行存储过程: call select_students_count(); 带参数的存储过程 --

Python操作MySQL以及SQLAchemy

徘徊边缘 提交于 2020-02-05 05:49:03
一.对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy a.pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。 Pymysql(py2,py3)/MySQLDB(py2) 1.下载安装 pip3 install pymysql b.使用操作 1.执行SQL #!/usr/bin/env python # -*- coding:utf-8 -*- import pymysql # 创建连接 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1') # 创建游标 cursor = conn.cursor() # 执行SQL,并返回收影响行数 effect_row = cursor.execute("update hosts set host = '1.1.1.2'") # 执行SQL,并返回受影响行数 #effect_row = cursor.execute("update hosts set host = '1.1.1.2' where nid > %s", (1,)) # 执行SQL,并返回受影响行数 #effect_row = cursor.executemany(

shell操作mysql之增删改查

送分小仙女□ 提交于 2020-02-05 02:45:53
假设mysql用户名root 密码123456,新建测试数据表utable 脚本如下: #!/bin/bash #mysqlop.sh mysql="/app/local/mysql/bin/mysql -uroot -p123456" #sql="show databases" #sql="show tables from test" sql="create table test.utable( id int unsigned auto_increment primary key, username varchar(50), passwd varchar(50) )" #sql="desc test.utable" #sql="insert into test.utable(username,passwd) values('user3',321)" #sql="select * from test.utable" #sql="delete from test.utable where id=3" #sql="update test.utable set passwd=135 where id=2" #sql="drop table test.utable" $mysql -e "$sql" #sh mysqlop.sh 新建完成后需要注释掉创建语句,继续编辑脚本 #!/bin