新增连接查询而不影响其他连接查询 请看图: 这种情况我们一般会使用左连接的方式. select e.ENAME,d.LOC,eb.RECEIVED from emp e join dept d on(e.DEPTNO=d.DEPTNO) left join emp_bonus eb on(eb.EMPNO=e.EMPNO) order by 2 上面这种可以实现的,但是不利于我们在写code语句中的复用. 下面是一种标量子查询我的方式,可以帮助我们复用部分sql. select e.ENAME,…
查找只存在一个表中的数据 有两张表: EMP: select * from emp DEPT: 他们有共同的属性:deptno 现在要查询EMP 中的deptno不等于DEPTNO的deptno项. 解析: select distinct DEPTNO from EMP where DEPTNO not in ( select DEPTNO from DEPT ) 注意: 因为需要查询的是DEPTNO,所以需要排除掉重复项. 其次上面的写法,如果DEPTNO在DEPT有null项上面的是错误的.…
select NVL(sum(case when create_date_time>=to_date('2014-11-24 00:00:00','yyyy-mm-dd hh24:mi:ss') and create_date_time<=to_date('2014-11-24 23:59:59','yyyy-mm-dd hh24:mi:ss') then amount end),0) today ,NVL(sum(case when create_date_time>=to_date(…
sql语句中----删除表数据drop.truncate和delete的用法 --drop drop table  tb   --tb表示数据表的名字,下同 删除内容和定义,释放空间.简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表, 例如:一个班就是一个表,学生就是表中的数据,学生的职务就是定义 drop table class,就是把整个班移除.学生和职务都消失 ---truncate truncate table tb 删除内容.释放空间但不删除定义.与drop不同的是,…
SQL语句查询某表的所有字段及数据类型 SELECT name AS column_name , TYPE_NAME(system_type_id) AS column_type , max_length , is_nullable FROM sys.columns WHERE object_id = OBJECT_ID(N'customerbase') --customerbase 为表名…
<来源网址:http://www.delphifans.com/infoview/Article_220.html>用SQL语句创建Access表 很久以前弄的,用了一天的时间,没有什么技巧,却很实用.很乱,复制下来到记事本,把自动换行去掉再看,就有条理了:)----------------------------------------------------------------------------         类型名称         TYPE               备注…
下面的sql语句可以查看表的信息.其中modify_date和create_date可以根据表的修改时间来查看.如果不需要删除后,就能看到所有表的字段信息 ) PERCENT d.name AS 表名, ISNULL(f.value, '') AS 表说明, a.name AS 字段名, CASE WHEN EXISTS ( FROM sysobjects WHERE xtype = 'PK' AND name IN (SELECT name FROM sysindexes WHERE indi…
oracle初学者一般会遇到这个问题.   用navicat可视化创建了表,可是就是不能查到!   后来发现②语句可以查询到 ①select * from user; 但是,我们如果给user加上双引号就可以查到了! ②select * from "user"; 难道oracle跟mysql等不同,查询时候一定要加双引号?那这样不是很麻烦!于是经过查找资料得出如下结论: 1.oracle表和字段是有大小写的区别.oracle默认是大写,如果我们用双引号括起来的就区分大小写,如果没有,系…
SQL语句之 多表管理 一个数据库内通常会有不止一张表,有时候我们要把多张表联系起来,这就需要用到多表管理的语句. 1.外键约束 一个表中的非主键字段,如果在另外一张表中是主键,那么这个字段我们叫它做外键. 例如,现在有两个表: 学生表 - 学号,姓名,性别,所在班级号 班级表 - 班级号,班级人数 在学生表中,学号是主键:在班级表中,班级号是主键,而学生表中‘所在班级号’是非主键.所以,所在班级号对学生表来说是一个外键. 语句:CONSTRAINT student_class_fk FOREI…
ylbtech-SQL Server:SQL Server-sql语句重命名表名和列名 sql语句重命名表名和列名 ylb:sql语句重命名表名和列名 返回顶部 一.更改数据库名    sp_renamedb  更改数据库的名称.   语法:  sp_renamedb [ @dbname = ] ' old_name ' , [ @newname = ] ' new_name '    参数:  [ @dbname = ] ' old_name ' 是数据库的当前名称.old_name 为 sy…
  作为oracle的刚開始学习的人相信大家一定会遇到这个问题.如图:          明明就是navicat可视化创建了表,但是就是不能查到!这个为什么呢?           select * from user;           可是,我们假设给user加上双引號就不一样了!   select * from "user"; 却能够等到以下的结果.如图:          到这里我想大家肯定会说:难道oracle跟mysql等不同,查询时候一定要加双引號?那这样不是非常麻烦!…
没有找到好的工具,只想到了拼字符串的方式,用   NVARCHAR(MAX)  可能有截断,不推荐使用,方法中使用了 FOR XML PATH('') 实现,有关其使用方法参考这里 表结构: SQL 语句: ),id)+',"areacode":'+areacode+',"areaname":"'+areaname+'","paremt_areacode":'+paremt_areacode+'},' FROM hk_dic_…
通过将现有表中的数据添加到已存在的表中: INSERT INTO <表名><列名> SELECT<列名> FROM<源表名> 将UserInfo的数据添加到一个新表中: --要求这个新表必须存在,需要建立一个新表,而且表中的列的 --个数,顺序,数据类型必须与UserInfo 的数据类型一致 先查询一下表的数据 USE E_Market --指向当前所操作的数据 GO SELECT *FROM UserInfo 需要新建一个表,为UserAddress: I…
锁是数据库中的一个非常重要的概念,它主要用于多用户环境下保证数据库完整性和一致性. 我们知道,多个用户能够同时操纵同一个数据库中的数据,会发生数据不一致现象.即如果没有锁定且多个用户同时访问一个数据库,则当他们的事务同时使用相同的数据时可能会发生问题.这些问题包括:丢失更新.脏读.不可重复读和幻觉读: 1.当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题.每个事务都不知道其它事务的存在.最后的更新将重写由其它事务所做的更新,这将导致数据丢失.例如,两个编辑人员制作了…
开发中经常用到查询指定表及其字段的信息,以下是我整理的SQL语句查询方法,供自己平时使用也提供给大家参考! 1.适用MS SQL SERVER: SELECT 表名 = then d.name else '' end, 表说明 = then isnull(f.value,'') else '' end, 字段序号 = a.colorder, 字段名 = a.name, 标识 = then '√'else '' end, 主键 = FROM sysobjects where xtype='PK'…
1.SQL简介 对于不同的数据库来说,SQL语句是相通的,关系型数据库都以SQL语句为操作的标准,只是相应的数据库对应的函数不相同. SQL(Structured Query Language,结构化查询语言)是功能强大的数据库语言,用于·数据库通讯. 1.2SQL的功能 SQL 的功能可分为以下三组 DML (Data Manipulation Language,数据操纵语言)用于查询和更改数据 DDL   (Data Definition Language ,数据定义语言)用于定义数据的结构…
好久没来咱们博客园了,主要近期在忙一些七七八八的杂事,包括打羽毛球比赛的准备和自己在学jqgrid的迷茫.先不扯这些没用的了,希望大家能记得小弟,小弟在此谢过大家了. 回归正题:(以下的sql是本人在用yii框架开发项目时写的,希望对大家有些帮助) 首先是多表查询,为了简化我先贴出自己的代码,在贴出解释代码. select a.*, b.*, c.* from rlzy_payfeeinf a inner join rlzy_personinfo b on a.bid=b.bid join rl…
最近写了很多方向的总结和demo.基本包含了工作中的很多方面,毕竟c#已经高度封装并且提供了很多类库.前面已经总结了博文.最近2天突然感觉前面的SQL分析阻组件的确麻烦,也注意看了下.为了方便大家学习交流.自己专门另外写了一个组件demo.用正则表达式获取操作类型,其实原理很简单,我简单介绍下,算是为大家提供一个思路或者说解决方案. SQL92是固定格式,每部分内容都是用空格隔离,所以拿到SQL语句后,先用正则表达式规整SQL,连续的空格都用一个空格替换.然后按照SQL关键字从左向右依次解析关键…
SELECT sum(列名1) 列名1,sum(列名2) 列名2,sum(列名3) 列名3 FROM ( SELECT count(*) 列名1, 列名2, 列名3 FROM 表1 -- WHERE plan_uid = UNION ALL SELECT 列名1,count(*) 列名2, 列名3 FROM 表2 -- WHERE other_uid = UNION ALL SELECT 列名2,count(*) 列名3 FROM 表3 -- WHERE uid = AND status = 1…
关系型数据库的核心内容是 关系 即 二维表 MYSQL的启动和连接show variables; [所有的变量] 1服务端启动 查看服务状态 sudo /etc/init.d/mysql status 状态 sudo /etc/init.d/mysql start 开启 sudo /etc/init.d/mysql stop 停止 .... restart 重启 .... reload 生效配置[热],不是所有都可以生效 2 客户端连接 mysql -h 主机地址 -u 用户名 -p 密码 my…
SELECT INTO 语句:表示从一个表中选取数据,然后把数据插入另一个表中,常用来备份一张表 1.全表结构备份: SELECT * INTO new_table_name FROM old_tablename; 示例:备份student表,备份表取名为student_backup select * into student_backup from student ; 则会生成一张与student表结构及数据一样的备份表. 2.如果只备份表中的某些列: SELECT column_name1,…
/** * <查找list> * * @return 返回页面需要显示的数据 */ @SuppressWarnings("unchecked") public List<Map<String, String>> findUserDept() { return ht.executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws Hibe…
前言 最近刚学python,写一个小工具时需要提取sql语句中表名,查询一番后找到一篇文章挺不错的,mark一下 PS.那篇文章是转载的,且没有标注转载自哪里 正文 import ply.lex as lex, re def extract_table_name_from_sql(sql_str): # remove the /* */ comments q = re.sub(r"/\*[^*]*\*+(?:[^*/][^*]*\*+)*/", "", sql_st…
遍历字符串 我觉得首先要提出一个疑问: 一个数据库本身就是用于存储的,遍历字符串究竟有何意义? 先看如何实现的,毕竟sql service 是没有for循环,也没有loop和while的. select SUBSTRING(e.ENAME,t.ID,1) as sub from emp e,T10 t where e.ENAME='JONES' and t.ID<=len(e.ENAME) 的确是遍历了这个字符串JONES. 原理也十分的简单: select * from T10 T10 可以看…
环境:SQL Server2012 SP3 企业版,开发服务器,并没有什么负载,全库索引统一Rebuild过 经反复执行验证过, 不算太复杂的SQL(存储过程中代入参数抠出来的SQL代码) 默认情况下,执行完成需要3秒钟 非要用红色圈中子查询中的表(是一个相关子查询)去驱动其他表, 添加OPTION(FORCE ORDER)后,强制连接顺序,用其他表驱动子查询,1秒钟 默认情况下: IO消耗的比较少(相比强制驱动顺序),但是CPU消耗的比较多,但是整体时间的消耗比强制驱动顺序要多 强制表的驱动顺…
说到删除表数据的关键字,大家记得最多的可能就是delete了 然而我们做数据库开发,读取数据库数据.对另外的两兄弟用得就比较少了 现在来介绍另外两个兄弟,都是删除表数据的,其实也是很容易理解的 老大------drop 出没场合:drop table  tb --tb表示数据表的名字,下同 绝招:删除内容和定义,释放空间.简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表, 例如:一个班就是一个表,学生就是表中的数据,学生的职务就是定义 drop table class,就是把整…
批量插入表(表数据插表) ****1.INSERT INTO SELECT语句语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量.示例如下: 2.SELECT INTO FROM语句语句形式为:SELECT vale1, value2 into Table2 from…
上一节讲的是直接在创建表的时候添加条件约束,但是有时候是在表格创建完毕之后,再添加条件约束的,那么这个又该如何实现? 其实,跟上一节所写的SQL代码,很多是相同的,只是使用了修改表的ALTER关键字及添加约束的ADD CONSTRAINT关键字而已,其他大同小异. 代码如下: USE PersonInfo --使用PersonInfo数据库 GO IF EXISTS (SELECT * FROM sys.tables WHERE [name] = 'Employee ') --如果存在Emplo…
--多表连接查询,在多张表中查询符合条件的记录--注意:给表起简短的别名select * from emp e--给字段起别名:字段名 别名,当别名为数字(包括数字开头)或者有空格时需要用双引号括起来select sysdate "2017" from dual --内连接也称为等值连接--语法:表1 inner join 表2 on 条件,同时inner可以省略--查询工资大于2000元的员工的姓名,工资和部门名称,按照工资降序排列--分析:工资和姓名在emp表,部门名称在部门表,涉…
在Sqlserver的维护更新操作中,有时候涉及到Update操作,其中有一种情况是根据特定的条件,以一个表中的数据更新另一个表的数据,此时涉及到两个表之间的关系以及操作,此处介绍2种更新方法. (1)方法一格式:Update a set a.name=b.name1 FROM tableA a, tableB b where a.id=b.id" 在上述格式中,以tableB中的数据字段name1更新tableA中的数据字段name,更新条件是两个表中对应行的id相等. (2)with As更…