﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-BlueSpace-文章分类-mysql数据库</title><link>http://www.blogjava.net/wufalong/category/25521.html</link><description>思想有多远，我们就能走多远！</description><language>zh-cn</language><lastBuildDate>Tue, 19 Feb 2008 08:16:45 GMT</lastBuildDate><pubDate>Tue, 19 Feb 2008 08:16:45 GMT</pubDate><ttl>60</ttl><item><title>mysqldump</title><link>http://www.blogjava.net/wufalong/articles/180603.html</link><dc:creator>crazy</dc:creator><author>crazy</author><pubDate>Tue, 19 Feb 2008 02:38:00 GMT</pubDate><guid>http://www.blogjava.net/wufalong/articles/180603.html</guid><wfw:comment>http://www.blogjava.net/wufalong/comments/180603.html</wfw:comment><comments>http://www.blogjava.net/wufalong/articles/180603.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wufalong/comments/commentRss/180603.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wufalong/services/trackbacks/180603.html</trackback:ping><description><![CDATA[shell&gt; mysqldump [OPTIONS] database [tables]<br /><br />如果你不给定任何表，整个数据库将被导出。<br /><br />通过执行mysqldump --help，你能得到你mysqldump的版本支持的选项表。<br /><br />注意，如果你运行mysqldump没有--quick或--opt选项，mysqldump将在导出结果前装载整个结果集到内存中，如果你正在导出一个大的数据库，这将可能是一个问题。<br /><br />mysqldump支持下列选项：<br /><br />--add-locks<br />在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。<br />--add-drop-table<br />在每个create语句之前增加一个drop table。<br />--allow-keywords<br />允许创建是关键词的列名字。这由表名前缀于每个列名做到。<br />-c, --complete-insert<br />使用完整的insert语句(用列名字)。<br />-C, --compress<br />如果客户和服务器均支持压缩，压缩两者间所有的信息。<br />--delayed<br />用INSERT DELAYED命令插入行。<br />-e, --extended-insert<br />使用全新多行INSERT语法。（给出更紧缩并且更快的插入语句）<br />-#, --debug[=option_string]<br />跟踪程序的使用(为了调试)。<br />--help<br />显示一条帮助消息并且退出。<br />--fields-terminated-by=...<br />　<br />--fields-enclosed-by=...<br />　<br />--fields-optionally-enclosed-by=...<br />　<br />--fields-escaped-by=...<br />　<br />--fields-terminated-by=...<br />这些选择与-T选择一起使用，并且有相应的LOAD DATA INFILE子句相同的含义。<br />LOAD DATA INFILE语法。<br />-F, --flush-logs<br />在开始导出前，洗掉在MySQL服务器中的日志文件。<br />-f, --force,<br />即使我们在一个表导出期间得到一个SQL错误，继续。<br />-h, --host=..<br />从命名的主机上的MySQL服务器导出数据。缺省主机是localhost。<br />-l, --lock-tables.<br />为开始导出锁定所有表。<br />-t, --no-create-info<br />不写入表创建信息(CREATE TABLE语句）<br />-d, --no-data<br />不写入表的任何行信息。如果你只想得到一个表的结构的导出，这是很有用的！<br />--opt<br />同--quick --add-drop-table --add-locks --extended-insert --lock-tables。<br />应该给你为读入一个MySQL服务器的尽可能最快的导出。<br />-pyour_pass, --password[=your_pass]<br />与服务器连接时使用的口令。如果你不指定“=your_pass”部分，mysqldump需要来自终端的口令。<br />-P port_num, --port=port_num<br />与一台主机连接时使用的TCP/IP端口号。（这用于连接到localhost以外的主机，因为它使用 Unix套接字。）<br />-q, --quick<br />不缓冲查询，直接导出至stdout；使用mysql_use_result()做它。<br />-S /path/to/socket, --socket=/path/to/socket<br />与localhost连接时（它是缺省主机)使用的套接字文件。<br />-T, --tab=path-to-some-directory<br />对于每个给定的表，创建一个table_name.sql文件，它包含SQL CREATE 命令，和一个table_name.txt文件，它包含数据。 注意：这只有在mysqldump运行在mysqld守护进程运行的同一台机器上的时候才工作。.txt文件的格式根据--fields-xxx和--lines--xxx选项来定。<br />-u user_name, --user=user_name<br />与服务器连接时，MySQL使用的用户名。缺省值是你的Unix登录名。<br />-O var=option, --set-variable var=option设置一个变量的值。可能的变量被列在下面。<br />-v, --verbose<br />冗长模式。打印出程序所做的更多的信息。<br />-V, --version<br />打印版本信息并且退出。<br />-w, --where='where-condition'<br />只导出被选择了的记录；注意引号是强制的！<br />"--where=user='jimf'" "-wuserid&gt;1" "-wuserid&lt;1"<br /><br /><br />C:\Documents and Settings\Administrator&gt;mysqldump -t -w "UserID&lt;=10" -u root -p<br />test Sys_user &gt; d:test.sql 条件导出只导数据<br />mysql&gt; source d:test.sql;导入数据<br /><img src ="http://www.blogjava.net/wufalong/aggbug/180603.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wufalong/" target="_blank">crazy</a> 2008-02-19 10:38 <a href="http://www.blogjava.net/wufalong/articles/180603.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>distinct 与 order by </title><link>http://www.blogjava.net/wufalong/articles/165418.html</link><dc:creator>crazy</dc:creator><author>crazy</author><pubDate>Wed, 05 Dec 2007 02:45:00 GMT</pubDate><guid>http://www.blogjava.net/wufalong/articles/165418.html</guid><wfw:comment>http://www.blogjava.net/wufalong/comments/165418.html</wfw:comment><comments>http://www.blogjava.net/wufalong/articles/165418.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wufalong/comments/commentRss/165418.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wufalong/services/trackbacks/165418.html</trackback:ping><description><![CDATA[今天遇到一个问题,文章评论回复,由于评论和回复是二个不同的表,现在要根据回复时间来排序,而回复表的记录可能存在可能不存在.
<p>SELECT  * from Sys_Article_Remark  sar left join `Sys_Remark_Reply` rr on sar.`id`=rr.`remarkId` where sar.`articleId`=18273  order by rr.`replyTime` desc 肯定不行..它会把所有的记录都查寻出来,我们的评论表不能出现重复.</p><p>用SELECT  distinct *  from Sys_Article_Remark  sar left join `Sys_Remark_Reply` rr on sar.`id`=rr.`remarkId` where sar.`articleId`=18273  order by rr.`replyTime` desc和上面一样的效果.</p><p>用SELECT *  from Sys_Article_Remark  sar left join `Sys_Remark_Reply` rr on sar.`id`=rr.`remarkId` where sar.`articleId`=18273  group by rr.`remarkId` order by rr.`replyTime` desc 根据articleId分组也不行..因为它会把回复表中不存的记录,所有null记录当成是一组..对distinct来说.所有null也是相同的.</p><p>最后用SELECT *  from Sys_Article_Remark  sar left join `Sys_Remark_Reply` rr on sar.`id`=rr.`remarkId` where sar.`articleId`=18273 group by sar.id order by rr.`replyTime` desc ..根据评论id来分组.就不会出现评论重复了.</p><p>distinct 表示不出现重复的列,group by表示按列分组.这二个的性能问题还没认真看过.不过自己感觉group by 比 distinct 更好用.因为distinct只对单个字段有用.如果查询多个就不行了.</p><p>如 数据表test 中的记录 主键 id 值 name</p><p>假设有 1,a 2,b 3,c 4,b 5,c 这五条记录.如果你只想查出a b c 用 select distinct name from test 可以做到.结果为 name a b c .如果你想把name 对应的id也查出来 用 select id,distinct name from test  这时distinct 就没有用了.因为id没有重复.所以它会把所有记录都显示出来.</p><p>现在最好用group by</p><p>select * from test group by name 这样就强制只显示3条记录了…</p><img src ="http://www.blogjava.net/wufalong/aggbug/165418.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wufalong/" target="_blank">crazy</a> 2007-12-05 10:45 <a href="http://www.blogjava.net/wufalong/articles/165418.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql table处理</title><link>http://www.blogjava.net/wufalong/articles/161629.html</link><dc:creator>crazy</dc:creator><author>crazy</author><pubDate>Mon, 19 Nov 2007 07:25:00 GMT</pubDate><guid>http://www.blogjava.net/wufalong/articles/161629.html</guid><wfw:comment>http://www.blogjava.net/wufalong/comments/161629.html</wfw:comment><comments>http://www.blogjava.net/wufalong/articles/161629.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wufalong/comments/commentRss/161629.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wufalong/services/trackbacks/161629.html</trackback:ping><description><![CDATA[
		<p>mysql 的表类型更改<br />修改<br />alter table tablename change colaname newcolname integer not null <br />增加<br />alter table tablename add colname integer not null<br />删除<br />alter table tablename drop colnum colname</p>
		<p>导出整个数据库<br />mysqldump -h 192.168.2.165 -p -u root datebasename &gt; filename.sql<br />导出其中的表<br />mysqldump -h 192.168.2.165 -p -u root datebasename tablename &gt; filename.sql<br />只导出数据库的结构 -d表示不要数据<br />mysqldump -h 192.168.2.165 -p -u root -d --add-drop-table datebasename &gt; filename.sql<br />按条件导出表中的数据,导出id&lt;10的 其中--where="id&lt;10"的简写为 -w "id&lt;10"<br />mysqldump -h 192.168.2.165 -p -u root --where="id&lt;10"  datebasename &gt; filename.sql<br />mysqldump -h 192.168.2.165 -p -u root -w "id&lt;10"  datebasename &gt; filename.sql</p>
		<p>-l, --lock-tables.<br />为开始导出锁定所有表。</p>
		<p>-C, --compress<br />如果客户和服务器均支持压缩，压缩两者间所有的信息。</p>
		<p>数据的导入<br />source filename.sql</p>
