数据库
文章平均质量分 60
后端Q
公众号 @ 后端Q
展开
-
聊聊mysql执行过程
在项目开发当中 ,很多时候,我们的数据库应用优化都是从表层到里层的一个过程。比如一个查询写下来,我们的优化方向大多时候都是先看方法执行的时间长短,然后再决定是否去优化它,下意识的第一步操作都是看是否命中索引,接下去再看数据量、设计是否合理。。。等等。那么其实在我们一开始的时候,如果我们事先知道数据库的一个执行流程,我们就可以按照他的规则去写sql,进而提高性能和开发效率。这点有点像前些年 我们国家做出口的时候开始的时候没有吃透人家的一些法律规则 导致出现违规不...原创 2022-02-04 17:25:53 · 637 阅读 · 0 评论 -
C#的dapper使用
Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的。Dapper只有一个代码文件,完全开源,你可以放在项目里的任何位置,来实现数据到对象的ORM操作,体积小速度快。使用ORM的好处是增、删、改很快,不用自己写sql,因为这都是重复技术含量低的工作,还有就是程序中大量的从数据库中读数据然后创建model,并为model字段赋值。这些ORM都可以轻松给你搞定。ORM给我们开发带来便利时,性能也是一个让我们不得不考虑的问题。一般原创 2021-12-18 21:31:16 · 989 阅读 · 0 评论 -
到底该不该使用存储过程
背景百度百科对存储过程的定义存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升;争论那么关于开发当中是否使用存储过程,一直以来都有很多争论;在《阿里巴巴java编码规范》有这样一条互联网人看法关于这个,我个人...原创 2021-01-28 10:32:49 · 376 阅读 · 0 评论 -
2020年MySQL数据库面试题总结(50道题含答案解析)
1、MySQL 中有哪几种锁?(1)表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最 高,并发度最低。(2)行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最 低,并发度也最高。(3)页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表 锁和行锁之间,并发度一般。2、MySQL 中有哪些不同的表格?共有 5 种类型的表格:(1)MyISAM(2)Heap(3)Merge(4)INNODB(5)ISAM3、简述在 My原创 2020-11-24 09:13:52 · 1281 阅读 · 0 评论 -
讲武德,你们要的 MySQL批量SQL插入性能优化,来了
前言对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长。特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久。因此,优化数据库插入性能是很有意义的。经过对MySQL innodb的一些性能测试,发现一些可以提高insert效率的方法,供大家参考参考。方法1. 一条SQL语句插入多条数据。常用的插入语句如:INSERT INTO `insert_table` (`datetime`, `uid`, `content`..原创 2020-11-23 09:20:22 · 883 阅读 · 0 评论 -
SQL 语句中 where 条件后 写上1=1 是什么意思
前言where 1=1是sql语句条件逻辑判断表达式,由于1=1成立,恒为真,该表达式1=1将始终返回"真"。这种写法实际目的是为了获取逻辑值"True",其实诸如2=2, 1+2=3,'中'='中'等之类的写法都可以返回逻辑值"True",只不过1=1的运算开销更小,故被应用的最普遍。例子下面例子将有助于理解有关概念:1) select * from t1 where 1=1;-- 实际等效于select * from t1 where true;-- 语句将返回t1中所有的.原创 2020-11-19 13:25:42 · 1286 阅读 · 0 评论 -
面试被问到SQL | delete、truncate、drop 有什么区别?
说到删除表数据的关键字,大家记得最多的可能就是delete了然而我们做数据库开发,读取数据库数据.对另外的两兄弟用得就比较少了现在来介绍另外两个兄弟,都是删除表数据的,其实也是很容易理解的老大------drop出没场合:drop table tb--tb表示数据表的名字,下同绝招:删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表, 例如:一个班就是一个表,学生就是表中的数据,学生的职务就是定义 dro...原创 2020-11-11 09:03:38 · 153 阅读 · 0 评论 -
到底该不该使用存储过程
百度百科对存储过程的定义存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升;那么关于开发当中是否使用存储过程,一直以来都有很多争论;在《阿里巴巴java编码规范》有这样一条关于这个,我个人在互联网行业是赞同的;...原创 2020-10-28 09:08:58 · 266 阅读 · 0 评论 -
关于拼sql语句执行与直接执行存储过程的效率比较
1.关于拼sql语句执行与直接执行存储过程的效率比较最近对于一个旧的程序的导入进行优化,不过由于这个导入程序原来是直接在程序中使用拼SQL语句执行导入,执行时间较长,一般要十分钟左右。1)在程序代码中拼sql语句,类似代码如下: System.Data.OleDb.OleDbCommand Command=conn.CreateCommand();原创 2012-01-08 17:13:01 · 437 阅读 · 0 评论 -
本页的SQL例句全部懂了,你的数据库开发所需知识就够用了
--====================简单增删改===========--查看学生表的全部数据select * from studio --插入一个新的学生信息insert into studio(st_name,st_sex,st_age,st_add,st_tel) values("黄兰淇",0,36,'南充','13943943334')--查看class全部数原创 2012-01-08 21:06:31 · 650 阅读 · 0 评论 -
waitfor 的用法
waitfor 可以在指定的时间或者过了一定的时间段后执行语句块、存储过程或事务语法格式 :waitfor time '' 时间不能有日期部分waitfor time '10:04:54'print 'OK'原创 2012-01-08 21:08:31 · 1496 阅读 · 0 评论 -
goto的用法
GOTO语句可以实现无条件跳转语法格式 GOTO lable 其中lable为要跳转到的语句标号遇到GOTO语句时直接跳转到lable标签处继续执行而goto之后的语句不再执行declare @result int=0declare @sn int =0loop_1:--定义标号set @result=@result+@snset @sn=@sn+1if(@sn原创 2012-01-08 21:13:25 · 519 阅读 · 0 评论 -
详细讲解Quartz.NET
前言:8月份翻译了Quartz.NET的官方课程:开源的作业调度框架 - Quartz.NET, 有的朋友抱怨难用,确实,目前Qiartz.NET的最新版本还是0.6,还存在很多bug和不完善的地方。本文使用一系列代码示例介绍 Quartz.NET API,演示它的机制,例如作业、触发器、作业仓库。 Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quar原创 2012-01-10 14:59:20 · 398 阅读 · 0 评论 -
C#综合揭秘——细说事务
引言其实事务在数据层、服务层、业务逻辑层多处地方都会使用到,在本篇文章将会为大家一一细说。其中前面四节是事务的基础,后面的三节是事务的重点,对事务有基础的朋友可以跳过前面四节。文章有错漏的地方欢迎各位点评。 目录一、事务的定义二、事务管理器三、在ADO.NET中实现事务四、隐式事务 TransactionScope五、在WCF中实现事务六、嵌套式事务原创 2012-01-10 15:13:22 · 372 阅读 · 0 评论 -
一个MSSQL全文索引的例子
一个完整的SQL SERVER数据库全文索引的示例。(以pubs数据库为例)首先,介绍利用系统存储过程创建全文索引的具体步骤:1) 启动数据库的全文处理功能 (sp_fulltext_database)2) 建立全文目录 (sp_fulltext_catalog)3) 在全文目录中注册需要全文索引的表 (sp_f原创 2012-01-10 22:46:39 · 321 阅读 · 0 评论 -
细说Sql Server中的视图(上)(更新)
1,什么是视图? 2,为什么要用视图; 3,视图中的ORDER BY; 4,刷新视图; 5,更新视图; 6,视图选项; 7,索引视图; 细说Sql Server中的视图(下) 应大家要求已在“细说Sql Serv原创 2012-01-12 20:14:59 · 623 阅读 · 0 评论 -
细说Sql Server中的视图(下)
1,什么是视图? 2,为什么要用视图; 3,视图中的ORDER BY; 4,刷新视图; 5,更新视图; 6,视图选项; 7,索引视图; 细说Sql Server中的视图(上) 应大家要求已在“细说Sql Server中的原创 2012-01-12 20:16:27 · 475 阅读 · 0 评论 -
获取星期几的名称
两个自定义函数,一个是返回一个Table,另一个是直接返回名称。udf_WeekDayNameCREATE FUNCTION [dbo].[udf_WeekDayName]( )RETURNS @WeekDayName TABLE([Id] INT,[WeekDayName] NVARCHAR(15))ASBEGIN INSERT INTO原创 2012-01-08 21:14:45 · 456 阅读 · 0 评论 -
将数据库表直接导到Visio中!
操作步骤1、打开visio,新建数据库-->数据库模型图2、菜单栏-->数据库-->反向工程(如下图),选择通用OLE DB Provider,单击下一步3、选择希望链接的数据(如下图),选择图中焦点行,单击下一步。4、填写数据源信息(如下图),选择需要导出的数据库,单击确定。5、选择要进行反向工程的对象类型,单击下一步。6、选择要进行反向工程的表和/或视图原创 2012-01-08 21:12:06 · 2032 阅读 · 0 评论 -
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句 Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...) 这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况, 如将一个table1原创 2012-01-08 17:19:54 · 319 阅读 · 0 评论 -
将搜索结果排在前面,其余信息顺序排在后面,用SQL如何实现
sql :SELECT * FROM [KQDATA].[dbo].[SHOP]where [SHOP_FABU]=1 and [SHOP_ENABLE]=0 order by (case when [SHOP_CIRCLE_ID]=2 then 1 else原创 2011-10-03 19:45:10 · 497 阅读 · 0 评论 -
SQL 批量替换字符串
update table[表名] set Fields[字段名]=replace(Fields[字段名],'被替换原容','要替换 成的内容') 如: admin@hcmcms 方法一: update useraccount set userName原创 2011-10-08 11:01:23 · 391 阅读 · 0 评论 -
SQL结构化查询语言中的LIKE语句
SQL结构化查询语言中的LIKE语句 在sql结构化查询语言中,like语句有着至关重要的作用。 like语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),他主要是针对字符型字段的,他的作用是在一个字符型字段列中检索包含对原创 2011-10-17 22:32:34 · 1518 阅读 · 0 评论 -
SQL养成一个好习惯是一笔财富
我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么我么还能保证下一段时间系统还能流畅的运行吗?我么还能保证下一个人能看懂我么的存储过程吗?那么我结合公司平时的培训和平时个人工作经验转载 2011-10-10 09:10:58 · 260 阅读 · 0 评论 -
在sql server中,实现列数据转换成逗号隔开字符串
项目需要,要在查询中,加上后续处理人查询条件,因为后续处理人字段存的是用户ID串,所以想用函数实现功能:根据用户ID串,返回用户姓名串根据功能,在数据库查询窗口运行测试,sql如下:没有问题,返回用户姓名串CodeDECLARE @UserIdStr VARCHAR(1024) SET @UserIdStr='su20090812001,su20090912002'DECL原创 2011-11-05 21:26:35 · 6486 阅读 · 2 评论 -
SQL Server中使用异常处理调试存储过程
异常处理被普遍认为是T-SQL脚本编程中的最弱的方面。幸运的是,这一点在SQL Server 2005中得到了改变,因为SQL Server 2005支持结构化异常处理。本文首先关注新特性“TRY……CATCH”的基本构成,然后在SQL Server 2000和SQL Server 2005中对照着看一些T-SQL的例子,这些例子中使用事务代码故意制造了一些违反约束限制的情况。将来的文章会继续探讨原创 2011-11-05 21:28:13 · 714 阅读 · 0 评论 -
SQL语句查看SQL Server 2005版本号
今天,在运行某工具时,出现错误:“OBJECT_SCHEMA_NAME' 不是可以识别的 内置函数名称。。。”,首先想到是否是自己的数据库没有打sp的原因,但又不知道自己当前sql server 2005的版本,用select @@version可以看到一长串的信息,不是很直观,下面的语句运行一下,版本信息一目了然。SELECT SERVERPROPERTY('productversion')原创 2011-11-05 21:29:18 · 520 阅读 · 0 评论 -
小议sql查询返回xml数据之应用
今天查看邮件,看到一标题Using the FOR XML Clause to Return Query Results as XML,点进去看了看,以前也是知道sql server 查询可以返回xml格式,但具体一到应用中比较少,读过文章后,想到自己的项目有调用远程web服务,传xml格式串方法,这个xml串是拼接而成的。想到此,决定做个测试,看程序中如何接收sql查询返回xml格式,为以后做个原创 2011-11-05 21:22:23 · 568 阅读 · 0 评论 -
设计高效sql一般经验谈
1不用在sql语句使用系统默认的保留关键字2尽量用exists 和 not exists代替 in 和 not in 这条在sql2005之后,在索引一样,统计信息一样的情况下,exists,in效果是一样的。 以AdventureWorks数据库为例,查询在HumanResources.EmployeeAddress有地址的Employee信息原创 2011-11-05 21:42:27 · 281 阅读 · 0 评论 -
如何创建效率高sql-建立索引
我们做开发的人员,虽说自己不是专业从事数据库方面研究的(如DBA),但很多时候,公司没有专门的DBA,所以拿到具体的项目中,整体的数据库设计都是开发人员自己写的,随着时间的推移,加上开发经验的增长,越来越关心如何设计好的数据库,如何写出高效的sql语句。之所以非常关心数据库及sql语句的写法,主要是在程序逻辑代码上大家都有可能写出一样的效率的功能方法来,而sql语句呢,对于同样的结果集,一个初级的原创 2011-11-05 21:43:38 · 554 阅读 · 0 评论 -
asp.net获取存储过程的输出参数
这个其实很简单,只是学习到了就作个记录,也给不知道的人留个方便。一、假设存储过程如下--region [dbo].[InsertArchive]--------------------------------------------------------------------------------------------------------------------原创 2011-11-10 10:38:47 · 416 阅读 · 0 评论 -
select中case-when-then用法
selectcasewhen 1>0 then '1'when 1 else '0'end 记住最后要加end原创 2012-01-06 20:06:17 · 873 阅读 · 0 评论 -
执行SQL脚本语句判断是否已经存在
1.字段是否存在if((select count(*) from syscolumns where name = '字段名' and id=(select id from sysobjects where name='表名'))=0)beginend 2.表是否存在if exists (select * from sysobjects where id = OBJECT_I原创 2012-01-06 20:08:01 · 1085 阅读 · 0 评论 -
isnull在数据库查询中的应用
isnull在数据库查询中的应用,特别是再语句连接的时候需要用到比如连接时候,某个字段没有值但是又要左连接到其他表上 就会显示空,isnull可以判断是否是NULL,如果是给个默认值 isnull("字段名","默认的数据")原创 2012-01-06 20:13:17 · 352 阅读 · 0 评论 -
c# sql like @参数
"SELECT CAST(SUBSTRING(MAX(BoxID), 10, 3) AS int) from Box WHERE BoxID like '%' + @subString + '%'"参数化的意义在于把对应的值从参数中提供,对于like语句,like后面的值则包括了单引号中的所有部分,包括百分号(%),因此在参数化lik原创 2012-01-06 20:21:32 · 477 阅读 · 0 评论 -
sql中的group by 和 having 用法解析
--sql中的group by 用法解析:-- Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。--它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。--注意:group by 是先排序后分组;--举例子说明:如果要用到group by 一般用到的就是“每这个字” 例如说明现在有一个这样的表:原创 2012-01-08 17:17:23 · 418 阅读 · 0 评论 -
数据字典是什么
数据字典是以数据库中数据基本单元为单位,按一定顺序排列,对其内容作详细说明的数据集。其中数据库中数据基本单元在不同类型数据库中有所不同,如矢量数据库的数据基本单元是对应自然要素实体的点、线和面,关系型数据库的数据基本单元是字段及其内容记录。数据字典(Data Dictio原创 2011-10-02 21:42:24 · 884 阅读 · 0 评论