??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品一区二区三区蜜桃久 ,欧美激情中文字幕乱码免费,色yeye香蕉凹凸一区二区avhttp://www.aygfsteel.com/jaunt/category/17727.html站在巨h的肩?lt;br> Flying in the world of Javazh-cnFri, 24 Aug 2007 03:39:27 GMTFri, 24 Aug 2007 03:39:27 GMT60MySQL提示?3个注意事?/title><link>http://www.aygfsteel.com/jaunt/archive/2007/08/24/138996.html</link><dc:creator>Jaunt</dc:creator><author>Jaunt</author><pubDate>Fri, 24 Aug 2007 01:14:00 GMT</pubDate><guid>http://www.aygfsteel.com/jaunt/archive/2007/08/24/138996.html</guid><wfw:comment>http://www.aygfsteel.com/jaunt/comments/138996.html</wfw:comment><comments>http://www.aygfsteel.com/jaunt/archive/2007/08/24/138996.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jaunt/comments/commentRss/138996.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jaunt/services/trackbacks/138996.html</trackback:ping><description><![CDATA[<h5>使用<span lang="EN-US">MySQL</span>Q安全问题不能不注意。以下是<span lang="EN-US">MySQL</span>提示?span lang="EN-US">23</span>个注意事?span lang="EN-US">: </span></h5> <p>  使用<span lang="EN-US">MySQL</span>Q安全问题不能不注意。以下是<span lang="EN-US">MySQL</span>提示?span lang="EN-US">23</span>个注意事?span lang="EN-US">:</span></p> <p>  <span lang="EN-US">1.</span>如果客户端和服务器端的连接需要跨ƈ通过不可信Q的网l,那么需要?span lang="EN-US">SSH</span>隧道来加密该q接的通信?/p> <p>  <span lang="EN-US">2.</span>?span lang="EN-US">set password</span>语句来修改用L密码Q三个步骤,?span lang="EN-US">“mysql -u root”</span>登陆数据库系l,然后<span lang="EN-US">“mysql> update mysql.user set password=password('newpwd')”</span>Q最后执?span lang="EN-US">“flush privileges”</span>可以了?/p> <p>  <span lang="EN-US">3.</span>需要提防的d有,防偷听、篡攏V回放、拒l服务等Q不涉及可用性和定w斚w。对所有的q接、查询、其他操作用基?span lang="EN-US">ACL</span>卌问控制列表的安全措施来完成。也有一些对<span lang="EN-US">SSL</span>q接的支持?/p> <p>  <span lang="EN-US">4.</span>除了<span lang="EN-US">root</span>用户外的其他M用户不允许访?span lang="EN-US">mysql</span>L据库中的<span lang="EN-US">user</span>?span lang="EN-US">;</span></p> <p>  加密后存攑֜<span lang="EN-US">user</span>表中的加密后的用户密码一旦泄Ԍ其他人可以随意用该用户名<span lang="EN-US">/</span>密码相应的数据库<span lang="EN-US">;</span></p> <p>  <span lang="EN-US">5.</span>?span lang="EN-US">grant</span>?span lang="EN-US">revoke</span>语句来进行用戯问控制的工作<span lang="EN-US">;</span></p> <p>  <span lang="EN-US">6.</span>不用明文密码,而是使用<span lang="EN-US">md5()</span>?span lang="EN-US">sha1()</span>{单向的哈系函数来设|密?span lang="EN-US">;</span></p> <p>  <span lang="EN-US">7.</span>不选用字典中的字来做密?span lang="EN-US">;</span></p> <p>  <span lang="EN-US">8.</span>采用防火墙来L<span lang="EN-US">50%</span>的外部危险,让数据库pȝw在防火墙后面工作,或放|在<span lang="EN-US">DMZ</span>区域?span lang="EN-US">;</span></p> <p>  <span lang="EN-US">9.</span>从因特网上用<span lang="EN-US">nmap</span>来扫?span lang="EN-US">3306</span>端口Q也可用<span lang="EN-US">telnet server_host 3306</span>的方法测试,不能允许从非信Q|络中访问数据库服务器的<span lang="EN-US">3306</span>?span lang="EN-US">TCP</span>端口Q因此需要在防火墙或路由器上做设?span lang="EN-US">;</span></p> <p>  <span lang="EN-US">10.</span>Z防止被恶意传入非法参敎ͼ例如<span lang="EN-US">where ID=234</span>Q别人却输入<span lang="EN-US">where ID=234 OR 1=1</span>D全部昄Q所以在<span lang="EN-US">web</span>的表单中使用<span lang="EN-US">''</span>?span lang="EN-US">""</span>来用字符Ԍ在动?span lang="EN-US">URL</span>中加?span lang="EN-US">%22</span>代表双引受?span lang="EN-US">%23</span>代表井号?span lang="EN-US">%27</span>代表单引?span lang="EN-US">;</span>传递未 查过的值给<span lang="EN-US">mysql</span>数据库是非常危险?span lang="EN-US">;</span></p> <p>  <span lang="EN-US">11.</span>在传递数据给<span lang="EN-US">mysql</span>时检查一下大?span lang="EN-US">;</span></p> <p>  <span lang="EN-US">12.</span>应用E序需要连接到数据库应该用一般的用户帐号Q只开攑ְ数必要的权限l该用户<span lang="EN-US">;</span></p> <p>  <span lang="EN-US">13.</span>在各~程接口<span lang="EN-US">(C C++ PHP Perl Java JDBC</span>{?span lang="EN-US">)</span>中用特?span lang="EN-US">‘</span>逃脱字符<span lang="EN-US">’</span>函数<span lang="EN-US">;</span></p> <p>  在因特网上?span lang="EN-US">mysql</span>数据库时一定少用传输明文的数据Q而用<span lang="EN-US">SSL</span>?span lang="EN-US">SSH</span>的加密方式数据来传输<span lang="EN-US">;</span></p> <p>  <span lang="EN-US">14.</span>学会使用<span lang="EN-US">tcpdump</span>?span lang="EN-US">strings</span>工具来查看传输数据的安全性,例如<span lang="EN-US">tcpdump -l -i eth0 -w -src or dst port 3306 | strings</span>。以普通用h启动<span lang="EN-US">mysql</span>数据库服?span lang="EN-US">;</span></p> <p>  <span lang="EN-US">15.</span>不用到表的联结W号Q选用的参?span lang="EN-US"> --skip-symbolic-links;</span></p> <p>  <span lang="EN-US">16.</span>信?span lang="EN-US">mysql</span>目录中只有启动数据库服务的用h可以Ҏ件有d写的权限<span lang="EN-US">;</span></p> <p>  <span lang="EN-US">17.</span>不许?span lang="EN-US">process</span>?span lang="EN-US">super</span>权限付给非管理用P?span lang="EN-US">mysqladmin processlist</span>可以列D出当前执行的查询文本<span lang="EN-US">;super</span>权限可用于切断客Lq接、改变服务器q行参数状态、控制拷贝复制数据库的服务器<span lang="EN-US">;</span></p> <p>  <span lang="EN-US">18.file</span>权限不付l管理员以外的用P防止出现<span lang="EN-US">load data '/etc/passwd'</span>到表中再?span lang="EN-US">select </span>昄出来的问?span lang="EN-US">;</span></p> <p>  <span lang="EN-US">19.</span>如果不相?span lang="EN-US">DNS</span>服务公司的服务,可以在主机名U允许表中只讄<span lang="EN-US">IP</span>数字地址<span lang="EN-US">;</span></p> <p>  <span lang="EN-US">20.</span>使用<span lang="EN-US">max_user_connections</span>变量来<span lang="EN-US">mysqld</span>服务q程Q对一个指定帐户限定连接数<span lang="EN-US">;</span></p> <p>  <span lang="EN-US">21.grant</span>语句也支持资源控刉项<span lang="EN-US">;</span></p> <p>  <span lang="EN-US">22.</span>启动<span lang="EN-US">mysqld</span>服务q程的安全选项开养I<span lang="EN-US">--local-infile=0</span>?span lang="EN-US">1 </span>若是<span lang="EN-US">0</span>则客LE序无法?span lang="EN-US">local load data</span>了,赋权的一个例?span lang="EN-US">grant insert(user) on mysql.user to 'user_name'@'host_name';</span>若?span lang="EN-US">--skip-grant-tables</span>pȝ对M用户的访问不做Q何访问控Ӟ但可以用<span lang="EN-US"> mysqladmin flush-privileges</span>?span lang="EN-US">mysqladmin reload</span>来开启访问控?span lang="EN-US">;</span>默认情况?span lang="EN-US">show databases</span>语句Ҏ有用户开放,可以?span lang="EN-US">--skip-show-databases</span>来关闭掉?/p> <p>  <span lang="EN-US">23.</span>到<span lang="EN-US">Error 1045(28000) Access Denied for user 'root'@'localhost' (Using password:NO)</span>错误Ӟ你需要重新设|密码,具体Ҏ?span lang="EN-US">:</span>先用<span lang="EN-US">--skip-grant-tables</span>参数启动<span lang="EN-US">mysqld</span>Q然后执?span lang="EN-US"> mysql -u root mysql,mysql>update user set password=password('newpassword') where user='root';mysql>Flush privileges;</span>Q最后重新启?span lang="EN-US">mysql</span>可以了</p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p><img src ="http://www.aygfsteel.com/jaunt/aggbug/138996.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jaunt/" target="_blank">Jaunt</a> 2007-08-24 09:14 <a href="http://www.aygfsteel.com/jaunt/archive/2007/08/24/138996.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mysql日期和时间函?/title><link>http://www.aygfsteel.com/jaunt/archive/2007/08/24/138995.html</link><dc:creator>Jaunt</dc:creator><author>Jaunt</author><pubDate>Fri, 24 Aug 2007 01:13:00 GMT</pubDate><guid>http://www.aygfsteel.com/jaunt/archive/2007/08/24/138995.html</guid><wfw:comment>http://www.aygfsteel.com/jaunt/comments/138995.html</wfw:comment><comments>http://www.aygfsteel.com/jaunt/archive/2007/08/24/138995.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jaunt/comments/commentRss/138995.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jaunt/services/trackbacks/138995.html</trackback:ping><description><![CDATA[ <span style="color: #008080;">对于每个cd拥有的D围以及ƈ且指定日期何旉值的有效格式的描q见7.3.6 日期和时间类型?<br><br>q里是一个用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最?0天以内: <br><br>mysql> SELECT something FROM table <br>WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30; <br><br>DAYOFWEEK(date) <br>q回日期date的星期烦?1=星期天,2=星期一, ……7=星期?。这些烦引值对应于ODBC标准?<br>mysql> select DAYOFWEEK('1998-02-03'); <br>-> 3 <br><br>WEEKDAY(date) <br>q回date的星期烦?0=星期一Q?=星期? ……6= 星期??<br>mysql> select WEEKDAY('1997-10-04 22:23:00'); <br>-> 5 <br>mysql> select WEEKDAY('1997-11-05'); <br>-> 2 <br><br>DAYOFMONTH(date) <br>q回date的月份中日期Q在1?1范围内?<br>mysql> select DAYOFMONTH('1998-02-03'); <br>-> 3 <br><br>DAYOFYEAR(date) <br>q回date在一q中的日? ??66范围内?<br>mysql> select DAYOFYEAR('1998-02-03'); <br>-> 34 <br><br>MONTH(date) <br>q回date的月份,范围1?2?<br>mysql> select MONTH('1998-02-03'); <br>-> 2 <br><br>DAYNAME(date) <br>q回date的星期名字?<br>mysql> select DAYNAME("1998-02-05"); <br>-> 'Thursday' <br><br>MONTHNAME(date) <br>q回date的月份名字?<br>mysql> select MONTHNAME("1998-02-05"); <br>-> 'February' <br><br>QUARTER(date) <br>q回date一q中的季度,范围1??<br>mysql> select QUARTER('98-04-01'); <br>-> 2 <br><br>WEEK(date) <br>  <br>WEEK(date,first) <br>对于星期天是一周的W一天的地方Q有一个单个参敎ͼq回date的周敎ͼ范围??2?个参数Ş式WEEK()允许 <br>你指定星期是否开始于星期天或星期一。如果第二个参数?Q星期从星期天开始,如果W二个参数是1Q?<br>从星期一开始?<br>mysql> select WEEK('1998-02-20'); <br>-> 7 <br>mysql> select WEEK('1998-02-20',0); <br>-> 7 <br>mysql> select WEEK('1998-02-20',1); <br>-> 8 <br><br>YEAR(date) <br>q回date的年份,范围?000?999?<br>mysql> select YEAR('98-02-03'); <br>-> 1998 <br><br>HOUR(time) <br>q回time的小Ӟ范围??3?<br>mysql> select HOUR('10:05:03'); <br>-> 10 <br><br>MINUTE(time) <br>q回time的分钟,范围??9?<br>mysql> select MINUTE('98-02-03 10:05:03'); <br>-> 5 <br><br>SECOND(time) <br>回来time的秒敎ͼ范围??9?<br>mysql> select SECOND('10:05:03'); <br>-> 3 <br><br>PERIOD_ADD(P,N) <br>增加N个月到阶DPQ以格式YYMM或YYYYMM)。以格式YYYYMMq回倹{注意阶D参数P不是日期倹{?<br>mysql> select PERIOD_ADD(9801,2); <br>-> 199803 <br><br>PERIOD_DIFF(P1,P2) <br>q回在时期P1和P2之间月数QP1和P2应该以格式YYMM或YYYYMM。注意,时期参数P1和P2不是日期倹{?<br>mysql> select PERIOD_DIFF(9802,199703); <br>-> 11 <br><br>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>q些功能执行日期q算。对于MySQL 3.22Q他们是新的。ADDDATE()和SUBDATE()是DATE_ADD()和DATE_SUB()的同义词?<br>在MySQL 3.23中,你可以??而不是DATE_ADD()和DATE_SUB()。(见例子)date是一个指定开始日期的 <br>DATETIME或DATE|expr是指定加到开始日期或从开始日期减ȝ间隔g个表辑ּQexpr是一个字W串Q它可以?<br>一?#8220;-”开始表C间隔。type是一个关键词Q指明表辑ּ应该如何被解释。EXTRACT(type FROM date)函数从日?<br>中返?#8220;type”间隔。下表显CZtype和expr参数怎样被关联: type?含义 期望的expr格式 <br>SECOND U?SECONDS <br>MINUTE 分钟 MINUTES <br>HOUR 旉 HOURS <br>DAY ?DAYS <br>MONTH ?MONTHS <br>YEAR q?YEARS <br>MINUTE_SECOND 分钟和秒 "MINUTES:SECONDS" <br>HOUR_MINUTE 时和分?"HOURS:MINUTES" <br>DAY_HOUR 天和时 "DAYS HOURS" <br>YEAR_MONTH q和?"YEARS-MONTHS" <br>HOUR_SECOND 时, 分钟Q?"HOURS:MINUTES:SECONDS" <br>DAY_MINUTE ? 时, 分钟 "DAYS HOURS:MINUTES" <br>DAY_SECOND ? 时, 分钟, U?"DAYS HOURS:MINUTES:SECONDS" <br><br>MySQL在expr格式中允怓Q何标点分隔符。表C显C的是徏议的分隔W。如果date参数是一个DATE值ƈ且你的计仅?<br>包含YEAR、MONTH和DAY部分(卻I没有旉部分)Q结果是一个DATE倹{否则结果是一个DATETIME倹{?<br><br>mysql> SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND; <br>-> 1998-01-01 00:00:00 <br>mysql> SELECT INTERVAL 1 DAY + "1997-12-31"; <br>-> 1998-01-01 <br>mysql> SELECT "1998-01-01" - INTERVAL 1 SECOND; <br>-> 1997-12-31 23:59:59 <br>mysql> SELECT DATE_ADD("1997-12-31 23:59:59", <br>INTERVAL 1 SECOND); <br>-> 1998-01-01 00:00:00 <br>mysql> SELECT DATE_ADD("1997-12-31 23:59:59", <br>INTERVAL 1 DAY); <br>-> 1998-01-01 23:59:59 <br>mysql> SELECT DATE_ADD("1997-12-31 23:59:59", <br>INTERVAL "1:1" MINUTE_SECOND); <br>-> 1998-01-01 00:01:00 <br>mysql> SELECT DATE_SUB("1998-01-01 00:00:00", <br>INTERVAL "1 1:1:1" DAY_SECOND); <br>-> 1997-12-30 22:58:59 <br>mysql> SELECT DATE_ADD("1998-01-01 00:00:00", <br>INTERVAL "-1 10" DAY_HOUR); <br>-> 1997-12-30 14:00:00 <br>mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY); <br>-> 1997-12-02 <br>mysql> SELECT EXTRACT(YEAR FROM "1999-07-02"); <br>-> 1999 <br>mysql> SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03"); <br>-> 199907 <br>mysql> SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03"); <br>-> 20102 <br><br>如果你指定太短的间隔?不包括type关键词期望的间隔部分)QMySQL假设你省掉了间隔值的最左面部分。例如, <br>如果你指定一个type是DAY_SECONDQ值expr被希望有天、小时、分钟和U部分。如果你?1:10"q样指定| <br>MySQL假设日子和小旉分是丢失的ƈ且g表分钟和U。换句话_"1:10" DAY_SECOND以它{h?1:10" MINUTE_SECOND <br>的方式解释,q对那MySQL解释TIMEDC经q的旉而非作ؓ一天的旉的方式有二义性。如果你使用实不正的日期Q?<br>l果是NULL。如果你增加MONTH、YEAR_MONTH或YEARq且l果日期大于新月份的最大值天敎ͼ日子在新月用最大的天调整?<br><br>mysql> select DATE_ADD('1998-01-30', Interval 1 month); <br>-> 1998-02-28 <br><br>注意Q从前面的例子中词INTERVAL和type关键词不是区分大写的?<br>TO_DAYS(date) <br>l出一个日期dateQ返回一个天??q的天数)?<br>mysql> select TO_DAYS(950501); <br>-> 728779 <br>mysql> select TO_DAYS('1997-10-07'); <br>-> 729669 <br><br>TO_DAYS()不打用于用格列高里历(1582)出现前的倹{?<br><br>FROM_DAYS(N) <br>l出一个天数NQ返回一个DATE倹{?<br>mysql> select FROM_DAYS(729669); <br>-> '1997-10-07' <br><br>TO_DAYS()不打用于用格列高里历(1582)出现前的倹{?<br><br>DATE_FORMAT(date,format) <br>Ҏformat字符串格式化date倹{下列修饰符可以被用在format字符串中Q?%M 月名?January……December) <br>%W 星期名字(Sunday……Saturday) <br>%D 有英语前~的月份的日期(1st, 2nd, 3rd, {等。) <br>%Y q? 数字, 4 ?<br>%y q? 数字, 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 一q中的天?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 U?00……59) <br>%s U?00……59) <br>%p AM或PM <br>%w 一个星期中的天?0=Sunday ……6=Saturday Q?<br>%U 星期(0……52), q里星期天是星期的第一?<br>%u 星期(0……52), q里星期一是星期的W一?<br>%% 一个文?#8220;%”?<br><br>所有的其他字符不做解释被复制到l果中?<br><br>mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y'); <br>-> 'Saturday October 1997' <br>mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s'); <br>-> '22:23:00' <br>mysql> select DATE_FORMAT('1997-10-04 22:23:00', <br>'%D %y %a %d %m %b %j'); <br>-> '4th 97 Sat 04 10 Oct 277' <br>mysql> select DATE_FORMAT('1997-10-04 22:23:00', <br>'%H %k %I %r %T %S %w'); <br>-> '22 22 10 10:23:00 PM 22:23:00 00 6' <br>MySQL3.23中,在格式修饰符字符前需?。在MySQL更早的版本中Q?是可选的?<br><br>TIME_FORMAT(time,format) <br>q象上面的DATE_FORMAT()函数一样用,但是format字符串只能包含处理小时、分钟和U的那些格式修饰W?<br>其他修饰W生一个NULL值或0?<br>CURDATE() <br>  <br>CURRENT_DATE <br>?YYYY-MM-DD'或YYYYMMDD格式q回今天日期|取决于函数是在一个字W串q是数字上下文被使用?<br>mysql> select CURDATE(); <br>-> '1997-12-15' <br>mysql> select CURDATE() + 0; <br>-> 19971215 <br><br>CURTIME() <br>  <br>CURRENT_TIME <br>?HH:MM:SS'或HHMMSS格式q回当前旉|取决于函数是在一个字W串q是在数字的上下文被使用?<br>mysql> select CURTIME(); <br>-> '23:50:26' <br>mysql> select CURTIME() + 0; <br>-> 235026 <br><br>NOW() <br>  <br>SYSDATE() <br>  <br>CURRENT_TIMESTAMP <br>?YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式q回当前的日期和旉Q取决于函数是在一个字W串q是在数字的 <br>上下文被使用?<br>mysql> select NOW(); <br>-> '1997-12-15 23:50:26' <br>mysql> select NOW() + 0; <br>-> 19971215235026 <br><br>UNIX_TIMESTAMP() <br>  <br>UNIX_TIMESTAMP(date) <br>如果没有参数调用Q返回一个Unix旉戌(?1970-01-01 00:00:00'GMT开始的U数)。如果UNIX_TIMESTAMP()用一 <br>个date参数被调用,它返回从'1970-01-01 00:00:00' GMT开始的U数倹{date可以是一个DATE字符丌Ӏ一个DATETIME <br>字符丌Ӏ一个TIMESTAMP或以YYMMDD或YYYYMMDD格式的本地时间的一个数字?<br>mysql> select UNIX_TIMESTAMP(); <br>-> 882226357 <br>mysql> select UNIX_TIMESTAMP('1997-10-04 22:23:00'); <br>-> 875996580 <br><br>当UNIX_TIMESTAMP被用于一个TIMESTAMP列,函数直接接受|没有隐含?#8220;string-to-unix-timestamp”变换?<br><br>FROM_UNIXTIME(unix_timestamp) <br>?YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式q回unix_timestamp参数所表示的|取决于函数是在一个字W串 <br>q是或数字上下文中被使用?<br>mysql> select FROM_UNIXTIME(875996580); <br>-> '1997-10-04 22:23:00' <br>mysql> select FROM_UNIXTIME(875996580) + 0; <br>-> 19971004222300 <br><br>FROM_UNIXTIME(unix_timestamp,format) <br>q回表示 Unix 旉标记的一个字W串Q根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条 <br>目同L修饰W?<br>mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP(), <br>'%Y %D %M %h:%i:%s %x'); <br>-> '1997 23rd December 03:43:30 x' <br><br>SEC_TO_TIME(seconds) <br>q回seconds参数Q变换成时、分钟和U,g'HH:MM:SS'或HHMMSS格式化,取决于函数是在一个字W串q是在数?<br>上下文中被用?<br>mysql> select SEC_TO_TIME(2378); <br>-> '00:39:38' <br>mysql> select SEC_TO_TIME(2378) + 0; <br>-> 3938 <br><br>TIME_TO_SEC(time) <br>q回time参数Q{换成U?<br>mysql> select TIME_TO_SEC('22:23:00'); <br>-> 80580 <br>mysql> select TIME_TO_SEC('00:39:38'); <br>-> 2378 <br>(http://www.fanqiang.com)<br><br>原文链接Q?/span><a style="color: #008080;" target="_blank">http://www.mysql.net.cn/viewtopic.php?p=29</a><span style="color: #008080;"> </span><img src ="http://www.aygfsteel.com/jaunt/aggbug/138995.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jaunt/" target="_blank">Jaunt</a> 2007-08-24 09:13 <a href="http://www.aygfsteel.com/jaunt/archive/2007/08/24/138995.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常用试?SQL Server)http://www.aygfsteel.com/jaunt/archive/2007/08/24/138994.htmlJauntJauntFri, 24 Aug 2007 01:12:00 GMThttp://www.aygfsteel.com/jaunt/archive/2007/08/24/138994.htmlhttp://www.aygfsteel.com/jaunt/comments/138994.htmlhttp://www.aygfsteel.com/jaunt/archive/2007/08/24/138994.html#Feedback0http://www.aygfsteel.com/jaunt/comments/commentRss/138994.htmlhttp://www.aygfsteel.com/jaunt/services/trackbacks/138994.html
为管理岗位业务培训信息,建立3个表:
S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年?br> C (C#,CN ) C#,CN 分别代表评~号、课E名U?br> SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课E编受学习成l?br> 1. 使用标准SQL嵌套语句查询选修评名称?#8217;E收基础’的学员学号和姓名

--实现代码:

Select SN,SD FROM S
Where [S#] IN(
Select [S#] FROM C,SC
Where C.[C#]=SC.[C#]
AND CN=N'E收基础')

2. 使用标准SQL嵌套语句查询选修评~号?#8217;C2’的学员姓名和所属单?br>
--实现代码:

Select S.SN,S.SD FROM S,SC

Where S.[S#]=SC.[S#]

AND SC.[C#]='C2'

3. 使用标准SQL嵌套语句查询不选修评~号?#8217;C5’的学员姓名和所属单?br>
--实现代码:

Select SN,SD FROM S

Where [S#] NOT IN(

Select [S#] FROM SC

Where [C#]='C5')

4. 使用标准SQL嵌套语句查询选修全部评的学员姓名和所属单?br> --实现代码:

Select SN,SD FROM S

Where [S#] IN(

Select [S#] FROM SC

RIGHT JOIN

C ON SC.[C#]=C.[C#] GROUP BY [S#]

HAVING COUNT(*)=COUNT([S#]))

5. 查询选修了课E的学员人数

--实现代码:

Select 学员人数=COUNT(DISTINCT [S#]) FROM SC

6. 查询选修评过5门的学员学号和所属单?br>
--实现代码:

Select SN,SD FROM S

Where [S#] IN(

Select [S#] FROM SC

GROUP BY [S#]

HAVING COUNT(DISTINCT [C#])>5)

题目2

问题描述:

已知关系模式:

S (SNO,SNAME) 学生关系。SNO 为学PSNAME 为姓?br>
C (CNO,CNAME,CTEACHER) 评关系。CNO E号QCNAME E名QCTEACHER ZQ课教?br>
SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成l?br>
1. 扑և没有选修q?#8220;李明”老师讲授评的所有学生姓?br>
--实现代码:

Select SNAME FROM S

Where NOT EXISTS(

Select * FROM SC,C

Where SC.CNO=C.CNO

AND CNAME='李明'

AND SC.SNO=S.SNO)

2. 列出有二门以?含两?不及DE的学生姓名及其q_成W

--实现代码:

Select S.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE)

FROM S,SC,(

Select SNO

FROM SC

Where SCGRADE<60

GROUP BY SNO

HAVING COUNT(DISTINCT CNO)>=2

)A Where S.SNO=A.SNO AND SC.SNO=A.SNO

GROUP BY S.SNO,S.SNAME

3. 列出既学q?#8220;1”可E,又学q?#8220;2”可E的所有学生姓?br>
--实现代码:

Select S.SNO,S.SNAME

FROM S,(

Select SC.SNO

FROM SC,C

Where SC.CNO=C.CNO

AND C.CNAME IN('1','2')

GROUP BY SNO

HAVING COUNT(DISTINCT CNO)=2

)SC Where S.SNO=SC.SNO

4. 列出“1”可成W?#8220;2”号同学该门课成W高的所有学生的学号

--实现代码:

Select S.SNO,S.SNAME

FROM S,(

Select SC1.SNO

FROM SC SC1,C C1,SC SC2,C C2

Where SC1.CNO=C1.CNO AND C1.NAME='1'

AND SC2.CNO=C2.CNO AND C2.NAME='2'

AND SC1.SCGRADE>SC2.SCGRADE

)SC Where S.SNO=SC.SNO
5. 列出“1”可成W?#8220;2”可成W高的所有学生的学号及其“1”可?#8220;2”可的成l?br>
--实现代码:

Select S.SNO,S.SNAME,SC.[1可成W],SC.[2可成W]

FROM S,(

Select SC1.SNO,[1可成W]=SC1.SCGRADE,[2可成W]=SC2.SCGRADE

FROM SC SC1,C C1,SC SC2,C C2

Where SC1.CNO=C1.CNO AND C1.NAME='1'

AND SC2.CNO=C2.CNO AND C2.NAME='2'

AND SC1.SCGRADE>SC2.SCGRADE

)SC Where S.SNO=SC.SNO

Jaunt 2007-08-24 09:12 发表评论
]]>
MySQL-Front查看中文数据出现q的解x?/title><link>http://www.aygfsteel.com/jaunt/archive/2006/11/25/83540.html</link><dc:creator>Jaunt</dc:creator><author>Jaunt</author><pubDate>Sat, 25 Nov 2006 15:37:00 GMT</pubDate><guid>http://www.aygfsteel.com/jaunt/archive/2006/11/25/83540.html</guid><wfw:comment>http://www.aygfsteel.com/jaunt/comments/83540.html</wfw:comment><comments>http://www.aygfsteel.com/jaunt/archive/2006/11/25/83540.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jaunt/comments/commentRss/83540.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jaunt/services/trackbacks/83540.html</trackback:ping><description><![CDATA[MySQL-Front是一N怼U的、免费的、性能极好的操作MySQL的YӞ但当它连接MySQL4.1及以上版本的Ӟ中文数据会出Cؕ码问题。resolve metodQ创建数据库q接时字W集(CHARACTER)选择<strong>BINARY</strong>可以了.但是q样对于UTF-8字符q出Cؕ码?img src ="http://www.aygfsteel.com/jaunt/aggbug/83540.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jaunt/" target="_blank">Jaunt</a> 2006-11-25 23:37 <a href="http://www.aygfsteel.com/jaunt/archive/2006/11/25/83540.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>成功MySQL的大型数据导入导出和备䆾(转蝲)http://www.aygfsteel.com/jaunt/archive/2006/11/25/83538.htmlJauntJauntSat, 25 Nov 2006 15:15:00 GMThttp://www.aygfsteel.com/jaunt/archive/2006/11/25/83538.htmlhttp://www.aygfsteel.com/jaunt/comments/83538.htmlhttp://www.aygfsteel.com/jaunt/archive/2006/11/25/83538.html#Feedback0http://www.aygfsteel.com/jaunt/comments/commentRss/83538.htmlhttp://www.aygfsteel.com/jaunt/services/trackbacks/83538.html 成功MySQL的大型数据导入导出和备䆾
Filed under: MySQL ?Jet @ 12:47 pm

原来的数据用的是MySQL4.1Q大概有800M左右。?mysqldump -u username -p dbname > “filename?br />导出的时候很ҎLQ而且数据也出Cؕ码。后来找C个非常好用的工具QSQLyogQ它里面有数据导入导出功能,而且效率非常的高Q我800M的数据导出或导入都不?分钟Q?/p>

下面来说说整个的q程Q?br />1. 首先打开SQLyogQ创E数据库q接?/p>

2. 然后选择“Tools”-“Export Data As SQL Statements”,选择数据库和表以及保存的sql文g名,然后点击“Export”按钮。这样就数据备份到了sql文g中。如果导入的话选择 “Tools”-“Import From SQL Statements”,然后选择sql文g执行可以了?/p>

3. 如果是导入到本地的MySQL中的话只要断开q程数据库连接然后创建本地连接,接下来用导入命令就可以了?/p>

说明几点Q?/strong>
1. 导出的时候可以选择“只导出数据库结构”和“导出数据库l构和数据”,另外q有许多选项Q比如是否自动创建新的数据库Q是否删除存在的表等{,可以Ҏ自己的需要选择?/p>

2. 导入数据的时候可能会出现 Got a packet bigger than ‘max_allowed_packet?bytes 的错误提C(在SQLyog的错误日志里面)Q这是因为MySQL默认?max_allowed_packet 讄?1MQ增大这个参数就可以了,比如讄?M。默认的my.ini文g中是没有q个参数的,可以自行d?/p>

3. SQLyog 的官方地址为:http://www.webyog.com/

4. 最后补充几点点有些题外的问题,一个是使用SQLlog直接查看数据的时候显C的是ؕ码,q个是没有关pȝQ仅仅是软g昄的时候编码不对而已Q解决的Ҏ跟MySQL-FrontcMQ具体看 MySQL-Front查看中文数据出现q的解x?/a>Q另外一个就是用SQLyog创徏用户的时候如果用PHPq接的时候会出现“Client does not support authentication protocol requested by server…”的提示Q这是因为PHPq接数据库还是用的MySQL4.1以前的方式,所以还需要执行下面的SQL脚本一下(q点跟在 PHPMyAdmin中是cM的)Q?/p>

参考资料:
MySQL比较好的数据备䆾方式
http://www.kuaiyigang.com/post/66.htm

转蝲链接Q?a >http://www.javatang.com/archives/2006/11/14/473383.html



Jaunt 2006-11-25 23:15 发表评论
]]>
վ֩ģ壺 ʯ| | Դ| ǭ| | | ͭ| ϲ| | | üɽ| ֯| Ž| ɽ| | | ˳| | Ͱ| | ˮ| | | | | ξ| | | ̨| ֶ| ʲ| | ˫| | ױ| ɽ| | ³ľ| ƴ| | ɽ|