mysql update语句

mysql语法笔记

冷暖自知 提交于 2020-04-08 13:59:49
SQL语法笔记 基础查询 distinct去除重复行; concat()使用concat包含多个字段作为一个字段输出; select concat(last_name ,',', first_name ,',',salary) as 员工工资 from employees; as 别名,as也可以省略但是加as可以提高可读性; ifnull()函数:如果连接查询某个字段包含null,会导致该列的数据显示为空,使用ifnull判断一下可以有效解决该问题 select concat(department_id,',',last_name,',',manager_id) from employees ; -- 上图是不加ifnull函数,返回的值中有null select concat(department_id,',',last_name,',',ifnull(manager_id,0)) as 奖金率 from employees ; limit 限制输出返回行输 字符型和日期型的常量值必须用单引号引起来,数值型不需要 isnull函数,判断某字段或表达式是否为null,如果是则返回1,否则返回0 select isnull(commission_pct), commission_pct from employees; 条件查询 select 查询字段 from 表名 where

八、Python MySQL(pymysql)

。_饼干妹妹 提交于 2020-04-08 13:02:02
调用步骤 1.cmd 安装:pip install pymysql 2.导入:import pymysql 3.建立连接:conn = pymysql.connect(user='用户名',password='密码',database='库名',charset='utf8') 4.建立游标:cursor() 5.查询语句:sql = ('sql语句,所有输入参数用%s表示') 6.执行:cursor.execute(sql,(输入参数1,输入参数2......输入参数N)) 7.查询打印:for (表字段1,表字段2) in cursor: print(表字段1,表字段2) 8.提交(新增、修改、删除):conn.commit() 9.关闭游标,关闭连接:cursor.close conn.close 安装mysql,创建库,表,增加记录 CREATE DATABASE pytest; USE pytest; CREATE TABLE student( NAME VARCHAR(20), age INT ); DELETE FROM student; INSERT INTO student(NAME,age) VALUES('zhangshan',20); INSERT INTO student(NAME,age) VALUES('lisi',88); mysqldb.py

MySQL打造扛得住的数据库架构.md-目前只有监控篇

怎甘沉沦 提交于 2020-04-08 04:53:26
[TOC] MySQL性能管理及架构设计笔记 数据库监控 要监控的内容 对数据库的可用性进行监控: 不是仅仅监控数据库进程是否存在,要通过网络连接到数据库并确定是可用的 对数据库性能进行监控: QPS TPS, 并发线程数量, innnoDB阻塞和死锁 对主从复制进行监控: 主从链路状态, 主从延迟, 主从数据一致性 对服务器资源监控: 磁盘: 且并不意味着磁盘空间大,MySQL能用的就大,因为可能分区分配的不够大. CPU使用率 内存使用情况 swap分区使用情况 网络IO使用情况 数据库可用性监控 确认数据库是否可用通过网络正常连接 要注意,如果我们在MySQL本机使用SQL来连接MySQL,这并不意味着外部也能通过tcp/ip协议来访问MySQL,因为外部面临的环境更为复杂. 比如tcp/ip被占满之类的, 所以我们必须通过远程服务器来实际的连接请求: 使用mysqladmin: # 如果数据库存活,该命令会返回mysqld is alive ~ ⌚ 23:30:42 $ mysqladmin -u root -p -h localhost ping Enter password: mysqld is alive 使用Telnet(一般作为手动使用) # telnet连接成功后,都懂得,只要不是提示连接失败,同时提供给我们可以交互式命令行,那就是成功了 ~ ⌚ 23:42

MySQL5.7特性:JSON数据类型

谁说胖子不能爱 提交于 2020-04-07 10:52:00
概述 MySQL5.7的发行声明中,官方称之为里程碑式的版本,除了运行速度大幅度提升之外,还添加了之前版本没有的功能,如本文所述的原生JSON数据类型功能。 在此版本之前,MySQL所有的JSON数据类型,全部是使用text等文本类型来实现的,数据的处理只能在应用代码级来实现,十分不方便。 什么是JSON类型 作为DBA,可能会对这个概念稍微有点陌生,但是对于开发者来说,这是一个十分熟悉的事物。 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 MySQL原始JSON类型的优势在哪? 原生的JSON优势如下: 存储上类似text,可以存非常大的数据。 存储在JSON列中的JSON文档的自动验证 。无效的文档会产生错误。 优化的存储格式。存储在JSON列中的JSON文档将 转换为内部格式,以允许对文档元素进行快速读取访问。 相比于传统形式,不需要遍历所有字符串才能找到数据。 支持索引:通过虚拟列的功能可以对JSON中部分的数据进行索引。 MySQL的JSON类型

MySQL 查询优化器(二)

谁都会走 提交于 2020-04-07 05:36:48
1.6多个查询字段(常量条件) 多个查询字段的查询处理逻辑如下所示: JOIN:prepare阶段 setup_tables():同1.1测试。 setup_fields():同1.1测试。 setup_conds():同1.4测试。 JOIN:optimize阶段 optimize_cond():类似1.4测试,不同之处在于查询的where条件中有恒等常量,在优化过程中会调用remove_eq_conds将1=1条件删除。 make_join_statistics():与1.4测试类似,由于where条件查询有两个,并且其中一个条件可以通过索引查询。因此首先通过调用update_ref_and_keys()(sql\sql_select.cc:3967)函数,查找可以使用索引的字段。 SQL_SELECT::test_quick_select():同1.5索引测试 get_key_scans_params():同1.5索引测试。 choose_plan():同1.3测试。 greedy_search():同1.3测试。 best_extension_by_limited_search():同1.5索引测试。 JOIN:exec阶段 以下操作同1.3测试。 通过测试可以看出,对于常量等式对查询优化器来说没有任何意义,会在optimize_conds时将常量等式删除

