
SQL
IT1995
每周个人笔记分享,欢迎广大网友查阅!
展开
-
MySQL笔记-mysql -hlocalhost和mysql -h127.0.0.1的不同
我这边有台Linux的机器,搭建了MySQL,端口号是1万开头(非3306),因业务需求,需要再搭建一台MySQL,端口号为3306的,为了方便,我搭建了一个docker版MySQL,启动时做了HOST,端口是3306。一开始以为是iptables转发是不是有问题,就强制写了一条nat转发127.0.0.1到docker网关的规则,但还是不行。应用程序里面也是如此,当输入的是localhost时,连接到宿主机。时,他连接到宿主机(端口号1万开头的那个mysql了,查日志查到的)有意思的地方来了,当我输入。原创 2025-04-28 13:55:18 · 330 阅读 · 0 评论 -
50道MySQL面试题(41-50)
ACL(Access Control List)用于控制连续MySQL的对象。ACL存储在内存中,ACL也被称为权限表。当用户提交SQL命令时,会先判断用户是否有其权限,做这件事情。聚蔟索引:找到了索引就找到了需要的数据,那么这个索引就是聚簇索引。非聚蔟索引:索引的存储和数据的存储是分离的,也就是说找到了索引但没找到数据,需要根据索引上的值(主键)再次回表查询,非聚簇索引也叫做辅助索引。原创 2025-04-07 08:59:23 · 772 阅读 · 0 评论 -
50道MySQL面试题(31-40)
MySQL中主键可以是一列,也可以是几列的组合,用于对数据进行唯一标识。主键不能为NULL或为空。使用ALTER TABLE语句删除表的主键。heap表通常用存储临时数据。BLOB及TEXT字段不允许存在heap中;对比操作仅允许:=,<,>,=>,=<;heap表不支持AUTO_INCREMENT;heap表中不允许将索引设置为NULL。视图中不包含表格内容,视图仅包含行和列,视图是一个虚表。视图可以连接1张或多张表。如果表的底层发生了改变,视图也会跟着进行变化。原创 2025-03-31 08:49:02 · 851 阅读 · 0 评论 -
50道MySQL面试题(21-30)
50道MySQL面试题(21-30)MySQL是一个开源的关系型数据库管理系统(RDMS:Relational Database Management System),使用行和列这样的表格存储结构化数据。使用结构化查询语言(SQL:Structured Query Language)进行访问、管理、操作数据库。MySQL最初起源于瑞士的AB公司,随后被Oracle公司收购,现在也是Oracle公司的产品。MySQL以高性能,高可靠性,使用简单著称,是目前最流行的数据库之一。原创 2025-03-24 08:44:03 · 1070 阅读 · 0 评论 -
50道MySQL面试题(11-20)
MySQL是一个开源的关系型数据库管理系统(RDMS:Relational Database Management System),使用行和列这样的表格存储结构化数据。使用结构化查询语言(SQL:Structured Query Language)进行访问、管理、操作数据库。MySQL最初起源于瑞士的AB公司,随后被Oracle公司收购,现在也是Oracle公司的产品。MySQL以高性能,高可靠性,使用简单著称,是目前最流行的数据库之一。在此将给出50道MySQL面试题。原创 2025-03-17 08:47:42 · 541 阅读 · 0 评论 -
50道MySQL面试题(01-10)
MySQL是一个开源的关系型数据库管理系统(RDMS:Relational Database Management System),使用行和列这样的表格存储结构化数据。使用结构化查询语言(SQL:Structured Query Language)进行访问、管理、操作数据库。MySQL最初起源于瑞士的AB公司,随后被Oracle公司收购,现在也是Oracle公司的产品。MySQL以高性能,高可靠性,使用简单著称,是目前最流行的数据库之一。在此将给出50道MySQL面试题。原创 2025-03-10 08:50:38 · 894 阅读 · 0 评论 -
MySQL笔记-对max_allowed_packet的进一步理解(2024-10-28)
以前都不太喜欢做实施,运维,但是工作6年后,对这些还是比较感兴趣了,毕竟计算机这块不仅仅是开发,还有很多岗位,并且实施和运维会从其他角度加深对某个产品或系统的理解,比如这次的MySQL,在导库时出现的max_allowed_packet相关的报错,以前刚开始工作没多久也遇到过,但没想这么多,就照着网上的方案,敲1,2条命令就解决了。max_allowed_packet 参数针对的是 一次数据交互 或 数据库操作 中的整个数据包,而不仅仅是某条完整的 SQL 语句或某个字段的值。原创 2025-02-17 08:33:06 · 1067 阅读 · 0 评论 -
SQL笔记-DM和Oracle中spool的使用
在开发中spool命令估计用得不多,都是管理工具直接上,看得清清楚楚,明明白白,但在实施和运维过程中和spool命令很重要,因为可能会登陆到别人的服务器,别人的服务器不知道是否有管理工具,但最基础的isql或disql总是有的,但这类工具查出来的,肉眼很难去看。此时就需要使用spool命令,这几天做实施,也是有大神指点,我才知道有这个好用的命令,在项目现场待过的人综合实力都非常的强。在数据库中,spool命令用于将查询的结果输出到文件。在Oracle中,spool命令用于将SQL查询的输出写入文件。原创 2025-01-20 08:29:35 · 309 阅读 · 0 评论 -
SQL笔记-DM和Oracle中spool的使用
在开发中spool命令估计用得不多,都是管理工具直接上,看得清清楚楚,明明白白,但在实施和运维过程中和spool命令很重要,因为可能会登陆到别人的服务器,别人的服务器不知道是否有管理工具,但最基础的isql或disql总是有的,但这类工具查出来的,肉眼很难去看。此时就需要使用spool命令,这几天做实施,也是有大神指点,我才知道有这个好用的命令,在项目现场待过的人综合实力都非常的强。在数据库中,spool 命令用于将查询的结果输出到文件。在Oracle中,spool 命令用于将SQL查询的输出写入文件。原创 2025-01-13 08:45:43 · 288 阅读 · 0 评论 -
MySQL笔记-启动时log报错Table ‘mysql.user‘ doesn‘t exist
我遇到的情况是在凝思操作系统上,已经存在了一个mysql。网上查找了一些资料,卸载,后可能卸载不干净,使用上面命令mysql启动不了。出现的报错和以前卸载前的东西有关。注意basedir和datadir,特别是这个datadir很关键,mysql.user就是在里面。原因是没有进行初始化,可以理解成service mysql start这个命令里面的一小步。这里会出现Table 'mysql.user' doesn't exist报错,启动不了。安装好mysql后,正常使用(使用的是rpm版安装的)原创 2024-12-02 08:50:13 · 637 阅读 · 0 评论 -
MySQL笔记-对mysql.sock.lock认识(2024-06-12)
此篇博文记录到个人笔记的时间为2024-06-12。原创 2024-08-26 08:36:40 · 1372 阅读 · 0 评论 -
MySQL&DM笔记-查询库中是否存在列出的表名及查询库中列出的不存在的表名
'your_database_name_here':替换为实际的数据库。'your_database_name_here':替换为实际的数据库。达梦库需要登陆指定模式的帐号,这样才不会出错。在MySQL库中,查询哪些表名在数据库中。MySQL库中,查询哪些表不在数据库中。达梦库中,查询哪些表名在数据库中。达梦库中,查询哪些表不在数据库中。原创 2024-08-05 08:37:23 · 443 阅读 · 0 评论 -
Oralce笔记-解决Oracle18c中ORA-28001: 口令已经失效
远程已经连不上了,需要登陆到安装Oracle的机器,使用sqlplus直接连。远程登陆后,有可能会出现ORA-28000帐号被锁定。这里也需要登陆到安装Oracle的机器,使用sqlplus直接连。对于已经告警提示密码已过期的数据库,需要重新修改一次密码。原创 2024-07-15 08:44:54 · 681 阅读 · 0 评论 -
SQL笔记-多表查询(合并记录&新增字段)
下面也是需要统计3张表的所有数据,这两张表无关联关系,要求数据拥有相同的字段,在不同的行。这里先说明来下sql语句中UNION和UNION ALL。大于2张表按上面的格式进行修改即可。原创 2024-02-19 08:41:14 · 1185 阅读 · 2 评论 -
Oracle笔记-为表空间新增磁盘(ORA-01691)
原因是Oracle表空间满了,最好是新增一个存储盘。使用上面的命令进行查找,即可。原创 2024-02-05 08:37:29 · 1135 阅读 · 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 · 2066 阅读 · 0 评论 -
Oracle笔记-查看表已使用空间&最大空间
在 Oracle 18c 数据库中,USER_SEGMENTS 是一个系统表,用于存储当前用户(当前会话)拥有的所有段的信息。段是 Oracle 中分配存储空间的逻辑单位,用于存储表、索引、分区、簇等对象的数据。通过查询 USER_SEGMENTS 表,你可以获取当前用户所有段的信息,如表名、大小、扩展信息等。目前以Oracle18c为例,主要是查这个表USER_SEGMENTS。这将返回当前用户拥有的所有表和索引的名称、类型、大小和占用的块数。比如查表目前的空间大小和大小。查看他的spaceName。原创 2024-01-02 08:44:58 · 1941 阅读 · 0 评论 -
DM工作笔记-在windows下对DM7进行库还原&恢复
记住DMAP方式这个不要勾选,然后再获取备份,再还原,再恢复。在windows平台上,将这些备份数据还原到新库中。重要步骤:①获取备份;然后再启动实例就可以了。原创 2023-12-25 08:48:16 · 1312 阅读 · 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 · 5501 阅读 · 0 评论 -
Oracle笔记-对ROWNUM的一次理解(简单分页)
也就是说,Oracle拿到这个数据后,将表中数据进行选择,选择完成后,再进行投影,然后使用rownum对数据标记序号。这个在分页里面用得比较多,在MySQL中,通常使用limit去操作,而去感觉比较简单,Oracle中无此关键字。知道了ROWNUM这些特性后,现在就可以进行分页了,不考虑效率,用最简单的方式就会想到用between关键字。从中可以看到,他的rownum是1,不是2,这里也就是和MySQL中limit不一样的地方。可知,他将查询到的数据添加了序号,从1开始。规定,每页查2条数据。原创 2023-10-09 08:42:51 · 2390 阅读 · 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 · 3026 阅读 · 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 · 1019 阅读 · 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 · 604 阅读 · 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 · 866 阅读 · 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 · 1364 阅读 · 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 · 865 阅读 · 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 · 2774 阅读 · 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 · 1539 阅读 · 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 · 2144 阅读 · 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 · 548 阅读 · 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 · 576 阅读 · 0 评论 -
Oracle笔记-Oracle Net Manager添加监听IP(当服务器IP变化时要用)
这里以window为例:这里的程序为:Net Manager这里添加一个地址,然后将主机填写需要当前局域网的IP地址即可。原创 2020-10-17 09:04:15 · 869 阅读 · 0 评论 -
Oracle笔记-Oracle基本结构及安装启动(windows版)
OracleMySQL一个应用一个数据库Orcale只有一个数据库(全局数据库)Orcale中有实例的概念(后台进程)一个服务器可以建立多个实例。每个实例就相当于一个Oracle。数据文件:bdf表空间(逻辑名字表示多个数据文件)Oracle是由用户和表控件对数据进行管理和存放。但是表不是由表空间去查询的,而是由用户去查询的,因为不同用户可以在同一个表空间建立同一个名字的表!这里就区分用户了。Oracle中,一个数据库下有很多用户,使用用户进...原创 2020-10-17 09:02:15 · 612 阅读 · 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 · 879 阅读 · 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 · 1031 阅读 · 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 · 784 阅读 · 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 · 8898 阅读 · 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 · 2048 阅读 · 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 · 3196 阅读 · 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 · 1440 阅读 · 0 评论