数据操纵语言全称是Data Manipulation Language,简称是DML。DML主要有四个常用功能,如下表所示,其中DML中的查询功能是作为一名数据分析师常用的操作。查询知识会穿插在之后的所有文章中讲述,因为这个问题不是一下子可以讲的完的。今天的文章主要是讲述增、删、改这几个技能的用法。
在windows中MySql以服务形式存在,在使用前应确保此服务已经启动,未启动可用net start mysql命令启动。而Linux中启动时可“/etc/rc.d/init.d/mysqld start”命令,注意启动者应具有管理员权限。 刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全隐患,对于一些重要的应用我们应将安全性尽可能提高,在这里应把匿名帐户删除、 root帐户设置密码,可用如下命令进行: use mysql; delete f
一个业务方给了一个SQL,要让在线上执行,具体的SQL抽象完成之后是这样的:
1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2、创建一个数据库MYSQLDATA mysql> CREATE DATABASE MYSQLDATA; 3:选择你所创建的数据库 mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!) 4:查看现在的数据库中存在什么表 mysql> SHOW TABLES; 5:创建一个数据库表 mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1)); 6:显示表的结构: mysql> DESCRIBE MYTABLE; 7:往表中加入记录 mysql> insert into MYTABLE values (”hyq”,”M”); 8:用文本方式将数据装入数据库表中(例如D:/mysql.txt) mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE; 9:导入.sql文件命令(例如D:/mysql.sql) mysql>use database; mysql>source d:/mysql.sql; 10:删除表 mysql>drop TABLE MYTABLE; 11:清空表 mysql>delete from MYTABLE; 12:更新表中数据 mysql>update MYTABLE set sex=”f” where name=’hyq’;
使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 创建一个数据库MYSQLDATA mysql> CREATE DATABASE MYSQLDATA; 选择你所创建的数据库 mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!) 查看现在的数据库中存在什么表 mysql> SHOW TABLES; 创建一个数据库表 mysql> CREATE TABLE MYTABLE (name VARCHAR(20
1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:创建一个数据库MYSQLDATA mysql> CREATE DATABASE MYSQLDATA; 3:选择你所创建的数据库 mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!) 4:查看现在的数据库中存在什么表 mysql> SHOW TABLES; 5:创建一个数据库表 mysql> CREATE TABLE MYTABLE (name V
GTID定义: 定义:GTID即全局事务ID(global transaction identifier),一个事物对应一个GTID引入:MySQL-5.6.5开始支持,MySQL-5.6.10后开始完善组成:GTID = server_uuid :transaction_idserver_uuid首次启动时 MySQL 会自动生成一个 server_uuid,并且保存到 auto.cnf 文件,一个实例对应一个server_uuidtransaction_id从 1 开始的自增计数,表示在这个主库上执行
MySQL 5.6版本适合在1GB内存VPS上的my.cnf配置文件 [client] port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 socket = /tmp/mysql.sock basedir = /usr/local/mysql datadir = /data/mysql pid-file = /data/mysql/mysql.pid user = mysql bind-add
2021-01-19:mysql中,一张表里有3亿数据,未分表,其中一个字段是企业类型,企业类型是一般企业和个体户,个体户的数据量差不多占50%,根据条件把个体户的行都删掉。请问如何操作?
上午同事反应MySQL连不上了,我到服务器上用"df -h"查一下磁盘,发现磁盘打满了。解决顺便记录一下流程:
《mysql学习笔记》 1.打开与关闭mysql mysql -uXXX -pXXX #其中XXX为用户名和密码 #成功进入后提示符变为: mysql> #可输入第一个例子 version(),current_date(); 【注意一定要在结尾有分号;】 【多行输入时在最后一行要有分号作为输入结
02、java7中的基本设计理念就是切分成多个Segment块,默认是16个,也就是说并发度是16,可以初始化时显式指定,后期不能修改,每个Segment里面可以近似看成一个HashMap,每个Segment块都有自己独立的ReentrantLock锁,所以并发操作时每个Segment互不影响;
每个访问事务表 都会启动一个statement事务。如果语句成功,则提交statement事务。如果语句失败,则回滚事务。statement事务的提交是不持久的——每个statement事务都嵌套在normal事务中,如果回滚normal事务,被包含的statement事务所影响的数据也会被撤销。在 autocommit 自动提交模式下,normal事务与statement事务等价。
-- 每个表单独文件和单独表空间,而不是放在系统表空间,每个表的文件表空间允许操作系统在表被截断或删除时回收磁盘空间。每表文件表空间还支持动态和压缩行格式以及相关功能
MySQL参数优化这东西不好好研究还是比较难懂的,其实不光是MySQL,大部分程序的参数优化,是很复杂的。MySQL的参数优化也不例外,对于不同的需求,还有硬件的配置,优化不可能又最优选择,只能慢慢的进行优化,需要不断的调试,才能达到不同环境的最优选择。 首先介绍一下MySQL配置文件中不同模块 [client] MySQL客户端应用模块,只有MySQL附带的客户端应用程序保证可以读取此模块下的内容。 [mysqld] MySQL服务端应用模块 [client] port = 3306 socket
这个其实用脚趾头想想也知道它的重要性,举个简单的例子: 一个用户提交了一个订单,那么这条数据包含了两个信息,用户信息 和购买的 商品信息,我需要把他们分别存到 用户表 和 商品表,如果不采用事务,可能会出现,商品信息插入成功,而用户信息没有,这时候就会出现无主商品了,用户付了钱,却得不到商品,这就尴尬了,而如果采用事务,就可以保证,用户信息 和 商品信息 都必须插入成功,该次事务才算成功,那就不会出现这种问题了
grant replication slave,reload,super on *.* to'slave'@'192.168.1.101'identified by '123456';
经常看到有人写关于锁的事情,但常常感觉给人一个感觉,数据库的ACID 是通过锁来控制的,实际上数据库的ACID 控制是复杂的,MVCC 就是一个对资源并发访问时的提高并发访问的有效的方法
即使是经验老道的人也会犯错,会引起很多麻烦。所以在盲目的运用这些推荐之前,请记住下面的内容:
在上一次课redis入门的过程中我们讲过随着访问量的上升,几乎大部分使用MySQL架构的网站在数据库 上都出现了性能问题,web程序不再仅仅关注在功能上,同时也开始追求性能,Memcached(缓存)自然 成为一个非常时尚的技术产品。 缓存的实质是替数据库挡了一层。主要是减轻对数据库的高频率读的压力。频繁被访问的数据可以被放 置于缓存当中,以供频繁访问。
SimpleDateFormat(下面简称sdf)类内部有一个Calendar对象引用,它用来储存和这个sdf相关的日期信息,例如sdf.parse(dateStr), sdf.format(date) 诸如此类的方法参数传入的日期相关String、Date等等,都是交友Calendar引用来储存的,这样就会导致一个问题,如果你的sdf是个static的, 那么多个thread 之间就会共享这个sdf, 同时也是共享这个Calendar引用, 并且, 观察 sdf.parse() 方法,parse方法里没有保证原子性,所以存在线程安全问题:
130 :文件格式不正确。(还不是很清楚错误的状况) 145 :文件无法打开。1005:创建表失败。1006:创建数据库失败。 1007:数据库已存在,创建数据库失败。 1008:数据库不存在,删除数据库失败。 1009:不能删除数据库文件导致删除数据库失败。 1010:不能删除数据目录导致删除数据库失败。 1011:删除数据库文件失败。 1012:不能读取系统表中的记录。 1016:文件无法打开,使用后台修复或者使用 phpmyadmin 进行修复。Quote:开始=>所有程序=>附件=>命令提示符 输入 mysql 所在硬盘盘符 cd mysql 所在目录 cd bin 输入 myisamchk -f D:usr/local/mysql/data/bbs/PW_members.MYI ps : D:usr/local/mysql/data/bbs 是你论坛数据库的路径 -f 根据具体情况选择,一般也可以选择 -r 注意你的 系统C盘或放数据库的硬盘空间是否足够,一般小于 1G 很容易出现错误。 或用mysqlcheck命令进行修复。具体的方法:利用命令行进入mysql/bin目录,执行mysqlcheck -o -r phpwind -uroot -p 其中phpwind是你数据库的名称,root是你的数据库用户名,然后会提示你输入密码。然后就会修复你的数据库。 1017:服务器非法关机,导致该文件损坏。 1020:记录已被其他用户修改。 1021:硬盘剩余空间不足,请加大硬盘可用空间。 1022:关键字重复,更改记录失败。 1023:关闭时发生错误。 1024:读文件错误。 1025:更改名字时发生错误。 1026:写文件错误。 1030:可能是服务器不稳定。(具体原因不是很清楚) 1032:记录不存在。 1036:数据表是只读的,不能对它进行修改。 1037:系统内存不足,请重启数据库或重启服务器。 1038:用于排序的内存不足,请增大排序缓冲区。 1040:已到达数据库的最大连接数,请加大数据库可用连接数。Quote:在my.ini 修改max_connections=100为max_connections=1000或更大,重启mysql 1041:系统内存不足。 1042:无效的主机名。 1043:无效连接。 1044:数据库用户权限不足,请联系空间商解决。 1045:数据库服务器/数据库用户名/数据库名/数据库密码错误,请联系空间商检查帐户。Quote:方法:确保论坛data目录下的sql_config.php用户名与密码都正确.如果用户忘记了数据库的密码,可以按如下方式进行密码的修改:如果 MySQL 正在运行,首先停止。启动 MySQL :bin/safe_mysqld –skip-grant-tables & 就可以不需要密码就进入 MySQL 了。然后就是 >use mysql>update user set password=password(“new_pass”) where user=“root”;>flush privileges;1046:没有选择数据库。 1048:字段不能为空。 1049:数据库不存在。 1050:数据表已存在。 1051:数据表不存在。 1054:字段不存在,自行建立字段。 1060:字段重复,导致无法插入这个字段。 1062:字段值重复,入库失败 Quote: 1.如果出类似主码为”65535″的错误,可以查看相关表的自增字段,将字段值改在就可以 2.确保相关数据表中主码重复的字段是否存在,如果存在删除这条记录 3.备份数据库,修复相关表(注:这种情况比较常见,如pw_posts表,对表进行修复的时候不要忘记备份). 1064:MySQL 不支持错误提示中的编码。 1065:无效的 SQL 语句,SQL 语句为空。 1067:MySQL 版本为 5,不支持空的默认值。 1081:不能建立 Socket 连接。 1114:数据表已满,不能容纳任何记录。 1115:设置的字符集在 MySQL 并没有支持。 1116:打开的数据表太多。 1129:数据库出现异常,请重启数据库。 1130:连接数据库失败,没有连接数据库的权限。 1133:数据库用户不存在。 1135:可能是内存不足够,请联系空间商解决。 1141:当前用户无权访问数据库。 1142:当前用户无权访问数据表。 1143:当前用户无权访问数据表中的字段。 1146:数据表缺失,请恢复备份数据 1147:未定义用户对数据表的访问权限。 1149:SQL 语句语法错误。 1158:网络错误,出现读错误,请检查网络连接状况。 1159:网络错误,读超时,请检查网络连接状况。 1160:网络错误,出现写错误,请
[root@iZ8vbbslxnnj3fheohrwncZ ~]# mysql -
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本来村民也是打算写一写基础教程的,但是 B 站 UP 主高新强的系列视频 —— MySQL8零基础入门视频教程 十分照顾初学者,正适合新手村。村民看下来之后觉得很不错,视频内容比较全面,分 P 目录详细,示范操作讲解细致,因此就推荐给大家,但村民也会根据自己的实际需求按照视频的分P标题写一点分享,大家在观看视频的时候可以把村民的教程放在一边进行对照。
上面的命令会创建一个数据库,但是如果当数据库存在时,MySQL会返回创建数据库失败的错误。如果使用下面的命令,在创建的时候如果数据库已经存在,就不会报错,而是返回一个warning信息。
redis: redis 即 Remote Dictionary Server,用中文翻译过来可以理解为远程数据服务或远程字典服务。其是使用 C 语言的编写的 key-value 存储系统。
前言 MySQL/MariaDB是一个开放源码的小型关联式数据库管理系统,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL/Ma
表的存储会出现碎片化,每当删除了一行内容,该段空间就会变为空白 当执行插入操作时,MySQL会尝试使用空白空间,但如果某个空白空间一直没有被大小合适的数据占用,就形成了碎片 当MySQL扫描表时,扫描的对象实际是包含碎片空间的 例如 一个表有1万行,每行10字节,会占用10万字节存储空间 执行删除操作,只留一行,实际内容只剩下10字节 但MySQL在读取时,仍看做是10万字节的表进行处理 所以,碎片越多,就会越来越影响查询性能 查看表碎片大小 01 查看某个表的碎片大小 mysql> SH
这里把自己学的mysql数据库的知识总结一下,当是给自己复习一遍,也是方便以后查询
有如下规则,如果数据表被更改,那么和这个数据表相关的全部Cache全部都会无效,并删除之。这里“数据表更改”包括: INSERT, UPDATE, DELETE, TRUNCATE, ALTER TABLE, DROP TABLE, or DROP DATABASE等。举个例子,如果数据表posts访问频繁,那么意味着它的很多数据会被QC缓存起来,但是每一次posts数据表的更新,无论更新是不是影响到了cache的数据,都会将全部和posts表相关的cache清除。如果你的数据表更新频繁的话,那么Query Cache将会成为系统的负担。有实验表明,糟糕时,QC会降低系统13%[1]的处理能力。
多表查询是指基于两个和两个以上的表查询.在实际应用中,查询单个表可能不能满足你的需求.
今天是《MySQL核心知识》专栏的第4章,今天跟大家一起聊聊MySQL的简单语法。好了,开始今天的正题。
1.ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data/mysql/mysql.sock'
一、mysql默认安装的4个库: 1.information_schema:保存关于mysql服务器所维护的所有的其他数据库的信息,例如:数据库名、数据库中的表名; 2.mysql:记录数据库用户,权限,关键字等。mysql自己需要使用的控制和管理信息; 3.performance_schema:5.5版本新增一个库,用于手机服务器性能参数,且该库中所有的表的存储引擎均为performance_schema; 4.test:测试库,所有用户再test库里都有root权限(一般不会存储有用的信息再test库里) 二.1.创建数据库:create database databasename; databasename是指数据库名称 2.移动到指定的数据库里:use databasename; 3.删除数据库:drop database databasename; 其它用法 1、使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2、创建一个数据库MYSQLDATA mysql> CREATE DATABASE MYSQLDATA; 3、选择你所创建的数据库 mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!) 4、查看现在的数据库中存在什么表 mysql> SHOW TABLES; 5、创建一个数据库表 mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1)); 6、显示表的结构: mysql> DESCRIBE MYTABLE; 7、往表中加入记录 mysql> insert into MYTABLE values (”hyq”,”M”); 8、用文本方式将数据装入数据库表中(例如D:/mysql.txt) mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE; 9、导入.sql文件命令(例如D:/mysql.sql) mysql>use database; mysql>source d:/mysql.sql; 三,数据库的存储引擎: 1.什么是存储引擎:数据库的存储引擎是数据库的底层软件组件,数据库管理系统(Dbms)就是依赖存储引擎来对数据表进行创建,查询,更新和删除操作的。不同的存储引擎提供了不同的存储机制,索引技巧和锁定水平等功能。还可以获得某些特定的功能。现在不同的数据库的管理系统都支持多种不同的存储引擎。mysql的核心就是存储引擎。 2.MySQL的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。在MySQL中不需要所有的表都使用同一种引擎,针对具体的需求每一张表都可以选择不同的存储引擎。 MySQL5.5支持的存储引擎有:InnoDB,MyiSAM,Memory,CVS等。 查看mysql中所有的存储引擎的命令:show engines\G Engine: PERFORMANCE_SCHEMA #引擎名称 Support: YES #mysql是否支持这种引擎 Comment: Performance Schema #mysql对它的评价 Transactions: NO #是否支持事务 XA: NO #是否支持事务的分布式 Savepoints: NO #事务的保存点 1.myisam存储引擎的特点: (1)myisam引擎读取速度快,占用资源少,不支持事务,不支持外键约束,但支持全文索引 (2)读写相互阻塞,也就是说读数据的时候就不能写数据,写数据的时候就不能读数据; (3)myisam引擎只能缓存索引,而不能缓存数据; (4)mysql5.5之前的默认引擎。 使用场景: (1)不需要事务支持的业务,例如银行转账就不适合用myisam引擎; (2)适用于读数据比较多的业务,不适用于读写频繁的业务; (3)并发相对较低的业务(纯读或者纯写的高并发也可以),数据修改相对较少的业务; (4)硬件资源比较差的机器可以考虑多使用myisam引擎。 2.InnoDB存储引擎的特点: (1)事物类数据表的首选引擎,支持事物安全表,支持行级别锁定和外键,mysql5.5之后的默认引擎; (2)具有提交,回滚和崩溃恢复能力的事物安全存储引擎,能处理巨大的数据量,性能及效率高,完全支持外键完整约束条件; (3)具有非常高的效的缓存特性,能缓存索引也能缓存数据,对硬件要求高, (4)使用InnoDB时,将在mysql数据目录创建一个名为ibdata的10M带大小的自动扩展文件,以及两个名为ib_logfile0和ib_logfile1的5M带大小的日志文件。 使用场景:
kafka 不能脱离 zookeeper 单独使用,因为 kafka 使用 zookeeper 管理和协调 kafka 的节点服务器。
从MySQL 5.6.5 开始新增了一种基于 GTID 的复制方式。通过 GTID 保证了每个在主库上提交的事务在集群中有一个唯一的ID。这种方式强化了数据库的主备一致性,故障恢复以及容错能力。
近年来。随着工业生产现场数据采集需求的增多,客户对于数据采集的方式也提出了多种要求。将PLC数据直接采集到数据库便是其中一种。
Flyway是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式。Flyway可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置,Migrations可以写成SQL脚本,也可以写在Java代码中,不仅支持Command Line和Java API,还支持Build构建工具和Spring Boot等,同时在分布式环境下能够安全可靠地升级数据库,同时也支持失败恢复等。
点击上方蓝字每天学习数据库 【迪B课堂】为腾讯云数据库产品经理迪B哥开设的面向数据库开发者、数据库运维人员、云端运维人员的系列培训课程,旨在帮助大家从入门到精通学习和使用数据库。《我说》为迪B课堂的答疑系列,3分钟帮您解决数据库日常运维过程中的小难题。搜索关注腾讯云数据库官方微信,立得10元云代金券,可移动端一键管理数据库。 本期主题是:MySQL表空间碎片产生原因和优化 视频核心信息: 在使用MySQL数据库的过程当中,以下两种场景是大家经常遇到的: 第一,随着业务体量的增大,MySQL数据库可用空间
我们因为各种各样的原因可能需要卸载MySQL或者卸载重装,但是如果MySQL不能清理干净的话是很容易出现问题的。本文就讲讲如何彻底的卸载MySQL,将MySQL从我们的电脑上清理干净。
(1)表的存储会出现碎片化,每当删除了一行内容,该段空间就会变为空白、被留空,而在一段时间内的大量删除操作,会使这种留空的空间变得比存储列表内容所使用的空间更大;
表的存储会出现碎片化,每当删除了一行内容,该段空间就会变为被留空,而在一段时间内的大量删除操作,会使这种留空的空间变得比存储列表内容所使用的空间更大。
MySQL多源复制使副本能够并行接收来自多个数据源的事务。在多源复制拓扑中,副本应该为每个数据源创建一个复制通道。在多源复制拓扑中的一个从服务器上最多可以创建256个通道。每个复制通道必须具有唯一的(非空)名称;
虽然我之前录了一个微人事部署视频(新版微人事部署教程来啦),但是由于这次升级涉及到了 Redis 和 RabbitMQ,所以在本地跑微人事还是一件比较麻烦的事情,有的小伙伴甚至部署失败,所以我也一直在尝试简化部署步骤,这两天给项目加了 Flyway,数据库准备这块算是得到了一定程度简化。
参考资料:https://mp.weixin.qq.com/s/bjKSM7l8upeFcaxNlYmSyA
领取专属 10元无门槛券
手把手带您无忧上云