SQL
IT1995
每周个人笔记分享,欢迎广大网友查阅!
展开
-
MySQL笔记-对mysql.sock.lock认识(2024-06-12)
此篇博文记录到个人笔记的时间为2024-06-12。原创 2024-08-26 08:36:40 · 670 阅读 · 0 评论 -
MySQL&DM笔记-查询库中是否存在列出的表名及查询库中列出的不存在的表名
'your_database_name_here':替换为实际的数据库。'your_database_name_here':替换为实际的数据库。达梦库需要登陆指定模式的帐号,这样才不会出错。在MySQL库中,查询哪些表名在数据库中。MySQL库中,查询哪些表不在数据库中。达梦库中,查询哪些表名在数据库中。达梦库中,查询哪些表不在数据库中。原创 2024-08-05 08:37:23 · 319 阅读 · 0 评论 -
Oralce笔记-解决Oracle18c中ORA-28001: 口令已经失效
远程已经连不上了,需要登陆到安装Oracle的机器,使用sqlplus直接连。远程登陆后,有可能会出现ORA-28000帐号被锁定。这里也需要登陆到安装Oracle的机器,使用sqlplus直接连。对于已经告警提示密码已过期的数据库,需要重新修改一次密码。原创 2024-07-15 08:44:54 · 370 阅读 · 0 评论 -
SQL笔记-多表查询(合并记录&新增字段)
下面也是需要统计3张表的所有数据,这两张表无关联关系,要求数据拥有相同的字段,在不同的行。这里先说明来下sql语句中UNION和UNION ALL。大于2张表按上面的格式进行修改即可。原创 2024-02-19 08:41:14 · 993 阅读 · 2 评论 -
Oracle笔记-为表空间新增磁盘(ORA-01691)
原因是Oracle表空间满了,最好是新增一个存储盘。使用上面的命令进行查找,即可。原创 2024-02-05 08:37:29 · 1031 阅读 · 1 评论 -
MySQL笔记-information_schema库中COLUMNS表的一些笔记
请将your_database_name替换为你的数据库名称,your_table_name替换为你的表名称,以及your_column_name替换为你要查询注释的列名称。information_schema.COLUMNS是information_schema数据库中的一个表,它存储了关于数据库中所有表的列信息。然而,普通用户只能查询与其有关的数据库和表的元数据信息,而无法查询其他用户的数据库和表的元数据信息。管理员用户具有更高的权限,可以查询所有数据库和表的元数据信息。原创 2024-01-22 11:14:10 · 1598 阅读 · 0 评论 -
Oracle笔记-查看表已使用空间&最大空间
在 Oracle 18c 数据库中,USER_SEGMENTS 是一个系统表,用于存储当前用户(当前会话)拥有的所有段的信息。段是 Oracle 中分配存储空间的逻辑单位,用于存储表、索引、分区、簇等对象的数据。通过查询 USER_SEGMENTS 表,你可以获取当前用户所有段的信息,如表名、大小、扩展信息等。目前以Oracle18c为例,主要是查这个表USER_SEGMENTS。这将返回当前用户拥有的所有表和索引的名称、类型、大小和占用的块数。比如查表目前的空间大小和大小。查看他的spaceName。原创 2024-01-02 08:44:58 · 1485 阅读 · 0 评论 -
DM工作笔记-在windows下对DM7进行库还原&恢复
记住DMAP方式这个不要勾选,然后再获取备份,再还原,再恢复。在windows平台上,将这些备份数据还原到新库中。重要步骤:①获取备份;然后再启动实例就可以了。原创 2023-12-25 08:48:16 · 1259 阅读 · 0 评论 -
DM工作笔记-DATEADD(指定日期添加n个时间段)函数和其他时间函数
这里先介绍这样的一个函数,因为上面的CREATE_TIME是TIMESTAMP类型。所以这里要用NOW(),用来获取当前时间戳。如果再有这样的一个需求,离现在(当前时刻)2小时外的数据是过期数据,把这些过期数据拧出来。现在有个需求,让CREATE_TIME添加,2秒,2分钟,2小时,2年。达梦官方文档已经说得很清楚了,在此仅记录下笔记,方便以后进行查阅。这里说明下CREATE_TIME是TIMESTAMP类型。TIMESTAMPDIFF用于返回时间间隔。原创 2023-10-16 08:42:14 · 4111 阅读 · 0 评论 -
Oracle笔记-对ROWNUM的一次理解(简单分页)
也就是说,Oracle拿到这个数据后,将表中数据进行选择,选择完成后,再进行投影,然后使用rownum对数据标记序号。这个在分页里面用得比较多,在MySQL中,通常使用limit去操作,而去感觉比较简单,Oracle中无此关键字。知道了ROWNUM这些特性后,现在就可以进行分页了,不考虑效率,用最简单的方式就会想到用between关键字。从中可以看到,他的rownum是1,不是2,这里也就是和MySQL中limit不一样的地方。可知,他将查询到的数据添加了序号,从1开始。规定,每页查2条数据。原创 2023-10-09 08:42:51 · 2348 阅读 · 0 评论 -
MySQL笔记-group by和聚合函数的使用
group by:其实就是分组,把同类的组,数据放到一起,然后用聚合函数去统计。下面是详细的说明。对应的SQL如下:SELECT * FROM fund_earning_2022 ORDER BY create_time DESC如下数据内容:这里用2个域来测试下:SELECT create_time, day_growth FROM fund_earning_2022 ORDER BY create_time DESC如果用这样的SQL语句:SELECT cr原创 2022-03-21 08:53:59 · 2902 阅读 · 4 评论 -
MySQL笔记-删除session,删除阻塞任务
对应的关键字:Waiting for table metadata lock主要的命令如下: show processlist; kill 10086; select * from information_schema.innodb_trx\G;查processlist和killmysql> show processlist;+----+-----------+-----------------------+-----------+---------+------+--原创 2022-03-18 10:27:25 · 947 阅读 · 3 评论 -
SQLyog笔记-CURRENT_TIMESTAMP在SQLyog的配置
如下,这样的sql语句`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,对应的SQLyog要有如下配置:原创 2022-03-18 10:26:11 · 552 阅读 · 1 评论 -
MySQL笔记-Windows安装MySQL5.7
首先下载MySQL5.7https://downloads.mysql.com/archives/community/解压后新建my.ini内容如下:[client]port=3306default-character-set=utf8[mysql]default-character-set=utf8[mysqld] #设置3306端口 port=3306 # 设置mysql的安装目录 basedir=D:\mysql5.7\mysql-5.7.12-winx64原创 2022-03-07 09:02:39 · 822 阅读 · 3 评论 -
MySQL笔记-SQL语句中可以使用单引号包裹任意类型
最近看了个大佬写的PHP项目,在此膜拜下。其中发下如下几句: public function autoUpdate($id,$data){ $where = " where {$this->fields['Key']} = '{$id}'"; $sql = "update {$this->getTable()} set "; foreach($data as $key => $value){ $sql原创 2022-01-10 12:18:44 · 1298 阅读 · 0 评论 -
MySQL笔记-utf8和utfmb4
最近买了本黑马程序员的php的书看,发现了一个知识盲区,在此记录下。方便以后查阅。MySQL中常用字符集有latin1、gbk、utf8字符集 单字符最大长度 支持的语言 latin1 1字节 西欧字符、希腊字符等 gbk 2字节 简体和繁体中文、日文、韩文等 utf8 3字节 世界上大部分国家的文字 但下面这一点要注意:其中utf8mb4中的mb4为most byte 4。...原创 2022-01-03 11:11:28 · 807 阅读 · 0 评论 -
Oracle笔记-USRS01.DBF文件过大,解决办法
在客户那边跑了1年多的程序没有出现问题,在公司弄了个开发环境,隔个几个星期就出一次问题。发现是公司这边缺乏运维人员造成的,说明都是靠开发自己干。一个字累。这次,家里面测试环境突然间异常了,程序还在运行,但反应相当迟钝。最后查了下,搭建Oracle的那台机器只有几百MB的空间了。发现一个USERS01.DBF的文件巨大,差不多30多GB了。因为是家里面的测试环境,这里可以乱搞下。alter database datafile 'C:\contnet\oradata\ORCL\USE.原创 2021-12-14 13:42:55 · 2443 阅读 · 0 评论 -
MySQL笔记-查询进程列表(查客户端IP、使用的用户、当前状态、ID号、使用的库)及断开客户端连接
查询进程列表:SELECT * FROM information_schema.processlist这里ID就是客户端连接到MySQL的ID号,USER为连接的用户,HOST为客户端主机号,DB为操作的DB等等等等。使用kill id端口连接如:kill 4703...原创 2021-07-20 08:03:23 · 1418 阅读 · 0 评论 -
SQL笔记-Oracle中varchar和varchar2的区别
在建表中发现一个varchar和varchar2,以前不注意,今天来查了下,这2个的区别。Oracle和DM都存在这个东西:这里我操作空字符串,Navicat都会转成null(不管是varchar还是varchar2),在此不测试了。他们的区别就是:varchar区分NULL和空;varchar2不区分,如果在项目中empty和null表示一个意思,就用varchar2...原创 2021-07-13 12:35:34 · 2002 阅读 · 0 评论 -
SQL笔记-检索出ID为Int或Long中不连续的第一个点
命令如下:select MY_ID+1 from TableName where MY_ID+1 not in(select MY_ID from TableName) and MAP_ID+1<>(select max(MY_ID)+1 from TableName) limit 1解析下:原创 2021-06-08 08:53:11 · 509 阅读 · 0 评论 -
Java笔记-jdbc传输clob到Oracle数据库
Oracle有个很刺激的地方,就是clob可以存文件,但是sql语句里面,单条的数据不能超过4000,11g版本用||这个就能解决,18c的版本就不能用这个了,在此记录下jdbc存储clob。后面一片博文将说明clob在sql语句里面该怎么存。 PreparedStatement stat = connection.prepareStatement(split[0]); String clobContent = split[1]; StringRea.原创 2020-10-28 06:47:10 · 539 阅读 · 0 评论 -
Oracle笔记-Oracle Net Manager添加监听IP(当服务器IP变化时要用)
这里以window为例:这里的程序为:Net Manager这里添加一个地址,然后将主机填写需要当前局域网的IP地址即可。原创 2020-10-17 09:04:15 · 824 阅读 · 0 评论 -
Oracle笔记-Oracle基本结构及安装启动(windows版)
OracleMySQL一个应用一个数据库Orcale只有一个数据库(全局数据库)Orcale中有实例的概念(后台进程)一个服务器可以建立多个实例。每个实例就相当于一个Oracle。数据文件:bdf表空间(逻辑名字表示多个数据文件)Oracle是由用户和表控件对数据进行管理和存放。但是表不是由表空间去查询的,而是由用户去查询的,因为不同用户可以在同一个表空间建立同一个名字的表!这里就区分用户了。Oracle中,一个数据库下有很多用户,使用用户进...原创 2020-10-17 09:02:15 · 575 阅读 · 0 评论 -
MySQL笔记-Slave_IO_Running:No【Could ... ... in binary log index file (server_errno=1236)】
这里主要是做主备的时候会出现这种问题:一点要确定主库的binlog.000054与从库的一样的。本人遇到这问题的原因是在my.cnf中:[mysql]#pid_file=/u01/mysql3306/run/mysqld.pid#pid_file=/u01/mysql3306/data/localhost.localdomain.pidhost=192.168.79.136使用mysql总是连接到136这个从库,导致主库中binlog找不到,这一点要注意。在主库中查看:.原创 2020-06-06 22:55:54 · 843 阅读 · 1 评论 -
MySQL笔记-MHA(Master High Availability)搭建
这里以在Linux上个演示。这里在SSH免密码登录的前提上个进行设置的。如何设置免密登录,请看前一篇博文,或者搜索下,在此不再给出链接。同样的3台主机名称 ip Centos 7 MySQL Master 192.168.79.134 Centos 7 MySQL Slave 192.168.79.136 Centos 7 MySQL Manager 192.168.79.137 三台主机全部安装依赖:yum inst..原创 2020-06-06 16:39:43 · 979 阅读 · 0 评论 -
MySQL笔记-简单配置主从库
这里以2台MySQL为例进行实验:Master库:ip:192.168.79.134Slave库:ip:192.168.79.136主库修改或增加/etc/my.cnf为:[mysqld]server_id=1log-bin=mysql-bin从库增加或修改/etc/my.cnf[mysqld]server-id=2然后重启主库及从库service mysqld restart在主库中增加帐号并授予权限:CREATE USER ...原创 2020-06-06 10:23:41 · 751 阅读 · 0 评论 -
DM工作笔记-dimp及dexp的使用及解决该工具不能解析此文件,请使用更高版本的工具
再DM的bin目录下有下面2个程序:dimp导入dump文件的查看其help文件:dexp导出demp文件的查看其help文件:下面每一个给出一个示例:导出dmp文件dexp USERID=SYSDBA/SYSDBA FIEL=/home/要存的文件路径/文件名.dmp TABLE=哪个模式.哪个表导入dmp文件dimp USERID=SYSDBA/SYSDBA FILE=/home/要存的文件路径/文件名.dmp如果出现如下问题原因是出现,..原创 2020-05-29 10:30:30 · 7856 阅读 · 0 评论 -
MySQL笔记-解决...mysql.sock (13)(两种情况会产生此问题)
遇到这个mysql.sock(13)一般是两种情况。一个是mysql.sock权限不够,最少要个775权限:chmod -R 775 /var/lib/mysql/如果嫌烦的话赋予777就可以了chmod -R 777 /var/lib/mysql/第二个情况是Linux的SELinux没关首先要临时关闭,然后永久关闭:setenforce 0vim /etc/selinux/config将其设置为disableSELINUX=disabled...原创 2020-05-17 09:46:39 · 1917 阅读 · 2 评论 -
DM工作笔记-查看会话(session)信息与关闭会话
刚刚写库的时候被阻塞了,估计是有死锁,感觉达梦没有MySQL智能,没有超时解锁的功能,查了下DM官方文档,解决了此问题,在此记录下。如下命令查询sessionSELECT SESS_ID,SQL_TEXT,STATE,CREATE_TIME,CLNT_HOST FROM V$SESSIONS;记得按下创建时间的排序。这里有state有几个状态,官方是这样解释的:找到对应表的sql干掉他就可以了。SP_CLOSE_SESSION关闭session函数定义..原创 2020-05-15 10:19:25 · 2720 阅读 · 0 评论 -
MySQL笔记-MySQL5.7解决root创建用户出现ERROR 1044(42000): Access denied for user
如下:grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';这里主要是权限问题查下user;desc user;将所有的enum设置为Y。一个是用命令:update一个是用工具:然后重新刷新下权限就好了。...原创 2020-05-14 23:54:31 · 1402 阅读 · 0 评论 -
MySQL笔记-MDL锁(metadata lock)
MySQL5.5版本引入了MDL锁(metadata lock),用于解决或保证DDL操作与DML操作之间的一致性。在mysqldump的时候不能做DDL操作,会提示waiting for table metadata lock;做DDL操作没办法保护事务,因此引入了metadata lock。如下时序图:如果没有MDL锁保护,那么session2,就会直接执行DDL操作,这样会导致ses...原创 2020-05-05 19:52:21 · 1663 阅读 · 0 评论 -
MySQL笔记-死锁原理与分析及InnoDB中如何减少死锁
根据InnoDB的加锁规则(Record Lock、Gap Lock、meta data lock)可以写出不会发生死锁的SQL语句,也能定位出产生死锁的原因。死锁产生的原因:产生回路:两个或两个以上的事务在执行过程中,分别持有一把锁,然后再加一把锁(AB-BA)产生死锁。加锁顺序不一致:两个或两个以上的事务并发执行(同一时刻),因争夺资源而造成的一种互相等待,产生死锁。...原创 2020-05-05 19:18:26 · 1862 阅读 · 0 评论 -
MySQL笔记-InnoDB中Record Lock与Gap Lock
锁:用于在多个事务访问同一个对象时根据这些操作访问同一对象的先后次序给事务排序。不同数据库的锁实现:InnoDB:行级锁;Oracle:行级锁;MyISAM:表级锁;Microsoft SQL Service:行级锁、锁升级InnoDB存储引擎中的锁:表级锁:IS(意向共享锁):事务给行加共享锁时会先取得该表的IS锁;IX(意向排他锁):事务给行加排...原创 2020-05-05 11:13:23 · 1376 阅读 · 0 评论 -
MySQL笔记-事务理论及并发存在的三个问题(脏读、不可重复读、幻读)演示
事务定义了一个服务操作序列,由服务器保证这些操作序列在多个客户并发访问和服务器出现故障情况下的原子性。事务是在数据库管理系统领域发展起来的,是一种对共享数据库进行并发访问或错误处理的泛型。在数据库中操作DML(insert,update,delete,select)或DDL(创建,改变表结构)都会发生事务。事务的4个属性:ACID:原子性、一致性、隔离性、持久性。解决原子性的...原创 2020-05-05 08:03:43 · 1276 阅读 · 0 评论 -
MySQL笔记-binlog理论及binlog回滚恢复数据
binlog:MySQL数据库的二进制日志,记录用户对数据库操作的SQL语句(select除外),使用mysqlbin可以查看其内容binlog有三种:1. STATMENT:基于SQL语句的复制,每一条会修改数据的sql语句会被记录到binlog中。2.RBR:基于行的复制,不记录每一条SQL语句的上下文信息,仅记录哪条数据被修改成什么样。3. MBR:混合模式复制,上面两...原创 2020-05-04 17:15:31 · 3071 阅读 · 0 评论 -
MySQL笔记-centos7安装MySQL5.7.25(glibc版)
首先把源码下载下来,上传后解压:tar -zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz这里我创建了一个目录,把解压的东西放到了/u01/mysql3306如下:这里有几个新创建的文件夹:tmp,run,log,data,随后创建一个文件夹:/etc/my.cnf内容如下:[client]port=3306...原创 2020-05-01 16:14:54 · 1915 阅读 · 0 评论 -
SQL工作笔记-达梦7存储过程中游标的使用(for循环 IF等)
表如下:如下存储过程使用游标遍历所有数据:CREATE OR REPLACE PROCEDURE "CFFTEST"."SELECT_STUDENT"("id" IN INT)AS myId int; myName varchar(50); cursor myCursor is select id, name from cfftest.student;BEGI...原创 2020-04-26 17:52:57 · 7905 阅读 · 3 评论 -
MySQL笔记-解决InnoDB: Could not find a valid tablespace file for 'mysql/innodb_index_stats'
这里主要是./mysql_install_db时会出现的。如下的问题:这里主要的问题是:my.cnf权限问题,这里文件的权限为777。这是不安全的。主要是因为my.cnf中的[mysqld]中的datadir找不到。把权限设置为:644即可./mysql_install_db --basedir=/u01/mysql3307/ --datadir=/u01/mysql33...原创 2020-04-25 23:00:49 · 6312 阅读 · 3 评论 -
MySQL-线上删除表流程
如下,先创建这个库和表:create database it1995;use it1995;create table test( id bigint auto_increment, name varchar(32), primary key(id))engine=InnoDB default charset=utf8我们把表进行大量插入数据:insert...原创 2020-04-25 16:07:50 · 2391 阅读 · 0 评论 -
MySQL笔记-免密码登录小技巧(运行参数填写skip-grant-tables)
一般忘记密码的我们会修改/etc/my.cnf,在mysqld下面加上skip-grant-tables然后重启,即可。这里有个更简单的方法,今天看别的资料的时候看到的,在此记录下:在运行的时候加上 --skip-grant-tables./mysqld --user=root --skip-grant-table这样即可:...原创 2020-04-25 15:33:41 · 2496 阅读 · 0 评论