mysql

Mysql4种方式避免重复插入数据!

≡放荡痞女 提交于 2021-02-12 12:04:58
作者:小小猿爱嘻嘻 wukong.com/question/6749061190594330891/ 最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下: 这里为了方便演示,我新建了一个user测试表,主要有id,username,sex,address这4个字段,其中主键为id(自增),同时对username字段设置了唯一索引: 01 insert ignore into 即插入数据时,如果数据存在,则忽略此次插入,前提条件是插入的数据字段设置了主键或唯一索引,测试SQL语句如下,当插入本条数据时,MySQL数据库会首先检索已有数据(也就是idx_username索引),如果存在,则忽略本次插入,如果不存在,则正常插入数据: 02 on duplicate key update 即插入数据时,如果数据存在,则执行更新操作,前提条件同上,也是插入的数据字段设置了主键或唯一索引,测试SQL语句如下,当插入本条记录时,MySQL数据库会首先检索已有数据(idx_username索引),如果存在,则执行update更新操作,如果不存在,则直接插入: 03 replace into 即插入数据时,如果数据存在,则删除再插入,前提条件同上

索引+sql优化

本秂侑毒 提交于 2021-02-12 11:01:37
索引的概念 : 索引是提高查询速度的一种手段。 索引有很多种,以下是索引树的结构 要求查询出薪资大于 5000 的雇员信息,只要在树中找到 5000 的节点,直接查询该节点右边的数据即可,左边就不用管了,这样提高了查询的效率。 将数据按照索引数据的方式保存需要先创建索引。 基本语法: CREATE INDEX 索引名 ON 数据表(字段名) ; 删除索引: DROP INDEX 索引名 ; 注意:系统默认主键使用索引。 复合索引 一个索引在多个字段上创建,就是一个索引作用于多个字段。 例如: CREATE INDEX 索引名 ON 数据表(字段 1 ,字段 2 ) ; 注意:查询数据使用字段 2 ,此时使用的是全表扫描模式,查询数据使用字段 1 ,此时使用的是索引扫描模式。(此现象叫做索引的 最左原则 ) 在 Oracle 中使用了多个字段,并且是 AND 连接的条件,那么字段的顺序不影响扫描的方式(索引扫描),如果是 mysql 则需要和复合索引的字段顺序一致。使用 OR 连接条件会导致索引失效,应该使用 UNION ALL 代替 OR 查询。 总结: 索引不能随便用。如果一张数据表更新频率太高,更新数据之后需要重新创建索引,这一过程很耗费性能。 Sql 的优化 *(面试题) 1、 对查询进行优化,要尽量避免全表扫描,首先应考虑在进行条件判断的字段上创建索引。

MySQL 查询结果保存为CSV文件

馋奶兔 提交于 2021-02-12 09:16:31
点击上方“ IT共享之家 ”,进行关注 回复“ 资料 ”可获赠IT学习福利 MySQL支持将查询结果直接导出为文本格式,格式如下: into outfile ‘导出的目录和文件名’ 指定导出的目录和文件名 fields terminated by ‘字段间分隔符’ 定义字段间的分隔符 optionally enclosed by ‘字段包围符’ 定义包围字段的字符(数值型字段无效) lines terminated by ‘行间分隔符’ 定义每行的分隔符 举个栗子: select * from [表名] where [字段名] = '条件' into outfile 'c:/test.csv' fields terminated by ',' optionally enclosed by '"' lines terminated by '\r\n' ; 执行后,会把指定表中记录数据导出到c:/test.csv文件中。每个字段以,(逗号)分隔,字段内容是字符串的以”(双引号)包围,每条记录使用\r\n换行。如图所示 如果导出的过程中出现: the MySQL server is running with the -- secure - file - priv option so it cannot execute this statement 首先了解一下secure-file

java问卷调查系统源码(java+mysql)

