利用union关键字,可以给出多条select语句,并将它们的结果组合成单个的结果. 合并是,两个表对应的列数和数据类型必须相同. 各个select语句之间使用union或union all关键字分隔. union不使用关键字all,执行的时候会删除重复的记录,所有的返回行都是唯一的 使用all关键字的结果是不删除重复行也不对结果自动排序. select column, ... from table1 union [all] select column, ... from table2 此外un…
MySQL简单查询详解-单表查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询的执行路径 一条SQL查询语句的执行过程大致如下图所示: 1>.客户端和服务端通过mysql协议进行通信,mysql服务器通过某种客户端发送来的查询语句的时候,首先会去本地检验缓存是否命中,如果请求的SQL语句之前有本查询过,就会把之前的查询结果直接返回给用户(查询缓存的功能最少要满足三成以上才有意义,如果所有的查询都去用缓存且所有的SQL没有一次被命中的话就毫无意义啦.): 2>.如果…
--查询nvarchar(max)的表和字段 select 'insert into #tempTabelInfo select '''+d.name+''', '''+a.name+''', max(len('+a.name+')) as '+d.name+'的'+a.name+' from '+d.name+' with(nolock) ' , d.name as tabelname,a.name,b.name FROM syscolumns  a, systypes b,sysobject…
MySQL 给已存在的数据表 增加字段和注释 问题描述 在开发一个系统的过程中,经常会遇到随着系统服务功能的扩展,或者服务之间的关联,需要适当的修改原有的表结构,比如,增加一些必要的字段. 示例:在已存在的设备表device中,增加设备IP,设备名称,设备类型三个字段. 问题解决 方式1(命令行方式) 使用MySQL命令,在MySQL客户端工具或者命令行中,执行以下命令: ) DEFAULT NULL COMMENT '设备IP'; ) DEFAULT NULL COMMENT '设备名称';…
1. sql表和字段的别名通过关键字 AS 来指定. 2.通常,定义字段别名的 AS 关键字可以省略,但我们建议不要省略 AS 关键字.别名(alias)是 SQL 的标准语法,几乎所有的数据库系统都支持.…
利用  UNION 关键字,可以给出多条  SELECT  语句,并将它们的结果组合成一个结果集.合并时,两个表对应的列数和数据类型必须相同.SELECT 语句之间使用  UNION  或  UNION  ALL 关键字分隔.不使用关键字 ALL,执行的时候会删除重复的记录,所有返回的行都是唯一的:使用关键宇  ALL  的作用是不删除重复行也不对结果进行自动排序. 基本的语法格式如下:    SELECT   column,....   FROM table1    UNION [ALL]  …
之前开发的一个监控系统,数据库的日志表是单表,虽然现在数据还不大并且做了查询sql优化,不过以后数据库的日志表数据肯定会越来越庞大,将会导致查询缓慢,所以把日志表改成分表,日志表可以按时间做水平分表,我是按月分的,每个月一张表,这时候的问题是 数据库有多张同样的分表如何根据条件查询? 在进行分页的时候如何计算总记录数?如何查询出所有分表? 每个月的新表是如何创建?系统如何自动创建? 不确定哪个分表的情况如何查询某一条详细记录? 分表查询分表查询可以用union或者union all进行查询uni…
多表查询 在大部分情况下,我们用到的表都是彼此相关联的,所以我们会有相当大的需求用到跨表的查询,这个时候我们就需要将相关联的表连起来做多表查询. 多表查询分为连表查询和子查询,连表查询即将相关联的表连城一张表后进行查询:子查询即将一张表查询所得结果作为另一张表的条件进行二次查询,为嵌套式查询. 链表操作放在where之前,只有连完表后在内存中生成虚拟的一张连起来的表才能做条件.分组.筛选等操作. 这里我们准备两张表做演示,两张表相关联.(数据自己插吧...) #创建部门表 create tabl…
查询语法如下: select... from... where... group by... (having)... order by...; 顺序是from (从指定表中) where (具体条件) group by (分组依据) having (附加条件) select (查询) order by (结果排序) 单行处理函数主要包括:lower, upper, substr, length, trim, str_to_date, date_format, format, round, ran…
转载 CSDN博主「小林子林子」 -> https://blog.csdn.net/qq_26106607/article/details/84961254 原始SQL-> 目的-> 合并查询 -- 初检数量 SELECT COUNT(1) FROM installation_order o WHERE o.`init_check_person` = 'wulin' AND o.`init_dispatch_time` >= '2018-01-01 01:00:00' AND o.…
一:在Mysql控制台创建数据表 [sql]  use ceshi;  create table student  (      stuid int primary key auto_increment,      stuName varchar(40) not null  );   这样就创建了一个studeng表,auto_increment是自增列的意思   插入数据 [sql]  insert into student(stuname) values('zhangsan');   ins…
MySQL学习笔记-如何安全的给小表加字段 如果要给一个大表加字段,你一般都会非常谨慎小心,以免对线上业务造成影响,但实际上给一个小表加字段不慎操作也会导致线上业务出问题,这篇文章主要学习一下MySQL中MDL锁对性能的影响,防止采坑. 1.笔记图 2.全局锁 全局锁就是对整个数据库实例加锁 命令: Flush tables with read lock (FTWRL) 全局锁现象:数据更新语句(数据的增删改).数据定义语句(包括建表.修改表结构等)和更新类事务的提交语句会被阻塞 3.数据逻辑备…
SELECT * FROM INFORMATION_SCHEMA.columns WHERE TABLE_NAME='Account' SELECT    (case when a.colorder=1 then d.name else '' end) as 表名,--如果表名相同就返回空       a.colorder as 字段序号,       a.name as 字段名,       (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity'…
alter add命令用来增加表的字段. alter add命令格式:alter table 表名 add字段 类型 其他; 例如,在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0:   mysql> alter table MyClass add passtest int(4) default '0'; 1) 加索引   mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]); 例子: mysql> al…
alter add命令用来增加表的字段. alter add命令格式:alter table 表名 add字段 类型 其他; 例如,在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0:   mysql> alter table MyClass add passtest int(4) default '0'; 1) 加索引   mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]); 例子: mysql> al…
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='subject' --表名 1.利用sysobjects系统表 在这个表中,在数据库中创建的每个对象(例如约束.默认值.日志.规则以及存储过程)都有对应一行,我们在该表中筛选出xtype等于U的所有记录,就为数据库中的表了. 示例语句如下: select * from sysobjects where xtype='U' 注意:在SQL SERVER2005中,出现了sys.ob…
1.查看字段详细信息 -- 查看详细信息 SELECT COLUMN_NAME "字段名称", COLUMN_TYPE "字段类型长度", IF(EXTRA="auto_increment",CONCAT(COLUMN_KEY,"(", IF(EXTRA="auto_increment","自增长",EXTRA),")"),COLUMN_KEY) "主外键&…
 UNION 使用 UNION 关键字是,数据库系统会将所有的查询结果合并到一起,然后去除掉相同的记录:   UNION ALL 使用 UNION ALL,不会去除掉系统的记录:…
SELECT TABLE_NAME, -- 表名 COLUMN_NAME, -- 字段名 DATA_TYPE, -- 字段类型 COLUMN_COMMENT -- 字段注释 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '数据库名称'…
SELECT CONCAT(table_schema,'.',table_name) AS 'TABLE_NAME', CONCAT(, ),'M') AS 'ROW_SIZE', CONCAT( ),),'M') AS 'DATA_SIZE', CONCAT( ),),'M') AS 'INDEX_SIZE', CONCAT( ),),'M') AS 'TOTAL_SIZE' FROM information_schema. TABLES WHERE table_schema = 'bootd…
例如,在之前做的项目中,查询mhz_xckcr表,select出某个业务的现场勘察人信息,select出的现场勘察人姓名(可能有多个)要在前台datagrid的一个datagridcolmn单元格显示出来. 1.查询表数据,保存到实体类集合list中,并返回list: /// <summary> /// 获取现场勘查人列表 /// </summary> /// <param>业务ID</param> /// <returns>结果集</re…
查看各个编码 //查看字段编码 SHOW FULL COLUMNS from park_car_user; //查看数据库字段SHOW CREATE DATABASE db_name; //查看表的编码SHOW CREATE TABLE tbl_name; 修改数据库编码 [client] default-character-set=gbk port [server] default-character-set=gbk port [mysql] default-character-set=gbk…
DECLARE @what varchar(800)SET @what='123456' --要搜索的字符串   DECLARE @sql varchar(8000)   DECLARE TableCursor CURSOR LOCAL FORSELECT sql='IF EXISTS ( SELECT 1 FROM ['+o.name+'] WHERE ['+c.name+'] LIKE ''%'+@what+'%'' ) PRINT ''[字段值所在的表.字段]:['+o.name+'].[…
解决办法,添加 SET SESSION SQL_MODE=ANSI_QUOTES;…
UPDATE DB1.A SET a = ( SELECT b FROM DB2.B WHERE B.Id = A.id) 实例: UPDATE wordpress.`wp_posts` SET post_content = ( SELECT `内容` FROM test.`content` WHERE content.Id = wp_posts.`ID`)…
编写sql语句 select column_name,data_type ,column_comment from information_schema.columns where table_name='查询表名称' and table_schema='数据库名称' order By ORDINAL_POSITION 完成!!!!…
错误1: 异常:Truncated incorrect DOUBLE value: 'lili' 问题分析:我的修改sql语句是:update video set vname='汉字' and vdirct='xxx' and vprice='23' where vid=3 所以SQl报错:Truncated incorrect DOUBLE value: 'lili' 错误2:    update sort set num = " + num + " , zt = '1' "…
项目上用的Spring JDBC,是通过ResultSetMetaData接口来调用具体数据库的JDBC实现类来获取数据库返回结果集的. 在项目开发中,发现在MySQL中使用的别名没有办法被正常解析,意思就是说,给字段另外赋予的别名没有生效,取的是字段原来的字段名.具体是比如给user_name取了个别名为user_name_old,最终返回的结果并不是别名user_name_old,而是原名user_name. 跟踪代码,发现在MySQL的JDBC实现中的ResultSetMetaData.g…
CREATE PROCEDURE 存储过程名称 is cursor c_tab is select * from user_tab_columns t r_tab user_tab_columns%rowtype; v_cell ); sql_str ); data_length number; begin open c_tab; loop fetch c_tab into r_tab; exit when c_tab%notfound; v_cell:=''; data_length:,);…
4.1带In 关键字的子查询 一个查询语句的条件可能落在另一个SELECT 语句的查询结果中. SELECT * FROM t_book WHERE booktypeId IN (SELECT id FROM t_booktype);SELECT * FROM t_book WHERE booktypeId NOT IN (SELECT id FROM t_booktype); 4.2 带比较运算符的子查询 子查询可以使用比较运算符. SELECT * FROM t_book WHERE pri…