
数据库
CSU_Dennis
博主2019年6月毕业于中南大学计算机院
展开
-
事务的四种隔离级别
事务的四种隔离级别数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。下面通过事例一一阐述它们的概念与联系。Read uncommitted读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。事例:老板要给程序员发工资,程序员的工资是3.6万/月。但是发工资时老板不小心按错了数字,按成3.9万/月,该钱已转载 2020-11-05 13:51:19 · 369 阅读 · 0 评论 -
mysql 循环查询in 按照参数顺序输出结果
用到的关键字:fieldorder by field比如项目中存在的例子:例如:select software_id from software where status=1 and cd_client_flag=20 and software_code in<foreach item = "code" collection="codeList" separator="," open="(" close=")"> #{code}</foreach>order .原创 2020-07-20 15:29:39 · 906 阅读 · 0 评论 -
JDBC访问DB步骤
1、加载驱动器 String driver = “com.mysql.jdbc.driver”2、加载驱动 Class.forName(driver)3、建立连接 conn = DriverManager.getConnection(url,username,password)4、建立statement或preparedstatement对象5、执行sql6、返回结果集ResultSe...原创 2018-03-30 10:37:16 · 560 阅读 · 0 评论 -
sql中union用法
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。SELECT column_name(s) FROM table1UNIONSELECT column_name(s) FROM table2;原创 2018-06-25 16:56:44 · 2283 阅读 · 0 评论 -
脏读、不可重复读、幻读
脏读 无效数据读出。一个事务读取另外一个事务还没有提交的数据叫脏读 (针对未提交数据)如果一个事务中对数据进行了更新,但事务还没有提交,另一个事务可以 “看到” 该事务没有提交的更新结果,这样造成的问题就是,如果第一个事务回滚,那么,第二个事务在此之前所 “看到” 的数据就是一笔脏数据。 T1 修改一个数据,T2 随后读取这个数据。如果 T1 撤销了这次修改,那么...原创 2018-08-23 16:36:44 · 266 阅读 · 0 评论 -
联合索引概念
两个或更多个列上的索引被称作联合索引,联合索引又叫复合索引。 对于复合索引:Mysql 从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c),可以支持[a]、[a,b]、[a,b,c] 3种组合进行查找,但不支 [b,c] 进行查找。当最左侧字段是常量引用时,索引就十分有效。...原创 2018-08-23 16:50:13 · 647 阅读 · 0 评论 -
写sql的时候order by String(varchar)注意
version_code是varchar类型,用order by排序的时候需要注意,不然就是坑!!!可以看下面2个sql,在本地mysql跑一下,你会开心的发现 Select * from software_version where software_id = 101 ORDER BY version_code desc 这个是按照字符串的排序规则排序...原创 2019-08-20 12:32:07 · 4878 阅读 · 0 评论 -
Mybatis中javaType和jdbcType对应和CRUD例子
<resultMaptype="java.util.Map"id="resultjcm"> <resultproperty="FLD_NUMBER"column="FLD_NUMBER"javaType="double"jdbcType="NUMERIC"/> <resultproperty="FLD_VARCHAR"column...原创 2019-08-16 14:25:54 · 214 阅读 · 0 评论 -
Mysql修改表中字段名称、字段类型
修改字段名称:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;修改字段类型:ALTER TABLE 表名 MODIFY COLUMN 字段名 新数据类型 新类型长度 新默认值 新注释; 其中column可省略删除字段alter table desktop drop column software_category_id...原创 2019-08-16 19:11:14 · 9539 阅读 · 0 评论 -
Mysql中大于、大于等于、小于、小于等于的写法
< <![CDATA[ < ]]> <= <![CDATA[ <= ]]> > <![CDATA[ > ]]> &g...原创 2019-09-06 18:13:25 · 10116 阅读 · 0 评论 -
SQL注入$和#的区别
#{ } 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符。例如,sqlMap 中如下的 sql 语句select * from user where name = #{name};解析为:select * from user where name = ?;一个 #{ } 被解析为一个参数占位符 ? 。${ } 仅仅为一个纯碎的 string 替换,...原创 2019-09-27 10:14:52 · 1862 阅读 · 0 评论 -
MYSQL中CHAR与VARCHAR区别
CHAR:定长字符串,1~255个字符VARCHAR:可变长字符串,1~65535个字符原创 2018-03-30 09:52:24 · 704 阅读 · 0 评论 -
数据源概念
数据源是一种用来提高数据库连接性能的常规手段,数据源会负责维持一个数据连接池,当程序创建数据源实例时,系统一次创建多个数据库连接,保存在连接池中,需要访问的时候拿出来用,用完归还,可避免频繁获取数据库连接而导致性能下降...原创 2018-03-30 09:49:50 · 935 阅读 · 0 评论 -
mysql中concat的用法
concat 等同于字符串连接符直接上例子了select concat('aa','bb');------------最终显示的就是 aabb,同时,concat有 to_char的作用,就是把其他类型转成varchar类型的原创 2017-07-20 14:30:56 · 1567 阅读 · 0 评论 -
事物的4种特性(ACID)解析
事务是指对系统进行的一组操作,为了保证系统的完整性,事务需要具有ACID特性,具体如下:1. 原子性(Atomic) 一个事务包含多个操作,这些操作要么全部执行,要么全都不执行。实现事务的原子性,要支持回滚操作,在某个操作失败后,回滚到事务执行之前的状态。 回滚实际上是一个比较高层抽象的概念,大多数DB在实现事务时,是在事务操作的数据快照上进行的(比如,MVCC),并不原创 2017-07-24 11:50:43 · 2457 阅读 · 0 评论 -
order by语句使用
ORDER子句按一个或多个(最多16个)字段排序查询结果,可以是升序(ASC)也可以是降序(DESC),缺省是升序。ORDER子句通常放在SQL语句的最后。ORDER子句中定义了多个字段,则按照字段的先后顺序排序。例:[sql] view plain copySELECT ProductName,UnitPrice, UnitInSt原创 2017-08-11 11:30:56 · 1415 阅读 · 0 评论 -
ERROR [com.alibaba.druid.pool.DruidDataSource] - init datasource error, url:
今天连接数据库的时候报错了...原因如上ERROR [com.alibaba.druid.pool.DruidDataSource] - init datasource error, url:.....这是url地址错误,所以连接不上数据库,把url填写正确就可以了。原创 2017-08-07 09:48:21 · 47584 阅读 · 9 评论 -
SQL查询语句练习题20道
数据库中有三张表,分别为student,course,SC(即学生表,课程表,选课表)//三张表截图如下: --1.分别查询学生表和学生修课表中的全部数据。SELECT * FROM student--查询学生表SELECT * FROM course--查询课程表--2.查询成绩在70到80分之间的学生的学号、课程号和成绩。SELECT Sno 学号,Cno 课...转载 2017-07-01 09:54:20 · 14913 阅读 · 1 评论 -
sql中limit的用法
SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset有两个参数,第一个是开始行,第二个是数目,从0开始select * from employee limit 3, 7; // 返回4-11行select * from employee limit 3,1; // 返回第4行有一个参数,如同limit原创 2017-09-23 21:44:51 · 676 阅读 · 0 评论 -
left join、right join、inner join的区别
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只返回两个表中联结字段相等的行举例如下: --------------------------------------------表A记录如下:aID aNum1原创 2017-09-22 17:23:07 · 331 阅读 · 0 评论 -
mysql练习题
SQL 练习题答案 一、补充作业一、 设有三个关系: S(SNO, SNAME, AGE, SEX,Sdept) SC(SNO, CNO, GRADE) C(CNO, CNAME, TEACHER)试用关系代数表达式表示下列查询: 1、查询学号为S3学生所学课程的课程名与任课转载 2017-09-12 10:06:09 · 4618 阅读 · 0 评论 -
sql语句性能优化
一、适当创建索引 1、where子句经常用到某一列或某几列 2、某一列或几列经常需要排序 3、多表连接时,连接列创建索引 4、对于频繁更新的操作,不适用索引二、优化查询语句 1、避免使用“*”、OR、“<>”、“!=”、HAVING子句 2、where子句中限制性最高条件放在最前面 3、子查询中用EXISTS代替IN 4、使用存储过程...原创 2018-03-30 09:40:26 · 203 阅读 · 0 评论 -
索引优缺点,什么情况下使用索引
优点:1、加快数据检索速度,提高对数据访问效率 2、提高数据查询性能缺点:1、占用大量硬盘空间 2、数据的增删改等更新操作,需要维护索引时间,降低更新速度使用场合: 1、主键列中创建索引 2、多表连接时连接列创建索引 3、where子句查询的列 4、需要经常GROUP BY和ORDER BY...原创 2018-03-30 09:43:22 · 5413 阅读 · 0 评论 -
存储过程的概念,函数与存储过程的区别
存储过程:为了完成特定功能的sql语句集进行编译优化后,存储在数据库服务器中,用户通过指定存储过程的名字来调用执行区别:本质上没有区别 1、存储过程作为一个独立部分,函数可以作为查询语句的一个部分 2、存储过程功能较为复杂,函数功能针对性更强 3、存储过程在创建时就在服务器上进行了编译,执行速度比函数快...原创 2018-03-30 09:46:40 · 1227 阅读 · 0 评论 -
mysql中table schema的基本操作
首先要知道information_schema是什么,在MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等。列出test数据库中所有的表名,类型(普通表还是view)和使用的引擎 select table_name,原创 2017-07-20 13:51:31 · 12347 阅读 · 0 评论