吃可爱长大的小学妹 提交于 2021-02-12 09:16:10
最近公司由于业务需要,需要上线一套在线问卷调查系统用来收集客户对公司产品的反馈意见。我们的技术人员对比了问卷星、问卷网等在线问卷调查平台后发现开发一套问卷调查系统需要花费很多时间满足不了公司的紧迫需求。所以我们准备使用开源的或者购买一套成熟的问卷调查系统供公司业务部门使用。 因为公司自己的技术开发人员使用的是java开发技术,所以我们在网上搜索了所有用java开发的问卷调查系统,找到了由java调查网开发的一套基于ssm的问卷调查系统产品。经过我们业务部门的测试使用发现此问卷调查系统基本上满足了我们90%的业务需求,并且他们的产品提供源码和二次开发,这无疑解决了我们的紧迫需求。 他们的问卷调查系统产品功能很全使用很方便,有需要的可以到他们官网试用一下: http://www.java-survey.com/ 这套系统在我们也使用了一段时间,运行稳定,使用良好。下面给大家展示一下他的主要功能点。 响应式设计:电脑、PAD、手机端自动适配自动适配,利于微信传播答题。答题验证、答题进度等等 支持20多种题型考试题、 打分题、 单选题、 多选题 填空题(单行输入,多行输入,数字,手机号,邮箱,身份证号,网址,日期) 单选矩阵、 多选矩阵、 文本矩阵、 数字矩阵、排序题、下拉菜单、二级菜单 数据分析&统计报表 回收数量、回收进度、百分比、饼状图、条形图、拆线图 答卷数据导出 单题分析

Linux服务器---mysql忘记root密码

你离开我真会死。 提交于 2021-02-12 08:15:30
忘记root密码 如果不小心忘记了root密码,那么mysql就不能再登录了,这时就要重置root密码才行。通过下面的步骤,我们可以重新设置root密码。 1、退出mysql [root@localhost src]# service mysqld stop 停止 mysqld : [ 确定 ] [root@localhost src]# 2、进入sql安全模式,命令“ /usr/bin/mysqld_safe --skip-grant-table & ” [root@localhost src]# /usr/bin/mysqld_safe --skip-grant-table & [1] 6332 [root@localhost src]# 180814 10:10:00 mysqld_safe Logging to '/var/log/mysqld.log'. 180814 10:10:00 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 3、无密码方式登录,命令“mysql –u root” [root@localhost src]# mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your

Linux学习:重设mysql root密码

﹥>﹥吖頭↗ 提交于 2021-02-12 07:42:28
## 20160331 忘记 root密码 1、参考 重设mysql root密码 http://www.111cn.net/database/mysql/43957.htm 2、 停止mysql service mysqld stop 如果不行 ps -ef kill mysql的进程 3、mysql安全方式运行进入mysql mysqld_safe --user=mysql --skip-grant-tables --skip-networking & mysql -u root mysql 4、更新密码 UPDATE user SET Password=PASSWORD('newpassword') where USER='root'; 5、刷新当前user和privilige表中的用户信息/权限设置 mysql 的权限会在启动和flush之后更新 FLUSH PRIVILEGES; 6、退出,再来!试试新密码 quit 7、再次启动进入mysql mysql -u root mysql 8、此时密码应该是刚才设置的:newpassword 9再试试!改个密码看看 10、连接数据库 use mysql 11、修改root密码 UPDATE user SET Password=PASSWORD('123') where USER='root'; UPDATE user SET

.net连接mysql

坚强是说给别人听的谎言 提交于 2021-02-12 07:16:01
首先在官网下载,mysql-connect-net,用于使用mysql的驱动程序,我在下载mysql-connect-net.msi. installer后,执行安装程序的时候一直无法安装成功,最简单的方法是直接下载.zip文件后解压,无须安装。 官网地址:http://dev.mysql.com/downloads/file/?id=463757 解压文件后, 出现了好几个文件夹,其中有v4和v4.5两个文件夹,对应vs的不同版本 VS2010使用V4.0下的dll文件 VS2012/2013/2015使用v4.5下的dll文件 其中有一个帮助手册十分有用: Documentation文件夹下的ConnectorNET.chm中包含了连接mysql数据库的API。 MySqlConnection类用来连接数据库 Constructor: 构造函数 MySqlConnection(String) Initializes a new instance of the MySqlConnection class when given a string containing the connection string. methods: 打开数据库 Open Opens a database connection with the property settings specified

