﻿<?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>C++博客-我的编程乐园-随笔分类-SQL</title><link>http://www.cppblog.com/deercoder/category/13989.html</link><description>&lt;P&gt;&lt;FONT style="FONT-SIZE: 20px" color=#ff0000&gt;积累，坚持！&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT style="FONT-SIZE: 20px" color=#ff0000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ---------我是一只IT小小鸟&lt;/FONT&gt;&lt;/P&gt;</description><language>zh-cn</language><lastBuildDate>Tue, 08 Jun 2010 06:01:09 GMT</lastBuildDate><pubDate>Tue, 08 Jun 2010 06:01:09 GMT</pubDate><ttl>60</ttl><item><title>MySQL学习笔记</title><link>http://www.cppblog.com/deercoder/archive/2010/06/08/117368.html</link><dc:creator>刘畅</dc:creator><author>刘畅</author><pubDate>Tue, 08 Jun 2010 05:55:00 GMT</pubDate><guid>http://www.cppblog.com/deercoder/archive/2010/06/08/117368.html</guid><wfw:comment>http://www.cppblog.com/deercoder/comments/117368.html</wfw:comment><comments>http://www.cppblog.com/deercoder/archive/2010/06/08/117368.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/deercoder/comments/commentRss/117368.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/deercoder/services/trackbacks/117368.html</trackback:ping><description><![CDATA[<span style="font-size: 12pt;"><br>1.关于创建数据库和使用数据库。<br>&nbsp;&nbsp;&nbsp; 在进行插入表项目，删除表，修改表项目的话，都需要对于指定多的一个表来操作。而每一个表（table）都要属于一个数据库中，一个数据库中也有可能有很多的表，于是，就需要在使用之前，先创建并使用一个数据库。命令是：<br>创建：create database 数据库表名；<br>使用数据库：use database 数据库表名；<br>删除数据库：drop database 数据库表名；<br>注意的一点就是，使用数据库这一步，一定不能够缺少。否则就会出现很多错误，最基本的就是很基础的命令在这个格式下是无法识别的。<br>关于数据库名的一个小问题就是：在Linux下面，是有大小写区分的，所以就是说，在创建一个数据库的时候，s1和S1是有区别的，而且在后面命令中，如果要使用这个数据库，那么就必须注意是大写还是小写了。但是，对应的，MySQL是不区分大小写的，也就是说，在一个数据库创建成功后，如果我要创建一个table，或者插入一项内容，那么项目名是没有大小写之分的，SNAME和sname是一样的。<br>于是：select sname from S1;和select SNAME from S1表示的是相同的意义。（对比的是，select sname from s1却是不同的，也就是说，对于创建的一个table是区分大小写的，表S1和s1是不同的！）<br>&nbsp;&nbsp; &nbsp;在使用完数据库后，如果没有必要再次保存的话，就可以删除，采用的是前面的drop命令，注意如果没有删除，那么该数据库是会保存到系统中的，下次启动的时候还是会有该数据库及记录！<br><br><br>2.MySQL自带的一些函数。<br>进入MySQL:&nbsp; 终端下输入:mysql -p -u 用户名 ,然后输入密码进入之后就可以进行相关操作。<br>1.now，user，version函数的使用<br>&nbsp; Select now() ; //将会显示当前的时间<br>&nbsp; Select version(); //将回想显示版本信息<br>&nbsp; Select user();&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//显示用户名<br>2.显示数据库的某个项目的详细信息。<br>&nbsp;Show fields from S1; //显示表S1的组成信息<br>&nbsp;Show columns from xx like '%name'; //显示包含name名的列。<br>3.AUTO_INCREMENT:保证数据项独一无二，也就是对于某个ITEM，如果没有填写它的值，那么就会默认的在该地方让该项目为增加1.<br>4.可以使用外部的sql文件来作为sql的输入，也就是在终端中输入：<br>Mysql -p -u root &lt; test.sql<br>进入sql中之后：Sourece test.sql<br>比如对于下面的这个test1.sql文件就这样编辑:<br>create database Test;<br>use Test;<br>show databases;<br>create table S(<br>&nbsp; SNO CHAR(10),<br>&nbsp; PNO CHAR(10),<br>&nbsp; TIM CHAR(10));<br>insert into S values('TEST','hjack','hel');<br>show table S;<br><br>5. enum：枚举类型，初始化值可以是：ENUM(&#8216;F&#8217;,&#8216;T&#8217;)<br>6. if函数的使用：<br>&nbsp;Select last_name, first_name death from president<br>&nbsp;Order by IF(death is NULL,0,1),death;<br>这句语句的意义就是，让先为NULL的放在前面，而没有NULL的放在后面。<br>7.限制查询的次数<br>Select last_name,first_name,birth from president<br>Order by birth limit 5;(显示前面的5个)<br>Order by birth DESC limit 5;(显示后面的5个)<br>Order by birth limit 10,5;(跳过前10个后的5个数据)<br>Order by RAND() limit 1;(随机选择一个数据)<br>8.输出列求值并命名<br>Select 17 ,format(SQRT(3*3+4*4,0));<br>Select concat(first_name,' ',last_name),concat(city,' ',state);<br>上面的列名就是使用的select后面的列名，比如17列，然后对该列处理，使用了相应的函数<br>&nbsp;<br>此即为第一次的结果。<br>如果想使用有意义的别名，就用AS来定义新的名称<br>Select concat(first_name,' ',last_name) AS name from S1;<br>
<div style="text-align: center;"><img src="http://www.cppblog.com/images/cppblog_com/deercoder/test.png" border="0"><br><br></div>
<div style="text-align: center;"><img src="http://www.cppblog.com/images/cppblog_com/deercoder/xxx.png" border="0"><br><br></div>
<br>
<div style="text-align: center;">&nbsp;<img src="file:///tmp/moz-screenshot.png" alt="">
<img src="http://www.cppblog.com/images/cppblog_com/deercoder/Screenshot.png" border="0"><br></div>
&nbsp;<br>insert into S1 values('001','Jam','Smith',now());<br>select concat(first_name,' ',last_name) AS Name from S1;<br><br>8.时间处理<br>MySQL中有很多时间处理的函数，排序，比较，取日，取月&#8230;&#8230;<br>简单说几个常用的。<br>前面用到了now()函数，现在还有CURDATE(),TODAYS（）<br>CURDATE（）：获取当前的日期<br>TODAYS(): 将当前的日期转换成天数<br>MONTH()：取当前的月<br>DAYOFMONTH():取当前时间的天数<br>&nbsp;<br>  </span><img src ="http://www.cppblog.com/deercoder/aggbug/117368.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/deercoder/" target="_blank">刘畅</a> 2010-06-08 13:55 <a href="http://www.cppblog.com/deercoder/archive/2010/06/08/117368.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>