
数据库
乐之者java
个人主页:http://www.roadjava.com/
展开
-
数据库表设计最佳实践
为了表良好的扩展性,设计数据库表的时候需要格外注意,基于多年经验,给出如下最佳的建表模板:CREATETABLE`user_info`(`id`bigint(24)NOTNULLAUTO_INCREMENTCOMMENT'标识',`name`varchar(50)DEFAULTNULLCOMMENT'用户名',--其他业务字段`gmt_created`datetimeNOTNULLDEFAULTCURRENT_TIMESTAM...原创 2021-06-14 16:18:14 · 491 阅读 · 0 评论 -
oracle的rollback用法
rowback作用是回滚,回滚到上次commit之后的状态点,比如:commit;--代表前一个状态已经结束insert....--假设这里做了很多的插入操作savepointa;--保存一个回滚点,命名为adelete...--假设这里做了很多其他dml操作rollbacktosavepointa;--如果上次那个dml操作失败了,就可以通过这条语句回滚到delete...原创 2021-01-26 12:40:03 · 2364 阅读 · 0 评论 -
db2的常用命令
一、假设有个序列seq_msgid:在sql中获取序列的下一个值:selectnextvalueforzhao.seq_msgidfromsysibm.sysdummy1或者valuesnextvalueforzhao.seq_msgid在命令行中又是另一番光景:db2valuesnextvalueforzhao.seq_msgid给序列设置开始值:db2altersequencezhao.seq_msgidres...原创 2020-08-04 10:48:53 · 3681 阅读 · 0 评论 -
nodejs使用tribedb包连接mysql
在nodejs中连接mysql有很多可用的npm包,今天我要说的是使用tribedb来连接mysql,并进行简单的查询。TribeDB是一个MySQL分表分库数据中间件,大致相当于java里面的mycat,当然你用它连接可以使用其分库分表特性,也可以不使用分库分表特性,不使用的话只是少了配置而已。tribedb的官方文档:http://jojoin.github.io/TribeDB/安装tribedbD:\zhao\nodews>npminstalltribedb@^...原创 2020-05-29 09:26:33 · 601 阅读 · 0 评论 -
mysql如何快速查询一个数据库里面每个表有多少条记录
比如现在我有个数据库lzz,里面有很多表,我想要导出里面的数据,但是又怕表数据太多了太浪费时间,我就想如果知道每个表有多少条记录就好了,这样子对导出数据的时间也有个大概的估摸。怎么做到这件事呢?难道对每个表执行一下select count(*) from xxx?如果表大多,复制过来复制过去的麻烦死了。 我们知道,mysql里面有个自带的数据库information_schema,这个information_schema数据库里面的表存放的是你自己建立的数据库的元数据信息,什么元数...原创 2020-05-29 09:26:23 · 7517 阅读 · 3 评论 -
mysql数据库表结构和表数据的导出与导入
mysql数据库表结构和表数据的导出与导入导出1.只导出表结构mysqldump -h数据库ip -u用户名 -p数据库密码 -d 要导出的数据库名>保存在哪个文件例如:D:\programs\mysql\bin>mysqldump-h127.0.0.1-uroot-proot-dlzz>x2.sql2.导出表结构和表数据mysqldump -h数据库ip -u用户名 -p数据库密码 要导出的数据库名>保存在哪个文件例如:D:\p...原创 2020-05-29 09:26:12 · 1065 阅读 · 0 评论 -
mysql连接命令与修改密码
一.连接MySQL的命令mysql的格式格式: mysql [-h主机地址] -u用户名 -p密码-h在连接本机的时候可以省略,-u与用户名之间可以有空格,也可以没有,密码可加可不加,不加的时候,按回车会提示你输入密码。举几个例子:1、连接到本机上的MYSQL打开DOS窗口,然后进入目录mysql的安装目录的bin下,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是如果-p后带有用户密码,那么-p与密码之间必须没有空格,否则让你..原创 2020-05-29 09:26:02 · 326 阅读 · 0 评论 -
mysql解释sql执行计划explain的使用
explain翻译过来是解释的意思,在mysql中可以使用explain这个关键字来查看一段sql的执行计划,从中我们可以获取是否使用了索引,查询类型等有用的信息,通过这些信息可以对我们的sql进行调优。这功能不是mysql独有的,作为一个数据库,这是必须要提供的,比如在db2中,也有类似分析sql执行计划的命令db2explain。分别通过下面几种情况的对比来体会mysql里面的explain的用处吧。一、全表查询EXPLAINSELECT*fromadc_user执行结果:...原创 2020-05-27 20:32:59 · 531 阅读 · 0 评论 -
mysql的rand()随机数函数
一、rand()函数的基本含义mysql的rand()函数生成0-1之间的随机数,你也可以把rand()的结果与其他值做运算,以得到自己想要的随机数范围。selectRAND(),RAND()*10,FLOOR(RAND()*100)执行结果:二、mysql rand()函数的实际运用rand()可以很巧妙的实现从数据表里面随机抽取若干条记录,通过order by rand() 就可以实现:selectid,task_idFROMtmp_dwapp_operati...原创 2020-05-27 20:32:47 · 10101 阅读 · 0 评论 -
关于数据库sql的一些笔记
-- select的字段可以使常量,可以包含函数,也可包含表达式SELECT s.id,s.`name`,CASEwhen s.`status`=1 THEN '打开'when s.status=0 THEN '关闭'ELSE '未知状态'END as "状态"from surveys s--sql的逻辑处理过程:先笛卡尔积,再用on筛选,再照抄左边的表,where条件筛选,group by ,having,select,order...原创 2020-05-21 00:08:20 · 145 阅读 · 1 评论 -
db2常用命令荟萃
--查看是否过期或版本(许可证中心)db2licm -l/db2pd -version -osinfo--查询数据库的隔离级别db2pd -db sample -dynamic--锁等待分析:最终得到sql1.db2pd -db sample -locks wait showlocks2.select tabschma,tabname from syscat.tables where tbspaceid=2 and tableid=63.得到应用程序id:db2pd -db s.原创 2020-05-21 00:08:03 · 686 阅读 · 0 评论 -
mysql数据类型float、double、decimal区别
float、double、decimal区别与联系:1.float与double都浮点类型,而decimal是定点类型2.三者都可以使用(M,D)的形式来声明,比如float(5,2),double(5,2),decimal(5,2),M表示总共长度,D表示小数点后面的长度;3.float、double、decimal也都可以什么用也不加的方式来定义,比如 num1float,num2 double, num3 decimal,在这种情况下,float、double默认会按你实际存入的数..原创 2020-05-14 21:40:05 · 1690 阅读 · 0 评论 -
oracle 11g express的安装与使用
记得以前使用oracle的时候是使用的oracle 9i,oracle 10g,这段时间搞了个oracle 11g express,下载了个免费版的,却发现连实例名字也没法指定,它给你指定好了,就叫XE,不能改变的,倒是很不同呀,express版本是oracle提供的免费版本,同时连接的人数,使用的cpu的最大值都有限制,我也是不得已要要用一下oracle,个人谁用得起啊,记载下来它的安装过程吧。不想去官网下载的可以在这里下载OracleXE112_Win64.zip(windows 64位版本):ht原创 2020-05-12 21:59:55 · 668 阅读 · 0 评论 -
skip-grant-tables解决mysql忘记了root密码的问题
今天连接mysql5.7的时候出现了如下的错误,连接不上:[root@node113 ~/installs]#mysql -hlocalhost -uroot -pEnter password:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)[root@node113 ~/installs]#mysql -hlocalhost -uroot -p只有先配置mysql让m.原创 2020-05-10 11:06:21 · 359 阅读 · 0 评论 -
mysqld_safe The file /usr/local/mysql/bin/mysqld does not exist or is not executable
安装mysql5.7完成之后,执行service mysql start命令启动mysql,却报了如下错误:[mysql@node113 ~]$ service mysql startStarting MySQL.2018-01-11T07:59:43.669963Z mysqld_safe The file /usr/local/mysql/bin/mysqlddoes not exist or is not executable. Please cd to the mysql instal.原创 2020-05-08 23:59:29 · 2496 阅读 · 0 评论 -
SQL1047N The application is already connected to another database.
db2执行创建数据库命令的时候,报错:SQL1047N The application is already connected to another database.详细信息如下:[db2opt1@node112bin]$db2createdbftz;SQL1047NTheapplicationisalreadyconnectedtoanotherdat...原创 2020-05-06 23:19:19 · 1598 阅读 · 0 评论 -
db2安装完成之后如何创建db2的SAMPLE数据库
db2安装完成之后如何创建db2的SAMPLE数据库呢?一、切换到/opt/ibm/db2/V10.5/bin目录,这个目录是db2安装的默认路径,在这个目录下有个名为“db2sampl”的脚本,直接执行就行了。[db2opt1@node112bin]$./db2samplCreatingdatabase"SAMPLE"...Connectingtodata...原创 2020-05-06 23:18:23 · 1582 阅读 · 0 评论 -
mycat的引入以及如何安装
1.问题一:不知道大家有没有听说过“分库分表”的概念?没听说过,好,现在听说了,听说过,那么我请问什么是分库分表?因为我不是在帮你总结面试题,我自然也不会拿那些冠冕堂皇的话来忽悠人。分库分表你需要分开来理解,所谓分库,就是由多个数据库来存储某个项目用到的数据。打个比方,我的乐之者cms用的mysql数据库只有一个,名字假如叫做lzzcms,做了分库之后,使用了3个数据库,名字分...原创 2020-04-28 00:11:01 · 334 阅读 · 1 评论 -
mysql配置之max_allowed_packet
max_allowed_packet控制的是mysql服务器端和客户端在一次传送数据包的过程中所允许的数据包的最大大小,我本地的mysql是5.5.29,看下默认配置:mysql>showvariableslike'%max_allowed_packet%';+--------------------------+------------+|Variable_name...原创 2020-04-25 00:17:53 · 641 阅读 · 0 评论 -
mysql5.5.48 rpm版本安装
mysql安装的话主流的还是源码方式安装,但是以rpm方式安装也是可以的。这里安装的是MySQL-client-5.5.48-1.linux2.6.i386.rpm和MySQL-server-5.5.48-1.linux2.6.i386.rpm01.查看是否安装过mysqlrpm-qa|grep-imysql02.安装server端rpm-ivhMySQL-ser...原创 2020-04-25 00:15:47 · 328 阅读 · 0 评论 -
阿里云centos 7.2压缩包形式安装mysql-5.6.36-linux-glibc2.5-x86_64
mysql(解压在/usr/local/mysql)删除mariadb:rpm-qa|grepmariadbrpm-e--nodepsmariadb-libs-5.5.44-2.el7.centos.x86_64下载mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz并上传至/root/installs:groupaddmysq...原创 2020-04-25 00:14:29 · 230 阅读 · 0 评论 -
mysql配置忽略表名大小写
在windows安装mysql倒是没有碰到过这种问题,在linux的有些系统中安装了mysql之后,默认的mysql配置是区分表名大小写的,这句话怎么讲呢?比如说吧,我现在有个表名是a,不管是在客户端还是在程序中操作数据库的时候,如果我写成:select*fromalimit0,1是没有问题的,但是如果我写成select*fromAlimit0,1就会报 "...原创 2020-04-23 22:14:14 · 7494 阅读 · 0 评论 -
mysql表间数据的拷贝
紧接着上一篇mysql从已有表创建新表,现在假如我创建好了一个新表b,这个表b里面的数据从其他源头推送过来之后,有好几十万,需要把这好几十万的数据保存到表a中,我们可能知道sql中有select into...from....的用法,但这里我们用的是insert into,他们之间的区别我在文章后边说:INSERTINTOtmserver_enterprise_credit_db_...原创 2020-04-21 22:26:24 · 185 阅读 · 0 评论 -
mysql从已有表创建新表
有个情景是这样的:在mysql中,需要创建一张表b,要求b的表结构和现有表a的表结构一模一样,你可能会想到直接拷贝表a的创建语句(可以通过show create table a得到表a的创建语句),改下表名就可以了吧,没错,这样是可以的,但是我现在除了上边的要求,还要求在创建表b后放10条数据进去,那你又说了,我可以从表a中复制10条粘贴进去啊,好,没问题,要是我要求放到表b中1000...原创 2020-04-21 22:22:04 · 2129 阅读 · 0 评论 -
mysql的lpad函数
lpad:即left padding的简称,意思是左边填充,格式为lpad(str,len,padstr)。参数说明:str:要处理的对象len:处理完后的str长度为lenpadstr:如果str的长度小于len指定的值,那么长度差由padstr在左边填充;如果str的长度大于len指定的值,则截取str到len指定的长度。返回...原创 2020-04-20 22:20:19 · 13915 阅读 · 0 评论 -
db2look与db2move
说明:db2look用于导出结构,而db2move则用于导出数据。一.db2数据库中,导出所有schema下的表结构、序列、函数、存储过程、视图等所有数据库对象:db2look-dftzmisdb-izhao-wzhao1234-a-e-odb2look.sql参数解释: -d 即database,指定数据库名字 -i ...原创 2020-04-19 14:35:51 · 602 阅读 · 0 评论 -
mysql的date_format函数与日期运算
学习java的时候有DateFormat,里面有日期格式化的格式,什么'%Y'代表四位的年之类的,总是记不住,去查文档吧,一大堆介绍让我感到眼花缭乱的。后来又接触到mysql的date_format函数,又是一大堆,而且大部分的格式我也用不到,所以在这里做个简洁的记载,顺便写几个例子吧。 mysql的date_format函数功能:可以让我们获取日期的任意一部分,包括年月日时分秒以及...原创 2020-04-19 13:59:48 · 3743 阅读 · 0 评论 -
mysql的greatest和least函数
GREATEST(value1,value2,...)函数用于得到value1,value2,...中的最大值,value1,value2,...可以是数值也可以是时间,都可以比较出来。least(value1,value2,...)和greatest(value1,value2,...)类似,只不过是取的最小值。下面的例子就只以greatest(value1,value2,...)函数来进...原创 2020-04-19 13:57:31 · 1170 阅读 · 0 评论 -
mysql的group_concat函数
今天,遇到了一个这样的情景,从mysql的表中筛选出当天数据的id字段,并展示在页面上,以逗号分隔。自己也没多想,轻松愉快的查出来了id总成的list<Integer>,然后循环判断拼接,总成类似“1,2,3,4,5”的格式,有毛病吗?没毛病,但是可以更简单的实现,就是使用mysql的group_concat函数。先看看格式:group_concat(表达式 [or...原创 2020-04-19 13:55:57 · 144 阅读 · 0 评论