Docker深入浅出系列 | 容器数据持久化

这一生的挚爱 提交于 2021-02-12 07:02:46
Docker深入浅出系列 | 容器数据持久化 [TOC] Docker已经上市很多年,不是什么新鲜事物了,很多企业或者开发同学以前也不多不少有所接触,但是有实操经验的人不多,本系列教程主要偏重实战,尽量讲干货,会根据本人理解去做阐述,具体官方概念可以查阅官方教程,因为本系列教程对前一章节有一定依赖,建议先学习前面章节内容。 本系列教程导航: Docker深入浅出系列 | 容器初体验 Docker深入浅出系列 | Image实战演练 Docker深入浅出系列 | 单节点多容器网络通信 教程目的: 了解Docker怎么实现数据存储 了解Docker数据挂载方式是什么 了解Docker数据持久化怎么使用 了解Docker不同数据挂载方式的使用场景 Docker数据存储方式 Docker容器对于宿主机器来说只是一个运行在Linux上的应用,因此它的数据存储还是会依赖宿主机器,Docker是通过挂载宿主机文件系统或内存的方式来实现数据存储的,挂载方式有三种:volume、bind mount和tmpfs。 volumes - 在宿主的文件系统上的docker工作路径下创建一个文件夹( /var/lib/docker/volumes )来存储数据,其他非docker进程是不能修改该路径下的文件,完全由docker来管理 bind mounts - 可以存储在宿主机器任何一个地方

Apache Ambari 2.7.3.0 离线安装

谁都会走 提交于 2021-02-12 06:27:34
1. 准备 (内存 3G 硬盘 40G) 0)设置ssh无密码 ssh-keygen cat id_rsa.pub >> authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_key 1)修改hostname、固定ip vi /etc/hosts →1.2.3.4 <fully.qualified.domain.name> hostname <fully.qualified.domain.name> vi /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO=static ONBOOT=yes 其他默认即可 重启network服务 2)网络相关 vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=<fully.qualified.domain.name>H 关闭防火墙,selinux,PackageKit systemctl disable firewalld service firewalld stop vi /etc/selinux/config SELINUX=disabled vi /etc/yum/pluginconf.defresh-packagekit.conf enabled=0 3)umask

初识Docker

牧云@^-^@ 提交于 2021-02-12 05:44:56
很久之前就听过Docker这个词,蓝鲸鱼顶着一堆集装箱的图标给我印象很深,之前也看了一下介绍,没怎么懂。但是随着开发时间的增长,我也逐渐了解到了一些东西,在此我将这些东西写下来。 为什么要用Docker? 要了解一个新的概念,我们需要从应用场景去感性地了解一下这个东西地作用。 情景1:开发过Java的同学应该体会过配置环境变量那种痛苦,配置一两次确实有助于我们了解环境变量的作用和机制。但是每次当我们换一台电脑就要配置一次,而且不仅限于Java,我之前尝试过CUDA环境变量配置,AndroidStudio环境变量配置,Python环境变量配置,apache环境变量配置,这种配置真的是浪费了大量的时间和精力,打代码的热情都减半了(要说是什么阻止了我敲代码的手,那配置环境变量脱不了干系)。 情景2:现在服务器上挂着一个tomcat,里面跑着一个java web程序在读着mysql数据库。现在我们要升级mysql,或者对正在运行的网站的某些地方做修改,但是我又不能立刻下线,那么我们该怎么办呢? 有了如上的问题,我们先不急着了解如何去解决,我们来形象地了解docker,再看看docker地结构和运行机制 Docker是什么? 先来说说大家熟悉的Java,Java是运行在JVM上的,所以有了“Write Once, Run Anywhere”的口号,有了平台无关的特性