<img src ="http://www.blogjava.net/wufalong/aggbug/161629.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wufalong/" target="_blank">crazy</a> 2007-11-19 15:25 <a href="http://www.blogjava.net/wufalong/articles/161629.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql时间函数</title><link>http://www.blogjava.net/wufalong/articles/161628.html</link><dc:creator>crazy</dc:creator><author>crazy</author><pubDate>Mon, 19 Nov 2007 07:24:00 GMT</pubDate><guid>http://www.blogjava.net/wufalong/articles/161628.html</guid><wfw:comment>http://www.blogjava.net/wufalong/comments/161628.html</wfw:comment><comments>http://www.blogjava.net/wufalong/articles/161628.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wufalong/comments/commentRss/161628.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wufalong/services/trackbacks/161628.html</trackback:ping><description><![CDATA[
		<p>对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6 日期和时间类型。  </p>
		<p>这里是一个使用日期函数的例子。下面的查询选择了所有记录，其date_col的值是在最后30天以内：  </p>
		<p>mysql&gt; SELECT something FROM table  <br />WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) &lt;= 30;  </p>
		<p>DAYOFWEEK(date)  <br />返回日期date的星期索引(1=星期天，2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。  <br />mysql&gt; select DAYOFWEEK('1998-02-03');  <br />-&gt; 3  </p>
		<p>WEEKDAY(date)  <br />返回date的星期索引(0=星期一，1=星期二, ……6= 星期天)。  <br />mysql&gt; select WEEKDAY('1997-10-04 22:23:00');  <br />-&gt; 5  <br />mysql&gt; select WEEKDAY('1997-11-05');  <br />-&gt; 2  </p>
		<p>DAYOFMONTH(date)  <br />返回date的月份中日期，在1到31范围内。  <br />mysql&gt; select DAYOFMONTH('1998-02-03');  <br />-&gt; 3  </p>
		<p>DAYOFYEAR(date)  <br />返回date在一年中的日数, 在1到366范围内。  <br />mysql&gt; select DAYOFYEAR('1998-02-03');  <br />-&gt; 34  </p>
		<p>MONTH(date)  <br />返回date的月份，范围1到12。  <br />mysql&gt; select MONTH('1998-02-03');  <br />-&gt; 2  </p>
		<p>DAYNAME(date)  <br />返回date的星期名字。  <br />mysql&gt; select DAYNAME("1998-02-05");  <br />-&gt; 'Thursday'  </p>
		<p>MONTHNAME(date)  <br />返回date的月份名字。  <br />mysql&gt; select MONTHNAME("1998-02-05");  <br />-&gt; 'February'  </p>
		<p>QUARTER(date)  <br />返回date一年中的季度，范围1到4。  <br />mysql&gt; select QUARTER('98-04-01');  <br />-&gt; 2  </p>
		<p>WEEK(date)  <br />　  <br />WEEK(date,first)  <br />对于星期天是一周的第一天的地方，有一个单个参数，返回date的周数，范围在0到52。2个参数形式WEEK()允许 <br />你指定星期是否开始于星期天或星期一。如果第二个参数是0，星期从星期天开始，如果第二个参数是1， <br />从星期一开始。  <br />mysql&gt; select WEEK('1998-02-20');  <br />-&gt; 7  <br />mysql&gt; select WEEK('1998-02-20',0);  <br />-&gt; 7  <br />mysql&gt; select WEEK('1998-02-20',1);  <br />-&gt; 8  </p>
		<p>YEAR(date)  <br />返回date的年份，范围在1000到9999。  <br />mysql&gt; select YEAR('98-02-03');  <br />-&gt; 1998  </p>
		<p>HOUR(time)  <br />返回time的小时，范围是0到23。  <br />mysql&gt; select HOUR('10:05:03');  <br />-&gt; 10  </p>
		<p>MINUTE(time)  <br />返回time的分钟，范围是0到59。  <br />mysql&gt; select MINUTE('98-02-03 10:05:03');  <br />-&gt; 5  </p>
		<p>SECOND(time)  <br />回来time的秒数，范围是0到59。  <br />mysql&gt; select SECOND('10:05:03');  <br />-&gt; 3  </p>
		<p>PERIOD_ADD(P,N)  <br />增加N个月到阶段P（以格式YYMM或YYYYMM)。以格式YYYYMM返回值。注意阶段参数P不是日期值。  <br />mysql&gt; select PERIOD_ADD(9801,2);  <br />-&gt; 199803  </p>
		<p>PERIOD_DIFF(P1,P2)  <br />返回在时期P1和P2之间月数，P1和P2应该以格式YYMM或YYYYMM。注意，时期参数P1和P2不是日期值。  <br />mysql&gt; select PERIOD_DIFF(9802,199703);  <br />-&gt; 11  </p>
		<p>DATE_ADD(date,INTERVAL expr type)  <br />　  <br />DATE_SUB(date,INTERVAL expr type)  <br />　  <br />ADDDATE(date,INTERVAL expr type)  <br />　  <br />SUBDATE(date,INTERVAL expr type)  <br />这些功能执行日期运算。对于MySQL 3.22，他们是新的。ADDDATE()和SUBDATE()是DATE_ADD()和DATE_SUB()的同义词。 <br />在MySQL 3.23中，你可以使用+和-而不是DATE_ADD()和DATE_SUB()。（见例子）date是一个指定开始日期的 <br />DATETIME或DATE值，expr是指定加到开始日期或从开始日期减去的间隔值一个表达式，expr是一个字符串；它可以以 <br />一个“-”开始表示负间隔。type是一个关键词，指明表达式应该如何被解释。EXTRACT(type FROM date)函数从日期 <br />中返回“type”间隔。下表显示了type和expr参数怎样被关联： type值 含义 期望的expr格式  <br />SECOND 秒 SECONDS  <br />MINUTE 分钟 MINUTES  <br />HOUR 时间 HOURS  <br />DAY 天 DAYS  <br />MONTH 月 MONTHS  <br />YEAR 年 YEARS  <br />MINUTE_SECOND 分钟和秒 "MINUTES:SECONDS"  <br />HOUR_MINUTE 小时和分钟 "HOURS:MINUTES"  <br />DAY_HOUR 天和小时 "DAYS HOURS"  <br />YEAR_MONTH 年和月 "YEARS-MONTHS"  <br />HOUR_SECOND 小时, 分钟， "HOURS:MINUTES:SECONDS"  <br />DAY_MINUTE 天, 小时, 分钟 "DAYS HOURS:MINUTES"  <br />DAY_SECOND 天, 小时, 分钟, 秒 "DAYS HOURS:MINUTES:SECONDS"  </p>
		<p>MySQL在expr格式中允许任何标点分隔符。表示显示的是建议的分隔符。如果date参数是一个DATE值并且你的计算仅仅 <br />包含YEAR、MONTH和DAY部分(即，没有时间部分)，结果是一个DATE值。否则结果是一个DATETIME值。  </p>
		<p>mysql&gt; SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;  <br />-&gt; 1998-01-01 00:00:00  <br />mysql&gt; SELECT INTERVAL 1 DAY + "1997-12-31";  <br />-&gt; 1998-01-01  <br />mysql&gt; SELECT "1998-01-01" - INTERVAL 1 SECOND;  <br />-&gt; 1997-12-31 23:59:59  <br />mysql&gt; SELECT DATE_ADD("1997-12-31 23:59:59",  <br />INTERVAL 1 SECOND);  <br />-&gt; 1998-01-01 00:00:00  <br />mysql&gt; SELECT DATE_ADD("1997-12-31 23:59:59",  <br />INTERVAL 1 DAY);  <br />-&gt; 1998-01-01 23:59:59  <br />mysql&gt; SELECT DATE_ADD("1997-12-31 23:59:59",  <br />INTERVAL "1:1" MINUTE_SECOND);  <br />-&gt; 1998-01-01 00:01:00  <br />mysql&gt; SELECT DATE_SUB("1998-01-01 00:00:00",  <br />INTERVAL "1 1:1:1" DAY_SECOND);  <br />-&gt; 1997-12-30 22:58:59  <br />mysql&gt; SELECT DATE_ADD("1998-01-01 00:00:00",  <br />INTERVAL "-1 10" DAY_HOUR);  <br />-&gt; 1997-12-30 14:00:00  <br />mysql&gt; SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);  <br />-&gt; 1997-12-02  <br />mysql&gt; SELECT EXTRACT(YEAR FROM "1999-07-02");  <br />-&gt; 1999  <br />mysql&gt; SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03");  <br />-&gt; 199907  <br />mysql&gt; SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03");  <br />-&gt; 20102  </p>
		<p>如果你指定太短的间隔值(不包括type关键词期望的间隔部分)，MySQL假设你省掉了间隔值的最左面部分。例如， <br />如果你指定一个type是DAY_SECOND，值expr被希望有天、小时、分钟和秒部分。如果你象"1:10"这样指定值， <br />MySQL假设日子和小时部分是丢失的并且值代表分钟和秒。换句话说，"1:10" DAY_SECOND以它等价于"1:10" MINUTE_SECOND <br />的方式解释，这对那MySQL解释TIME值表示经过的时间而非作为一天的时间的方式有二义性。如果你使用确实不正确的日期， <br />结果是NULL。如果你增加MONTH、YEAR_MONTH或YEAR并且结果日期大于新月份的最大值天数，日子在新月用最大的天调整。  </p>
		<p>mysql&gt; select DATE_ADD('1998-01-30', Interval 1 month);  <br />-&gt; 1998-02-28  </p>
		<p>注意，从前面的例子中词INTERVAL和type关键词不是区分大小写的。  <br />TO_DAYS(date)  <br />给出一个日期date，返回一个天数(从0年的天数)。  <br />mysql&gt; select TO_DAYS(950501);  <br />-&gt; 728779  <br />mysql&gt; select TO_DAYS('1997-10-07');  <br />-&gt; 729669  </p>
		<p>TO_DAYS()不打算用于使用格列高里历(1582)出现前的值。  </p>
		<p>FROM_DAYS(N)  <br />给出一个天数N，返回一个DATE值。  <br />mysql&gt; select FROM_DAYS(729669);  <br />-&gt; '1997-10-07'  </p>
		<p>TO_DAYS()不打算用于使用格列高里历(1582)出现前的值。  </p>
		<p>DATE_FORMAT(date,format)  <br />根据format字符串格式化date值。下列修饰符可以被用在format字符串中： %M 月名字(January……December)  <br />%W 星期名字(Sunday……Saturday)  <br />%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。）  <br />%Y 年, 数字, 4 位  <br />%y 年, 数字, 2 位  <br />%a 缩写的星期名字(Sun……Sat)  <br />%d 月份中的天数, 数字(00……31)  <br />%e 月份中的天数, 数字(0……31)  <br />%m 月, 数字(01……12)  <br />%c 月, 数字(1……12)  <br />%b 缩写的月份名字(Jan……Dec)  <br />%j 一年中的天数(001……366)  <br />%H 小时(00……23)  <br />%k 小时(0……23)  <br />%h 小时(01……12)  <br />%I 小时(01……12)  <br />%l 小时(1……12)  <br />%i 分钟, 数字(00……59)  <br />%r 时间,12 小时(hh:mm:ss [AP]M)  <br />%T 时间,24 小时(hh:mm:ss)  <br />%S 秒(00……59)  <br />%s 秒(00……59)  <br />%p AM或PM  <br />%w 一个星期中的天数(0=Sunday ……6=Saturday ）  <br />%U 星期(0……52), 这里星期天是星期的第一天  <br />%u 星期(0……52), 这里星期一是星期的第一天  <br />%% 一个文字“%”。  </p>
		<p>所有的其他字符不做解释被复制到结果中。  </p>
		<p>mysql&gt; select DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');  <br />-&gt; 'Saturday October 1997'  <br />mysql&gt; select DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');  <br />-&gt; '22:23:00'  <br />mysql&gt; select DATE_FORMAT('1997-10-04 22:23:00',  <br />'%D %y %a %d %m %b %j');  <br />-&gt; '4th 97 Sat 04 10 Oct 277'  <br />mysql&gt; select DATE_FORMAT('1997-10-04 22:23:00',  <br />'%H %k %I %r %T %S %w');  <br />-&gt; '22 22 10 10:23:00 PM 22:23:00 00 6'  <br />MySQL3.23中，在格式修饰符字符前需要%。在MySQL更早的版本中，%是可选的。  </p>
		<p>TIME_FORMAT(time,format)  <br />这象上面的DATE_FORMAT()函数一样使用，但是format字符串只能包含处理小时、分钟和秒的那些格式修饰符。 <br />其他修饰符产生一个NULL值或0。  <br />CURDATE()  <br />　  <br />CURRENT_DATE  <br />以'YYYY-MM-DD'或YYYYMMDD格式返回今天日期值，取决于函数是在一个字符串还是数字上下文被使用。  <br />mysql&gt; select CURDATE();  <br />-&gt; '1997-12-15'  <br />mysql&gt; select CURDATE() + 0;  <br />-&gt; 19971215  </p>
		<p>CURTIME()  <br />　  <br />CURRENT_TIME  <br />以'HH:MM:SS'或HHMMSS格式返回当前时间值，取决于函数是在一个字符串还是在数字的上下文被使用。  <br />mysql&gt; select CURTIME();  <br />-&gt; '23:50:26'  <br />mysql&gt; select CURTIME() + 0;  <br />-&gt; 235026  </p>
		<p>NOW()  <br />　  <br />SYSDATE()  <br />　  <br />CURRENT_TIMESTAMP  <br />以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回当前的日期和时间，取决于函数是在一个字符串还是在数字的 <br />上下文被使用。  <br />mysql&gt; select NOW();  <br />-&gt; '1997-12-15 23:50:26'  <br />mysql&gt; select NOW() + 0;  <br />-&gt; 19971215235026  </p>
		<p>UNIX_TIMESTAMP()  <br />　  <br />UNIX_TIMESTAMP(date)  <br />如果没有参数调用，返回一个Unix时间戳记(从'1970-01-01 00:00:00'GMT开始的秒数)。如果UNIX_TIMESTAMP()用一 <br />个date参数被调用，它返回从'1970-01-01 00:00:00' GMT开始的秒数值。date可以是一个DATE字符串、一个DATETIME <br />字符串、一个TIMESTAMP或以YYMMDD或YYYYMMDD格式的本地时间的一个数字。  <br />mysql&gt; select UNIX_TIMESTAMP();  <br />-&gt; 882226357  <br />mysql&gt; select UNIX_TIMESTAMP('1997-10-04 22:23:00');  <br />-&gt; 875996580  </p>
		<p>当UNIX_TIMESTAMP被用于一个TIMESTAMP列，函数将直接接受值，没有隐含的“string-to-unix-timestamp”变换。  </p>
		<p>FROM_UNIXTIME(unix_timestamp)  <br />以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回unix_timestamp参数所表示的值，取决于函数是在一个字符串 <br />还是或数字上下文中被使用。  <br />mysql&gt; select FROM_UNIXTIME(875996580);  <br />-&gt; '1997-10-04 22:23:00'  <br />mysql&gt; select FROM_UNIXTIME(875996580) + 0;  <br />-&gt; 19971004222300  </p>
		<p>FROM_UNIXTIME(unix_timestamp,format)  <br />返回表示 Unix 时间标记的一个字符串，根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条 <br />目同样的修饰符。  <br />mysql&gt; select FROM_UNIXTIME(UNIX_TIMESTAMP(),  <br />'%Y %D %M %h:%i:%s %x');  <br />-&gt; '1997 23rd December 03:43:30 x'  </p>
		<p>SEC_TO_TIME(seconds)  <br />返回seconds参数，变换成小时、分钟和秒，值以'HH:MM:SS'或HHMMSS格式化，取决于函数是在一个字符串还是在数字 <br />上下文中被使用。  <br />mysql&gt; select SEC_TO_TIME(2378);  <br />-&gt; '00:39:38'  <br />mysql&gt; select SEC_TO_TIME(2378) + 0;  <br />-&gt; 3938  </p>
		<p>TIME_TO_SEC(time)  <br />返回time参数，转换成秒。  <br />mysql&gt; select TIME_TO_SEC('22:23:00');  <br />-&gt; 80580  <br />mysql&gt; select TIME_TO_SEC('00:39:38');  <br />-&gt; 2378 <br /></p>