ubuntu中mysql的操作和安装

给你一囗甜甜゛ 提交于 2020-04-07 05:27:42
  ubuntu上安装mysql非常简单只需要几条命令就可以完成。    1. sudo apt-get install mysql-server   2. sudo apt-get isntall mysql-client   3. sudo apt-get install libmysqlclient-dev   登陆mysql数据库可以通过如下命令:   mysql -u root -p 使用mysqladmin 命令设置用户密码: mysqladmin -u root password "passwd" MySQL添加用户、删除用户与授权 MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户   1.1 登录MYSQL:   mysql -u root -p   密码   1.2 创建用户:    mysql> insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));   这样就创建了一个名为:test 密码为:1234 的用户。    注意:此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将"localhost"改为"%"

mysql 密码重置

醉酒当歌 提交于 2020-04-07 05:02:12
1.在命令行运行: taskkill /f /im mysqld.exe 下面的操作是操作mysql中bin目录下的一些程序,如果没有配置环境变量的话,需要切换到mysql的bin 目录下执行如下语句。不然无效 2.继续在命令行运行: mysqld --skip-grant-tables 3.新开一个命令行运行:mysql -u root (如果没有配置mysql的bin环境变量的话需要切换到bin目录下执行此语句) 如果不想改密码,只是想看原来的密码的话。可以在命令行执行这个语句 select host,user,password from mysql.user;//即可查看到用户和密码 如果要修改密码的话,在命令行下执行下面的语句 update mysql.user set password=password('密码') where user='root'; delete from mysql.user where user='';  ← 删除匿名用户 FLUSH PRIVILEGES; 完成这些操作后,继续在命令行运行 taskkill /f /im mysqld.exe //安全着想,先结束,因为现在这样是可以用mysql -u root 直接登录的 net start mysql//启动mysql服务 1.新建用户。 //登录MYSQL @>mysql -u root

Mysql下载&安装与配置

大憨熊 提交于 2020-04-06 17:49:39
1、Windows版本下载地址 https://www.mysql.com/downloads/ 2、拷贝到存放路径解压即用 3、修改精简文件名 4、修改环境变量 将mysql路径添加到path下的环境变量(用;分割) 5、用管理员模式打开cmd.exe,通过cd命令切换到mysql路径(Windows下要加\d) 6、创建my.ini修改配置,设置默认账号、默认密码及识别的字符编码。 #mysql5.5以上:修改方式有所改动 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8 user='root' password='' [mysql] default-character-set=utf8 user='root' password='' 7、输入mysqld.exe --install,直接启动服务 8、进入services.msc找到MySQL启动服务 破解密码登录 windows系统 #1 关闭mysql #2 在cmd中执行:mysqld --skip-grant-tables #3 在cmd中执行:mysql #4 执行如下sql: update mysql.user set authentication

python中数据库的操作终结

左心房为你撑大大i 提交于 2020-04-06 12:53:11
1.什么是数据库: 数据库是按照数据结构来组织存储和管理数据的仓库2.mysql用户设置: (1).进入数据库:mysql -u root -p 然后输入密码:xxxxx (2).里面有个user表存储的就是表的信息: desc user; (3)创建用户 1.INSERT INTO mysql.user(Host, User, authentication_string, ssl_cipher, x509_issuer, x509_subject) VALUES ('主机名', '用户名', PASSWORD('密码'), '', '', ''); 由于 mysql 数据库的 user 表中,ssl_cipher、x509_issuer 和 x509_subject 这 3 个字段没有默认值, 所以向 user 表插入新记录时,一定要设置这 3 个字段的值,否则 INSERT 语句将不能执行。 在8.0的版本里面已经不支持password函数加密了可以使用MD5或者其他的函数进行加密 2.CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码'; 在创建的过程中,只给出了用户名,而没指定主机名,那么主机名默认为“%”,表示一组主机,即对所有主机开放权限 使用这个创建用户时必须有INSERT 权限或全局 CREATE USER 权限。 3.GRANT

mysql之日志

我的梦境 提交于 2020-04-06 10:39:58
我是李福春,我在准备面试,今天的题目是: mysql的redolog和binlog有什么区别? 答: 如下面的表格, redolog vs binlog 然后我们扩展一下,因为日志主要是记录的修改日志,分别加深分析一下: <a name="A9mUz"></a> redolog redolog是innodb存储引擎特有的物理日志,记录的是数据页做了什么改动。 它的存储空间是固定的,类似一个圆环。日志空间写完,需要把相关的操作执行,数据刷到磁盘上释放空间。 redolog可以有效保证mysql的crash-safe; 即mysql系统故障重启,也可以从redolog中恢复; 一般把innodb_flush_log_at_trx_commit=1,即设置redolog每次事务提交日志落盘,可以更有效的保证crash-safe binlog 是一种mysql-server层的逻辑修改日志,有两种格式: 1,statement格式,记录的是sql; 2, row格式,记录了两行,更新前和更新后的结果; 为了保证系统可以从奔溃状态恢复,设置参数 sync_binlog=1,即事务提交,binlog落盘; 如何快速恢复mysql: 1,找到最近的备份,恢复到临时库; 2,找到备份的binlog,重放到你需要的时刻。 一条update语句历程 比如有一张表: user(id int