关系型数据库
文章平均质量分 75
关系型数据库 mysql oracle
干了这杯柠檬多
运气是实力的一部分,但我运气向来不好,所以只能靠实力去弥补!
展开
-
mysql查询条件有两个独立的索引同时,mysql使用谁
先说一下结论:哪个索引区分度大,筛选更快就使用哪个验证一下来一张测试表建表语句CREATE TABLE `a` ( `id` int(255) DEFAULT NULL, `index1` varchar(255) DEFAULT NULL, `index2` varchar(255) DEFAULT NULL, KEY `index1` (`index1`), KEY `index2` (`index2`)) ENGINE=InnoDB DEFAULT .原创 2021-03-19 09:15:31 · 5957 阅读 · 0 评论 -
mysql limit分页(偏移量)过大时优化问题
先说一下limit分页语法select * from user_address limit 100000,10limit后跟两个参数,第一个参数为从第几个数据开始,第二个参数为取多少个数据。第一个参数也叫偏移量,初始值是0如果数据量很小,这么写分页当然没问题,但是当数据量大起来的时候,查询速度就会慢很多。如:select * from user_address limit 100,10 查询用时0.011Sselect * from user_address limit 100000原创 2020-05-25 15:15:19 · 3727 阅读 · 0 评论 -
随笔 mysql 定时任务
mysql定时任务设置默认情况下是关的,需要开启。临时开启为(重启mysql就没了)SET GLOBAL event_scheduler = 1;linux永久开启:vi /etc/my.cnf在[mysqld]下添加一行event_scheduler=ON语法:创建定时任务:create EVENT 事件名on SCHEDULE 频率 时间 时间单位DO sql语句例子:create EVENT user_inserton SCHEDULE EVERY原创 2020-05-14 16:01:56 · 184 阅读 · 0 评论 -
索引真的很重要 !!
一、索引是什么索引用来快速地寻找那些具有特定值的记录,所有的MySQL索引都以B-树的形式保存。如果没有索引,执行查询的时候MySQL必须从第一个记录开始扫描整个表中的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录既可迅速得到目标记录所有在位置。如果表有1000个记录,通过索引查找记录至少比顺序扫描记录快100倍。我用了一张20W数据量的表,自己左连接自己(为了增加数据量)。使用索引,查询全部用了6S原创 2020-05-12 11:30:56 · 409 阅读 · 0 评论 -
mysql经典问题之group by和max函数
原表为:type=科目,score=成绩题目:查出每个科目成绩最高的人如果这样使用select name,type,max(score) from order_test GROUP BY type结果为:发现第三条数据和原来的数据不一致。这时就要了解一个特性,group by分组后,则返回的是第一条记录的基本信息的特性就是因为这一特性导致我们查的数据不一致,需...原创 2020-05-06 15:26:28 · 4690 阅读 · 8 评论 -
order by a desc,b desc与order by a,b desc的区别
表为:通过下面sql看出 order by 默认是asc 。相当于select * from order_table order by id1 asc通过下面两个图可知,select * from order_table order by id1,id2desc不等于select * from order_table order by id1 desc,id2desc....原创 2020-05-06 14:40:13 · 6835 阅读 · 0 评论 -
Lock wait timeout exceeded; try restarting transaction手动解锁
select * from information_schema.innodb_trx查出线程号kill 线程号原创 2020-04-13 16:10:50 · 194 阅读 · 0 评论 -
mysql 格式化时间 年月日时分秒与年月日字符串作比较
select addtime from ecom_order where date_format(addtime,'%Y%m%d')<'20190927';addtime为数据库字段,类型为timestamp,数据为2019-09-24 16:41:4420190927为传的参数,字符串类型。该语句可查出2019年9月27日之前的数据。...原创 2019-09-27 13:59:41 · 2793 阅读 · 0 评论 -
mysql命令行的方式导入和导出sql文件
导入sql文件1、打开cmd,进入mysql的bin文件夹下2、连接数据库mysql -uroot -p123456 -h127.0.0.1-h,指定ip地址,默认为localhost-u,指定用户名-p,指定密码3、选择数据库use 数据库名;4、执行数据库文件source /usr/local/crazy/file/test.sql导出sql文件1、打开c...原创 2019-09-11 11:57:35 · 369 阅读 · 0 评论 -
mysql将几张字段重复的表合并为一张
需求:省市县 字段相同 要何为一张表,使之可以操作生成json格式mysql使用unionUNION 操作符用于合并两个或多个 SELECT 语句的结果集。UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。...原创 2019-07-01 10:26:59 · 1275 阅读 · 0 评论 -
mysql数据库获得1分钟后的时间
update acct_member set TempVerifyCodeTime=DATE_ADD(now(),INTERVAL 1 MINUTE),addtime =now() where memberID=1016DATE_ADD(now(),INTERVAL 1 MINUTE)即为将当前日期加1分钟DATE_ADD(要变动的时间,INTERVAL 数量 单位)具体见...原创 2019-06-20 18:08:50 · 1985 阅读 · 0 评论 -
mysql如何获取刚插入的主键id
第一种方法:首先插入一条数据INSERT into ecom_order(MemberID,GoodsTotalCounts,GoodsTotalFee,SAID,OrderTime,Status,AddTime,Remark) VALUES(1016,5,360,8,now(),1,now(),'无')使用如下查询SELECTLAST_INSERT_ID(); 即可获取第二种方...原创 2019-06-05 14:14:03 · 9072 阅读 · 0 评论 -
SQL——为什么 10,11 这些会排在 2 的前面?
都是字符类型的,比较的时候当然是'10'<'2'解决方法:可以左填充0SELECT id,NameFROM tab_nameORDER BY LPAD(id,'0',10)原创 2018-11-26 22:38:24 · 10540 阅读 · 3 评论 -
sql获得表列名
select column_name from user_tab_columns where table_name='表名' 可以得到一列表名。原创 2018-11-28 22:28:52 · 792 阅读 · 0 评论 -
oracle查询习题(一)
1. 查询平均工资最高的部门的部门编号、部门名称和该部门的平均工资select d.deptno 部门编号,d.dname 部门名称,ROUND(avg(sal),2) 平均工资 from emp e left join dept d on e.deptno=d.deptno group by d.deptno,d.dname having avg(sal)=(...原创 2018-06-12 20:19:04 · 3861 阅读 · 0 评论 -
比赛胜负查询合并
胜负问题的面试题select 日期,(select count(*) from game where 结果=’胜’and 日期=g.日期) as 胜,(select count(*) from game where 结果=’负’and 日期=g.日期) as 负from game g group by 日期...原创 2018-06-21 21:29:28 · 372 阅读 · 0 评论 -
jdbc数据库访问
Connection接口:负责数据库连接并担任传送数据的任务Statement接口:负责执行SQL语句,由Connection接口产生ResultSet接口:负责保存和处理查询结果集,由Statement接口产生PreparedStatement接口:Statement接口的子接口JDBC Driver Manager是集成在JDK中的,它负责管理各种不同的JDBC驱动。JDBC驱动是由...原创 2018-06-27 17:23:43 · 137 阅读 · 0 评论 -
oracle练习题(二)
1、列出所有办事员的姓名、编号和部门 select ename,empno,dname from dept,emp where emp.deptno=dept.deptno 2、找出部门10中所有经理和部门20中的所有办事员的详细资料 select * from emp where (deptno=10 and job='MANA...原创 2018-07-31 15:08:45 · 900 阅读 · 0 评论 -
oracle数据库选择题(一)
一、单选题1. 使用Oracle数据库,必须启动哪个服务( )A.OracleHOME_NAMETNSListener B.OracleServiceSIDC.OracleMTSRecoveryService D.OracleJobSchedulerSID2. 在Windows操作系统中,Oracle的()服务监听并接受来自客户端应用程序的连接...原创 2018-08-14 14:55:52 · 61303 阅读 · 9 评论 -
oracle学习笔记总结
Oracle需要启动的两个服务OracleServiceSID和OracleHOME_NAMETNSListener 二维表结构表达实体集的模型是关系模型 连接数据库:sqlplus scott/trigger@abc.com:1522/orcl. 分别代表账号/密码@IP地址:端口号/数据库名 SELECT last_name, salary , hire_date form emp or...原创 2018-08-14 16:10:46 · 988 阅读 · 0 评论 -
oracle分页以及mysql分页
oracle分页分页逻辑:第三层限制最小记录数(第二层限制最大记录数(第一层做条件限制))分页例子:select * from(select * from(Select rownum as rnum,empno from emp )where rnum<=10)where rnum>5MYSQL分页select * from studen...原创 2018-08-15 12:10:06 · 708 阅读 · 0 评论 -
sql优化
Sql编写顺序select <select_list> from <table> where <where_condition> group by <group_by_list> having <having_condition> order by <order_by_condition> mysq...原创 2018-08-13 12:15:54 · 197 阅读 · 1 评论 -
oracle数据库数据处理习题
1一、单项选择题1.( A )是Oracle服务器在启动期间用来标识物理文件和数据库结构的二进制文件。A.控制文件 B.参数文件 C.数据文件 D.日志文件2.( B )进程主要职责是监控服务器进程和注册数据库服务。A.SMON B.PMON C.CHKT D.LGWR3.( C ) 代表了数据库中最小粒度的逻辑数据存储层次。A.盘区 B.表空间 C.数据块 D.数据文件4.用于在...转载 2018-08-13 16:08:13 · 7845 阅读 · 0 评论 -
mysql单表增删改查
显示数据库Show databases;创建数据库create database test1 ;删除数据库DROP DATABASE test1使用数据库Use test1创建表create table student ( 学号 int, 姓名 varchar(32), 性别 char(2), 年龄 int, 年级int, 专业 varchar(50))character set utf8...原创 2018-06-04 20:36:01 · 211 阅读 · 0 评论