
mysql
呼啸
09年开始编程,一直到现在。看看自己进步了什么。
展开
-
MYSQL的降序排列
今天查询时需要用到降序排列,老是出错,仔细检查SQL语法也没问题,后来才知道,原来order by要放在limit的前面。或者说limit要放在最后。String sql = "select * from s_dayreport " + "where userId = "+userId+" " + "order by taskDate desc " + "原创 2013-01-25 14:59:04 · 6237 阅读 · 0 评论 -
mysql 子查询
1、EXISTS和NOT EXISTS操作符只测试某个子查询是否返回了数据行。如果是,则EXISTS将是true. NOT EXISTS将是false.如:select exitsts (select * from absence);select not exists (select * from absence);2、与主查询相关的子查询需要引用主查询里的值,所以必须原创 2013-10-11 15:56:19 · 1193 阅读 · 0 评论 -
mysql where 和having字句的却别
原文链接having的用法having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前。而 having子句在聚合后对组记录进行筛选。SQL实例:一、显示每个地区的总人口数和总面积.SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY转载 2013-10-15 12:02:33 · 898 阅读 · 0 评论 -
mysql 视图
如果要选取某给定数据表的数据列的一个子集,把它定义为一个简单的视图是最方便的做法。比如说,假设经常需要从student数据表选取name和sex等2个数据列,但不想每次都必须写出所有这些数据列,也不想用select * 造成浪费,此时可以用视图: CREATE VIEW myViewselect s.name,s.sex from student as s; 这原创 2013-10-16 18:02:03 · 824 阅读 · 0 评论 -
mysql修改表名的SQL语句
这个语句用的很少,因为我一般都是通过NAVICAT和SQLYOG这种图形界面的软件去操作。不过应该还是要学习下,因为如果在程序中用到的话,就得用SQL来操作了其实很简单:alter table student rename to new_student;原创 2013-10-24 16:37:10 · 2660 阅读 · 0 评论 -
mysql使用存储过程返回多个值
可以使用OUT、INOUT参数类型让存储过程返回多个结果值,存储函数不能胜任,因为只能返回一个值。比如统计student数据表里男生和女生人数并通过它的参数返回这两个计数值,让调用者可以访问它们:delimiter $$create procedure count_students_by_sex(out p_male int ,out p_female int)beginselec原创 2013-10-28 11:00:57 · 4560 阅读 · 0 评论 -
mysql 触发器
触发器是与特定数据表相关联的存储过程,当相应的数据表被INSERT、DELETE或UPDATE语句修改时,触发器将自动执行。如:delimiter $$;create trigger bi_t before insert on tfor each row beginset new.dt = CURRENT_TIMESATMP;end$$;deli原创 2013-10-29 09:58:16 · 654 阅读 · 0 评论 -
mysql选择索引
1、尽量为用来搜索、分类或分组的数据列编制索引,不要为作为输出显示的数据列编制索引。最适合有索引的数据列是那些在where子句中数据列,在联结子句中出现的数据列,或者是在Group by 、Order by子句中出现的数据列。select 后的数据列最好不要用索引。2、综合考虑各数据列的维度。数据列的维度等于它所容纳的非重复值的个数。比如说,如果某个数据列的值是1,2,3,3,4。那么原创 2013-11-01 10:36:24 · 1345 阅读 · 0 评论 -
解决Linux下mysql区分表名大小写的问题
MySQL在Linux下采用 rpm方式安装后默认是:数据库名与表名\表的别名\变量名是严格区分大小写1.用root帐号登录,/etc/mysql/my.cnf中的[mysqld]后添加lower_case_table_names=1 操作命令: vi /etc/my.cnf[mysqld]## * Basic Settings#user = mysqlpid-f原创 2013-10-31 09:50:55 · 4227 阅读 · 0 评论 -
mysql中key 、primary key 、unique key 与index区别
原作者:zccst 原文地址:http://zccst.iteye.com/blog/1697043一、key与primary key区别 CREATE TABLE wh_logrecord ( logrecord_id int(11) NOT NULL auto_increment, user_name varchar(100) default NULL, operati转载 2013-11-19 09:54:15 · 1035 阅读 · 0 评论 -
SQL的SUBSTR()函数
SUBSTR函数是用来截取数据库某一列字段中的一部分。在各个数据库的函数名称不一样(真是蛋疼,后发明的数据库难道不能同先发明的一样吗?)MySQL: SUBSTR( ), SUBSTRING( ) Oracle: SUBSTR( ) SQL Server: SUBSTRING( ) ;常用的方式是:SBUSTR(str,pos);就是从pos开始的位置,一直截取到最后。原创 2013-11-19 15:51:43 · 76934 阅读 · 0 评论 -
mysql查询优化
1、不要在LIKE模式的开始位置使用通配符。不要出于习惯而将符号%放在字符串的两侧。如果只想找到出现在数据列开始位置的字符串,就需要一个%.假定你想找Mac开始包含的名字。如MacGre和MacDel.就需要这样:where last_name like 'Mac%';优化程序看到后,会使用索引找到匹配的数据行,就好像下面的表达式,这种表达式允许对last_name使用索引:原创 2013-11-07 10:15:27 · 1009 阅读 · 0 评论 -
mysql联结操作符
1、逗号关联操作符的效果与INNER JOIN相似:select t1.*,t2.* from t1, t2 where t1.i = t2.i;等价于:select t1.*,t2.* from t1 INNER JOIN t2 where t1.i = t2.i;注意,逗号关联操作符的优先级和其他联结类型不一样,有时还会导致语法错误,而其他联结操作符没有这个问题。原创 2013-10-11 12:18:14 · 1051 阅读 · 0 评论 -
20:44:57 [mysql] MySQL Service Detected With Wrong Path
20:44:57 [main] Initializing Control Panel20:44:57 [main] Windows Version: Windows 7 Professional SP1 64-bit20:44:57 [main] XAMPP Version: 1.8.020:44:57 [main] Control Panel Version: 3.0.12 [ Co转载 2013-06-03 21:28:53 · 3869 阅读 · 0 评论 -
mysql的查询语句
在工作中需要用到查询语句:String userName = name; System.out.println("loginName:"+name); System.out.println("password:"+password); List list = new ArrayList(); list = new ArrayList(); con = new DBUtl原创 2013-01-21 15:59:18 · 853 阅读 · 0 评论 -
mysql单引号和双引号的用法
这就要从双引号和单引号的作用讲起:双引号里面的字段会经过编译器解释然后再当作HTML代码输出,但是单引号里面的不需要解释,直接输出。例如:$abc='I love u';echo $abc //结果是:I love uecho '$abc' //结果是:$abcecho "$abc" //结果是:I love u所以在对数据库里面的SQL语句赋值的时候也要用在双引号里面SQ转载 2013-02-19 15:17:25 · 2340 阅读 · 0 评论 -
mysql Duplicate entry ''xxx" for key 'NewIndex1'错误
今天在mysql插入时老是报这样的错误,根据报错信息,NewIndex是有关索引的。于是查看索引:可见插入的week,year,userId这一组数据放在一起是不能重复的。而我插入的时候插入的是重复的...没有注意到。原创 2013-03-29 16:44:41 · 5152 阅读 · 0 评论 -
mysql创建临时列
今天在写一个sql时,出现错误SELECT COUNT(s_dayreport.*) FROM s_dayreport INNER JOIN s_subuser ON s_dayreport.userId = s_subuser.userId WHERE s_subuser.mgrId = 63错误信息如下:老师说我的sql错误,修改如下:SELECT COUNT(*)原创 2013-03-15 17:08:51 · 4725 阅读 · 0 评论 -
sql语句换行的问题
今天在执行SQL语句时发现错误,SQL语句是这样的:sql = "select s_dayreport.* from s_dayreport inner join s_subuser on s_dayreport.userId = s_subuser.userId where s_subuser.mgrId = "+id+" and s_subuser.userId = "+su原创 2013-03-18 15:26:46 · 9741 阅读 · 1 评论 -
MySQL和java类型对应
java mysql 数据类型对照类型名称显示长度数据库类型JAVA类型JDBC类型索引(int)描述 VARCHARL+NVARCHARjava.lang.String12 CHARN转载 2013-03-21 17:27:50 · 1142 阅读 · 0 评论 -
在java的中由Date引发的错误
今天碰到一个错误,有些无厘头:在java用有这样一个sql:sql = "SELECT COUNT(*) FROM s_dayreport WHERE `realName`='"+name+"' and `taskDate` between '"+beginDate+"' and '"+endDate+"' and `workStatusId`=1";name是 adminbeg原创 2013-04-19 15:37:39 · 918 阅读 · 0 评论 -
mysql获取当天日期
mysql 中可以使用CURDATE()函数获取当天日期。如果要获取今天的记录可以用select * from my_table where biz_date >= CURDATE()来获取。原创 2013-05-16 17:42:44 · 2522 阅读 · 0 评论 -
MySQL DATE_ADD() 函数
其实我一直觉得叫DATE_ADD()函数不合理,老误导别人,因为不仅仅是日期的增加,其实我很多时候是用他来减法的。是不是改成DATE_CHANGE()更好?:)定义和用法DATE_ADD() 函数向日期添加指定的时间间隔。用法:DATE_ADD(date,INTERVAL expr type)date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。 type表示原创 2013-05-22 17:35:41 · 1564 阅读 · 0 评论 -
mysql的like语句中的几个通配符
MySql的like语句中的通配符:百分号、下划线和escape %代表任意多个字符Sql代码 www.2cto.com select * from user where username like '%huxiao'; select * from user where username like 'huxiao%';转载 2013-05-27 16:21:14 · 6658 阅读 · 0 评论 -
MYSQL性能优化
1、开启查询缓存大多数的Mysql服务器都开启了查询缓存,这是提高mysql性能的最有效的办法之一。而且这是被Mysql的数据库引擎处理的。当有很多相同的查询被执行多次的时候,这些查询会被放到一个缓存中,这样,后续的查询就不会操作表而直接访问缓存结果了。但是这里有一个问题,很多时候,我们的一些语句会让Mysql 不开启查询缓存,看下面两个语句:// 查询缓存不开启 $r = my原创 2013-05-28 11:49:32 · 727 阅读 · 0 评论 -
MySQL数据库MyISAM和InnoDB存储引擎的比较
原文地址:http://www.cnblogs.com/panfeng412/archive/2011/08/16/2140364.htmlMySQL有多种存储引擎,MyISAM和InnoDB是其中常用的两种。这里介绍关于这两种引擎的一些基本概念(非深入介绍)。MyISAM是MySQL的默认存储引擎,基于传统的ISAM类型,支持全文搜索,但不是事务安全的,而且不支持外键。每张MyISAM表转载 2013-11-25 15:02:35 · 709 阅读 · 0 评论