<img src ="http://www.blogjava.net/wufalong/aggbug/161628.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wufalong/" target="_blank">crazy</a> 2007-11-19 15:24 <a href="http://www.blogjava.net/wufalong/articles/161628.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>给所有数据库增加所有权限</title><link>http://www.blogjava.net/wufalong/articles/161527.html</link><dc:creator>crazy</dc:creator><author>crazy</author><pubDate>Mon, 19 Nov 2007 02:27:00 GMT</pubDate><guid>http://www.blogjava.net/wufalong/articles/161527.html</guid><wfw:comment>http://www.blogjava.net/wufalong/comments/161527.html</wfw:comment><comments>http://www.blogjava.net/wufalong/articles/161527.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wufalong/comments/commentRss/161527.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wufalong/services/trackbacks/161527.html</trackback:ping><description><![CDATA[grant all privileges on *.* to root@’192.168.2.%’ identified by ‘123456′;<br />*.*表示所有数据库的所有表,只为test数据库增加则改为test.*<br />root@’192.168.2.%’ 表示用户名为root,可以自行更改,’192.168.2.%’是限制访问的IP段<br />可单独指定一个IP.如’192.168.2.165′ 也可以用于所有IP ‘%’<br />identified by ‘123456′; 访问时的密码<br />如果只想设置部分权限,如只有查询和增加权限<br />grant select,create privileges on *.* to root@’192.168.2.%’ identified by ‘123456′;<br />权限一般有这几种select,insert,update,delete,create,drop<br /><br />mysql 的表类型更改<br />修改<br />alter table tablename change colaname newcolname integer not null <br />增加<br />alter table tablename add colname integer not null<br />删除<br />alter table tablename drop colnum colname<img src ="http://www.blogjava.net/wufalong/aggbug/161527.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wufalong/" target="_blank">crazy</a> 2007-11-19 10:27 <a href="http://www.blogjava.net/wufalong/articles/161527.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql数据库增加用户和权限</title><link>http://www.blogjava.net/wufalong/articles/142361.html</link><dc:creator>crazy</dc:creator><author>crazy</author><pubDate>Mon, 03 Sep 2007 08:24:00 GMT</pubDate><guid>http://www.blogjava.net/wufalong/articles/142361.html</guid><wfw:comment>http://www.blogjava.net/wufalong/comments/142361.html</wfw:comment><comments>http://www.blogjava.net/wufalong/articles/142361.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wufalong/comments/commentRss/142361.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wufalong/services/trackbacks/142361.html</trackback:ping><description><![CDATA[
		<p>
				<font size="1">以root连接到服务器上后，可以添加新账户。下面的语句使用GRANT来设置四个新账户：<br />mysql&gt;GRANT ALL PRIVILEGES ON *.* TO <a href="mailto:'monty'@'localhost'">'monty'@'localhost'</a><br />-&gt;IDENTIFIED BY 'some_pass' WITH GRANT OPTION;<br />mysql&gt;GRANT ALL PRIVILEGES ON *.* TO <a href="mailto:'monty'@'%'">'monty'@'%'</a><br />-&gt;IDENTIFIED BY 'some_pass' WITH GRANT OPTION;<br />mysql&gt;GRANT RELOAD,PROCESS ON *.* TO <a href="mailto:'admin'@'localhost'">'admin'@'localhost'</a>;<br />mysql&gt;GRANT USAGE ON *.* TO <a href="mailto:'dummy'@'localhost'">'dummy'@'localhost'</a>;    <br />用GRANT语句创建的账户有下面的属性：<br />· 其中两个账户有相同的用户名monty和密码some_pass。两个账户均为超级用户账户，<br />具有完全的权限可以做任何事情。一个账户 (<a href="mailto:'monty'@'localhost'">'monty'@'localhost'</a>)只用于从本机连接时。<br />另一个账户(<a href="mailto:'monty'@'%'">'monty'@'%'</a>)可用于从其它主机连接。请注意monty的两个账户必须能从任何主机以monty连接。<br />没有localhost账户，当monty从本机连接时，mysql_install_db创建的localhost的匿名用户账户将占先。<br />结果是，monty将被视为匿名用户。原因是匿名用户账户的Host列值比<a href="mailto:'monty'@'%'">'monty'@'%'</a>账户更具体，<br />这样在user表排序顺序中排在前面。(user表排序的讨论参见5.7.5节，“访问控制, 阶段1：连接核实”）。 <br />·  一个账户有用户名admin，没有密码。该账户只用于从本机连接。授予了RELOAD和PROCESS管理权限。这些权限允许admin用户执行mysqladmin reload、mysqladmin refresh和mysqladmin flush-xxx命令，以及mysqladmin processlist。未授予访问数据库的权限。你可以通过GRANT语句添加此类权限。<br />·  一个账户有用户名dummy，没有密码。该账户只用于从本机连接。未授予权限。通过GRANT语句中的USAGE权限，你可以创建账户而不授予任何权限。它可以将所有全局权限设为'N'。假定你将在以后将具体权限授予该账户。<br />mysql&gt; GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP<br /> -&gt; ON bankaccount.*<br /> -&gt; TO <a href="mailto:'custom'@'localhost'">'custom'@'localhost'</a><br />-&gt;  IDENTIFIED BY 'obscure';<br />mysql&gt; GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP<br />-&gt;  ON expenses.*<br />-&gt;  TO <a href="mailto:'custom'@'whitehouse.gov'">'custom'@'whitehouse.gov'</a><br />-&gt;  IDENTIFIED BY 'obscure';<br />mysql&gt;GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP<br />-&gt;  ON customer.*<br />-&gt;  TO <a href="mailto:'custom'@'server.domain'">'custom'@'server.domain'</a><br />-&gt;  IDENTIFIED BY 'obscure';    <br />这3个账户可以用于：<br />·   第1个账户可以访问bankaccount数据库，但只能从本机访问。<br />·   第2个账户可以访问expenses数据库，但只能从主机whitehouse.gov访问。<br />·    第3个账户可以访问customer数据库，但只能从主机server.domain访问。<br /></font>
		</p>
<img src ="http://www.blogjava.net/wufalong/aggbug/142361.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wufalong/" target="_blank">crazy</a> 2007-09-03 16:24 <a href="http://www.blogjava.net/wufalong/articles/142361.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>