随笔分类 -  SQL

1
摘要:事务隔离级别 事务隔离级别,会影响事务中会产生脏读、幻读、不可重复读等相关问题 隔离级别 脏读 不可重复读 幻读 读未提交(Read Uncommitted) √ √ √ 读已提交(Read Committed) X √ √ 可重复度(Repeatable Read) X X √ 串型(Serial 阅读全文
posted @ 2024-01-15 23:55 艺言弈行 阅读(12) 评论(0) 推荐(0) 编辑
摘要:什么是事务 是一种逻辑的执行单元,执行的所有步骤要么全部成功,要么全部失败 比如转账操作,A给B转账100元,分2个步骤: 1.A余额减100 2.B余额加100 这2个操作步骤要么都成功,要么都失败。否则造成数据不一致问题 事务的特性:ACID 原子性(Atomicity) 操作要么全部成功,要么 阅读全文
posted @ 2024-01-15 18:07 艺言弈行 阅读(88) 评论(0) 推荐(0) 编辑
摘要:比如有一条SQL语句 select * from tables where name = 'zhangsan'; 那么这条语句通过MySQL查询,执行流程是怎么样的? 直接看图: 1.客户端跟服务端建立连接,权限校验 2.检查是否开启缓存 QueryCache,并且是否命中缓存,如果命中,直接将数据 阅读全文
posted @ 2024-01-15 16:28 艺言弈行 阅读(26) 评论(0) 推荐(0) 编辑
摘要:二叉树 特点 二叉树特点是,根节点有俩孩子,左小右大(左<根/中<右) 查找比线性链表或数组快 极端情况变链表 但是有一种极端情况,会退化成一个链表:数据从小到大或从大到小,比如: 1 2 3 4 5 6 7 放入二叉树 二叉树的遍历 组装一棵二叉树如下: 前序遍历(中->左子->右子,根节点M在前 阅读全文
posted @ 2023-12-26 01:13 艺言弈行 阅读(60) 评论(0) 推荐(0) 编辑
摘要:聚簇索引 索引和数据存放在一起,找到索引也就找到数据了 集中放在连续的物理块 非聚簇索引 索引和数据分开存储,索引树的叶子指向数据行(InnoDB中,指向主键的索引号,所以要二次查找。也叫辅助索引、二级索引) 这也就解释了为什么 MyISAM 查询为什么比 InnoDB 快了。因为 InnoDB 要 阅读全文
posted @ 2023-12-22 01:20 艺言弈行 阅读(11) 评论(0) 推荐(0) 编辑
摘要:新增如果遇到主键冲突,则更新 新建一张表,除了主键`id`,还有唯一健`mobile` ```sql create table example_user ( id int(4) not null auto_increment, name varchar(20) , mobile varchar(20 阅读全文
posted @ 2023-09-07 10:04 艺言弈行 阅读(28) 评论(0) 推荐(0) 编辑
摘要:时间戳: UNIX_TIMESTAMP(NOW()) 随机数 rand() e.g. SELECT CONCAT(UNIX_TIMESTAMP(NOW()), FLOOR(1000000000 * RAND())) 结果 1677563095319281885 阅读全文
posted @ 2023-02-28 13:46 艺言弈行 阅读(104) 评论(0) 推荐(0) 编辑
摘要:select regexp_replace(col,'[A-Za-z]') from dual; --> 12345col 列名 阅读全文
posted @ 2016-07-15 10:17 艺言弈行 阅读(1071) 评论(0) 推荐(0) 编辑
摘要:SELECT plc.id, plc.policy_no, plc.out_date, og.organ_name, ir.insurer_name, pd.product_name, plc.policy_amount, plc.channel, plc.settle_status, bill.agent_amount, bill.fee_percentage,... 阅读全文
posted @ 2016-06-07 20:38 艺言弈行 阅读(3656) 评论(0) 推荐(0) 编辑
摘要:以mysql为例:新建两张表table1和table2CREATE TABLE `table1` ( `id` int(11) NOT NULL auto_increment, `name` varchar(20) default NULL, PRIMARY KEY (`id`) ) ... 阅读全文
posted @ 2014-06-26 10:50 艺言弈行 阅读(340) 评论(0) 推荐(0) 编辑
摘要:运行cmd;输入mysql回车,如果成功,将出现MySQL提示符 >连接权限数据库>use mysql; (>是本来就有的提示符,别忘了最后的分号)修改改密码:> update user set password=password("123456") where user="root"; (别忘了最... 阅读全文
posted @ 2014-05-28 14:17 艺言弈行 阅读(472) 评论(0) 推荐(0) 编辑
摘要:--循环create or replace procedure p_xunhuan(input in number,output out number) is temp number(10);begin temp := 0; for temp in 0..input loop begin output := input+temp; dbms_output.put_line('----'||output); end; end loop;... 阅读全文
posted @ 2014-02-10 15:31 艺言弈行 阅读(521) 评论(0) 推荐(0) 编辑
摘要:create or replace procedure test_score(input in number,output out char) isbegin if input>=90 then begin output := 'A'; end; end if; if input<90 then begin output := 'B'; end; end if; if input<80 then begin ... 阅读全文
posted @ 2014-02-10 15:19 艺言弈行 阅读(1644) 评论(0) 推荐(0) 编辑
摘要:Hibernate sql crud 阅读全文
posted @ 2014-01-14 17:13 艺言弈行 阅读(1464) 评论(0) 推荐(0) 编辑
摘要:表结构:group表(groupid int,groupname varchar)表中数据:id name 1 分组1 2 分组2 3 分组3 4 分组4---------------------------------------------------------SQL:INSERT INTO grouping(groupid,groupname) SELECT MAX(groupid)+1,... 阅读全文
posted @ 2014-01-08 17:03 艺言弈行 阅读(2972) 评论(0) 推荐(0) 编辑
摘要:首先,了解什么是:环比增长率? 环比增长率=(本期数-上期数)÷上期数×100% 如:2014年2月的工资为:5000,2014年1月的工资为4000,则2月份的环比增长率为: (5000-4000) ÷ 4000 × 100% =25% 那么,oracle中的sql语句怎么写呢? 举个例子 1.建表create table t ( dt date, cnt number ) 2.插入数据 DT CNT2012/1/1102012/1/230 3.查询环比select t.dt "日期", --... 阅读全文
posted @ 2014-01-02 10:51 艺言弈行 阅读(1315) 评论(0) 推荐(0) 编辑
摘要:1.查找重复记录:(按id查找)select * from user_info where id in ( select id from user_info group by id having count(id)>1 )即:select * from user_info where id in(select id from user_info group by id having count(id)>1)2.删除重复记录: 不保留重复记录,只需把上面的select * from 改成 delete from 就可以了。 保留一条重复记录:... 阅读全文
posted @ 2013-12-17 14:39 艺言弈行 阅读(312) 评论(0) 推荐(0) 编辑
摘要:1.连接plsql developer,打开一个SQL Window2.SQL Window中创建表user_info 1 -- Create table2 create table USER_INFO3 (4 ID VARCHAR2(2),5 NAME VARCHAR2(10),6 PWD VARCHAR2(20),7 ADDRESS VARCHAR2(100)8 )3.SQL Window中创建存储过程add_user,用于向表user_info中插入一条数据 1 create or replace procedure add_user 2 ( 3 ... 阅读全文
posted @ 2013-12-13 17:17 艺言弈行 阅读(725) 评论(0) 推荐(0) 编辑
摘要:为什么使用存储过程?存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。存储过程的定义:存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。 存储过程是由流控制和SQL 语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,应用程序使用时只要调用即可。在ORACLE 中,若干个有联系的过 阅读全文
posted @ 2013-12-02 17:04 艺言弈行 阅读(519) 评论(0) 推荐(0) 编辑
摘要:select * from 表 p where p.gender '男' and floor(months_between(sysdate, p.Birthday) / 12) = 15select * from table p where p.gender='女' and floor(months_between(sysdate, p.Birthday)/12)15查询出所有年龄在15~49岁的非男性的信息 阅读全文
posted @ 2013-08-07 11:30 艺言弈行 阅读(3016) 评论(0) 推荐(0) 编辑

1