mysql update语句

数据库基本操作命令

廉价感情. 提交于 2020-02-20 06:41:29
数据库 数据库的基本概念: MySql DBMS = Database Management System DB的特点 持久化 数据库就是一个文件系统 方便储存和管理 提供统一的操作方式 DB2 IBM的数据库,银行系统常用 SQLite嵌入式小型数据库,手机端和浏览器常用 MySql阿里巴巴版 MariaDB——MySql原作者的另一个产品,底层和MySql一样 两个cmd命令: services.msc 打开windows服务窗口 net start mysql 启动mysql服务 net stop mysql 停止mysql服务 netstat -aon显示端口列表 cmd窗口显示中文乱码问题 切换为UTF-8:chcp 65001 切换回GBK:chcp 936 登录数据库 mysql -uroot -proot (默认连接3306端口) 如果-p之后不写密码,会提示输入密文密码,这样更安全 mysql -h127.0.0.1 -uroot -proot -P端口号 mysql --host=ip --user=root --password=root 两种连接外部数据库的方式 quit 退出数据库 exit; 关闭cmd mysql软件安装目录 my.ini ——mysql的配置文件 mysql的数据目录结构 数据库——文件夹 表——文件 数据——文件中的数据 SQL语句

5.7mysql安装问题

半城伤御伤魂 提交于 2020-02-20 02:55:50
5.7mysql安装问题 1.mysql安装了,查看是运行状态,无法停止,无法重启 安装命令: 查看mysql的进程: ​ ps -e|grep mysql 杀死mysql的进程: ​ sudo killall mysqld 查看mysql的状态: ​ service mysqld status 查看某个目录的占用内存情况: ​ du -ah --max-depth=1 操作mysql: ​ systemctl start mysqld.service 启动 ​ systemctl stop mysqld.service 停止 ​ systemctl restart mysqld.service 重启 ​ etc/my.cnf mysql配置文件 mysql忘记密码的操作: 一、首先更改my.cnf的配置文件,并重启mysql ​ 在my.cnf文件中的[mysqld] 下加入下面一行,其余不做改变。 [root@localhost ~]# vim /etc/my.cnf [mysqld] skip-grant-tables [root@localhost ~]# systemctl restart mysqld 二、登录MySQL,此时不需要输入密码,直接回车即可 mysql -uroot -p 三、切换到mysql数据库,查询user表的结构,这里有需要的字段。 在MySQL5

MySQL的INSERT ··· ON DUPLICATE KEY UPDATE使用的几种情况

自作多情 提交于 2020-02-19 14:05:37
在MySQL数据库中,如果在insert语句后面带上ON DUPLICATE KEY UPDATE 子句,而要插入的行与表中现有记录的惟一索引或主键中产生重复值,那么就会发生旧行的更新;如果插入的行数据与现有表中记录的唯一索引或者主键不重复,则执行新纪录插入操作。另外,ON DUPLICATE KEY UPDATE不能写where条件。 示例: create table kid_score( id tinyint unsigned not null, birth_day date not null, score int unsigned not null, primary key(id, birth_day) --唯一索引是由 id + birth_day 两个字段组成 ) engine = InnoDB; --初始化数据 insert into kid_score(id, birth_day, score) values (1,'2019-01-15',10),(2,'2019-01-16',20); 下面开始验证执行INSERT ··· ON DUPLICATE KEY UPDATE语法的规则: 如果你插入的记录导致一个UNIQUE索引或者primary key(主键)出现重复,那么就会认为该条记录存在,则执行update语句而不是insert语句,反之

MySQL如何找出未提交事务信息

爷,独闯天下 提交于 2020-02-19 08:44:59
前阵子,我写了一篇博客 “ ORACLE中能否找到未提交事务的SQL语句 ” , 那么在MySQL数据库中,我们能否找出未提交事务执行的SQL语句或未提交事务的相关信息呢? 实验验证了一下,如果一个会话(连接)里面有一个未提交事务,然后不做任何操作,那么这个线程处于Sleep状态 mysql> select connection_id() from dual; +-----------------+ | connection_id() | +-----------------+ | 6 | +-----------------+ 1 row in set (0.00 sec) mysql> set session autocommit=0; Query OK, 0 rows affected (0.00 sec) mysql> delete from kkk where id =1; Query OK, 1 row affected (0.00 sec) mysql> 在另外一个会话(连接)里面,查询这个超过10秒未提交事务的详细信息: SELECT t.trx_mysql_thread_id ,t.trx_state ,t.trx_tables_in_use ,t.trx_tables_locked ,t.trx_query ,t.trx_rows_locked ,t.trx

mysql笔记

百般思念 提交于 2020-02-19 05:05:04
目录 1.开始创建数据库、创建数据库中的表 2.关于表的一些操作 3.主键/外键/唯一约束/检查约束/默认值约束/非空约束 4.select 1).select中的 DISTINCT去重 以及选取指定行数 LIMIT 2).select中 ORDER BY 3).WHERE 子句来指定查询条件 4).INNER JOIN 子句来指定查询条件 5).OUTER JOIN 6).子查询 7).GROUP BY 8).HAVING 9).正则表达式REGEXP 5.INSERT 1.向表中全部字段插入值 2.向指定字段插入值 3.使用 INSERT INTO…FROM 语句复制表数据 6.UPDATE语句来修改、DELETE语句删除 1.修改/删除表中的数据 2.根据条件/删除修改 7.视图 1).视图的创建与查询 2).修改视图 3).删除视图 8.创建函数 1).创建并使用自定义函数 2).修改自定义函数 3).删除自定义函数 9.常用运算符 1.开始创建数据库、创建数据库中的表 #连接数据库 mysql -u root -p #创建数据库并设置指定字符集和校对规则 create database < database_name > if not exist < database_name > DEFAULT CHARACTER SET utf8 DEFAULT COLLATE

MYSQL基础语法

谁说胖子不能爱 提交于 2020-02-18 16:33:05
MYSQL单表查询 简单数据查询 (SELECT 选择查询列表)(FROM提供数据源) 和创建表时的顺序一致。匹配所有的字段 SELECT *(表示所有列)FROM table_name (表名) :表示查询表中所有信息 可以自己调整顺序,在select后边加上要查询的列名。 SELECT A,B,C FROM table_name (表名):表示查询A,B ,C列中所有信息 消除结果中重复的数据 SELECT DISTINCT 列名 FROM 表名 实现数学运算查询 对NUMBER型数据可以使用算数操作符创建表达式(+ - * /) 对DATE型数据可以使用部分算数操作符创建表达式 (+ -) 设置列名的别名 语法:SELECT 列名 as 新列名 (as可以省略)FROM table_name 设置显示格式 使用CONCAT函数来连接字符串 语法 SELECT CONCAT(列名,“ 字符串”,列名)FROM table_name 过滤查询(字符串和日期要用单引号扩起来) SELECT 列名 FROM table_name WHERE 条件1 AND/OR 条件2; 逻辑运算 优先级规则(() 小括号跨越所有运算符优先级) 范围查询-BETWEEN AND 语法:SELECT 列名 FROM table_name WHERE 列名 BETWEEN AND(闭区间) 集合查询

MySQL实用语句

送分小仙女□ 提交于 2020-02-18 12:03:36
-- 查询第一个字符为逗号的记录, 并去掉逗号 SELECT a.fff FROM ttt WHERE SUBSTRING(fff, 1, 1) = ','; UPDATE ttta SET fff = SUBSTRING(fff, 2) WHERE SUBSTRING(fff, 1, 1) = ','; -- 查询一个用户属于两个组的信息 SELECT c.id uid, c.user_name, c.last_name, GROUP_CONCAT(a.name) 组, GROUP_CONCAT(a.id) 组id FROM ea_org a INNER JOIN org_users b ON a.id = b.org_id AND b.deleted = 0 INNER JOIN users c ON b.users_id = c.id GROUP BY c.user_name HAVING COUNT(*) > 1; 来源: https://www.cnblogs.com/iLoveMyD/p/12324953.html

MySQL的binlog日志

放肆的年华 提交于 2020-02-18 06:43:02
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。 一般来说开启二进制日志大概会有1%的性能损耗(参见MySQL官方中文手册 5.1.24版)。二进制有两个最重要的使用场景: 其一:MySQL Replication在Master端开启binlog,Mster把它的二进制日志传递给slaves来达到master-slave数据一致的目的。 其二:自然就是数据恢复了,通过使用mysqlbinlog工具来使恢复数据。 二进制日志包括两类文件:二进制日志索引文件(文件名后缀为.index)用于记录所有的二进制文件,二进制日志文件(文件名后缀为.00000*)记录数据库所有的DDL和DML(除了数据查询语句)语句事件。 一、开启binlog日志: vi编辑打开mysql配置文件 # vi /usr/local/mysql/etc/my.cnf 在[mysqld] 区块 设置/添加 log-bin=mysql-bin 确认是打开状态(值 mysql-bin 是日志的基本名或前缀名); 重启mysqld服务使配置生效 # pkill mysqld # /usr/local/mysql/bin/mysqld_safe --user

1、Mysql无法创建外键的原因 2、MySql 外键约束 之CASCADE、SET NULL、RESTRICT、NO ACTION分析和作用

孤街醉人 提交于 2020-02-17 18:21:51
在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因。 1. 两个字段的类型或者大小不严格匹配。例如,如果一个是int(10),那么外键也必须设置成int(10),而不是int(11),也不能是tinyint。另外,你还必须确定两个字段是否一个为 signed,而另一个又是unsigned(即:无符号),这两字段必须严格地一致匹配,更多关于signed和unsigned的信息,请参阅: http://www.verysimple.com/blog/?p=57 2. 试图设置外键的字段没有建立起索引,或者不是一个primary key(主键)。如果其中一个不是primary key的话,你必须先为它创建一个索引。 3. 其中一个或者两个表是MyISAM引擎的表。若想要使用外键约束,表必须是InnoDB引擎(实际上,如果两个表都是MyISAM 引擎的,这个错误根本不会发生,但也不会产生外键,只会建立索引)你需要检查表的引擎类型。 4. 外键的名字不能重复。你应该检查你的数据库以确保外健名字是唯一的,或者你在键名后面加上几个随机的字符以测试是否是这个原因。 5. 你可能设置了ON DELETE SET NULL,但是相关的键的字段又设置成了NOTS NULL值

MySql 外键约束 之CASCADE、SET NULL、RESTRICT、NO ACTION分析和作用

风流意气都作罢 提交于 2020-02-17 17:56:14
MySQL有两种常用的引擎类型:MyISAM和InnoDB。目前只有InnoDB引擎类型支持外键约束。InnoDB中外键约束定义的语法如下: ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name, ...) REFERENCES tbl_name (index_col_name,...) [ON DELETE reference_option] [ON UPDATE reference_option] 例如: ALTER TABLE `user_resource` CONSTRAINT `FKEEAF1E02D82D57F9` FOREIGN KEY (`user_Id`) REFERENCES `sys_user` (`Id`) InnoDB也支持使用ALTER TABLE来删除外键: ALTER TABLE `user_resource` DROP FOREIGN KEY `FKEEAF1E02D82D57F9`; CASCADE 在父表上update/delete记录时,同步update/delete掉子表的匹配记录 SET NULL 在父表上update/delete记录时,将子表上匹配记录的列设为null (要注意子表的外键列不能为not null)