﻿<?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>IT博客-金鳞-文章分类-mysql</title><link>http://www.cnitblog.com/chenxin9821/category/7686.html</link><description>目标-&gt;软件测试架构师</description><language>zh-cn</language><lastBuildDate>Mon, 26 Sep 2011 19:05:10 GMT</lastBuildDate><pubDate>Mon, 26 Sep 2011 19:05:10 GMT</pubDate><ttl>60</ttl><item><title>mysql的基本命令--学习笔记</title><link>http://www.cnitblog.com/chenxin9821/articles/61371.html</link><dc:creator>金鳞</dc:creator><author>金鳞</author><pubDate>Fri, 11 Sep 2009 09:28:00 GMT</pubDate><guid>http://www.cnitblog.com/chenxin9821/articles/61371.html</guid><wfw:comment>http://www.cnitblog.com/chenxin9821/comments/61371.html</wfw:comment><comments>http://www.cnitblog.com/chenxin9821/articles/61371.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/chenxin9821/comments/commentRss/61371.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/chenxin9821/services/trackbacks/61371.html</trackback:ping><description><![CDATA[<p>就算是一本再好的课本，如果不是自己亲手整理出来笔记，总觉得不是真正的读懂了!<br>以下内容引自：<a href="http://sql.1keydata.com/cn/sql-select.php">http://sql.1keydata.com/cn/sql-select.php</a><br><br>SQL<br>_________________________________________<br><strong><em>Store_Information</em></strong>表格<br>
<table border=1>
    <tbody>
        <tr>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>store_name</font> </td>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>Sales</font> </td>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>Date</font> </td>
        </tr>
        <tr>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>Los Angeles</font> </td>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>$1500</font> </td>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>Jan-05-1999</font> </td>
        </tr>
        <tr>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>San Diego</font> </td>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>$250</font> </td>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>Jan-07-1999</font> </td>
        </tr>
        <tr>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>Los Angeles</font> </td>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>$300</font> </td>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>Jan-08-1999</font> </td>
        </tr>
        <tr>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>Boston</font> </td>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>$700</font> </td>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>Jan-08-1999</font> </td>
        </tr>
    </tbody>
</table>
<br>_________________________________________</p>
<p><strong><em><font size=2>Geography</font></em></strong> 表格
<table border=1>
    <tbody>
        <tr>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>region_name</font> </td>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>store_name</font> </td>
        </tr>
        <tr>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>East</font> </td>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>Boston</font> </td>
        </tr>
        <tr>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>East</font> </td>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>New York</font> </td>
        </tr>
        <tr>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>West</font> </td>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>Los Angeles</font> </td>
        </tr>
        <tr>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>West</font> </td>
            <td><font face="Verdana, Arial, Helvetica, sans-serif" size=2>San Diego</font> </td>
        </tr>
    </tbody>
</table>
------------------------------------------<br><span style="COLOR: #0000ff">SELECT store_name FROM Store_Information; <br>SELECT DISTINCT store_name FROM Store_Information;<br>SELECT store_name FROM Store_Information WHERE Sales &gt; 1000;<br>SELECT store_name FROM Store_Information WHERE Sales &gt; 1000 OR (Sales &lt; 500 AND Sales &gt; 275) ;<br>SELECT * FROM Store_Information WHERE store_name IN ('Los Angeles', 'San Diego'); <br>SELECT * FROM Store_Information WHERE Date BETWEEN 'Jan-06-1999' AND 'Jan-10-1999';<br>SELECT * FROM Store_Information WHERE store_name LIKE '%AN%';<br>SELECT * FROM Store_Information WHERE store_name LIKE 'A_Z';<br>SELECT * FROM Store_Information WHERE store_name LIKE 'ABC%';<br>SELECT * FROM Store_Information WHERE store_name LIKE '%XYZ';<br>SELECT store_name, Sales, Date FROM Store_Information ORDER BY Sales DESC;<br>SELECT store_name, Sales, Date FROM Store_Information ORDER BY Sales ASC;<br>SELECT SUM(Sales) FROM Store_Information;<br>//SELECT "函数名"("栏位名") FROM "表格名" <br>SELECT COUNT(store_name) FROM Store_Information WHERE store_name is not NULL;<br>SELECT COUNT(DISTINCT store_name) FROM Store_Information; <br>SELECT store_name, SUM(Sales) FROM Store_Information GROUP BY store_name;<br>SELECT store_name, SUM(sales) FROM Store_Information GROUP BY store_name HAVING SUM(sales) &gt; 1500;<br>SELECT A1.store_name Store, SUM(A1.Sales) "Total Sales" FROM Store_Information A1 GROUP BY A1.store_name; //'inner join'or'left join'<br>SELECT A1.store_name, SUM(A2.Sales) SALES FROM Georgraphy A1, Store_Information A2 WHERE A1.store_name = A2.store_name (+) GROUP BY A1.store_name; //outer join<br>SELECT SUM(Sales) FROM Store_Information WHERE Store_name IN(SELECT store_name FROM Geography WHERE region_name = 'West'); //subquery<br>SELECT Date FROM Store_Information UNION SELECT Date FROM Internet_Sales; //联集<br>SELECT Date FROM Store_Information UNION ALL SELECT Date FROM Internet_Sales; //有重复项<br>SELECT Date FROM Store_Information INTERSECT SELECT Date FROM Internet_Sales; //交集<br>SELECT Date FROM Store_Information MINUS SELECT Date FROM Internet_Sales; <br>SELECT CONCAT(region_name,store_name) FROM Geography WHERE store_name = 'Boston'; //MySQL/Oracle 'EastBoston';<br>SELECT region_name || ' ' || store_name FROM Geography WHERE store_name = 'Boston'; //Oracle 'East Boston';<br>SELECT region_name + ' ' + store_name FROM Geography WHERE store_name = 'Boston'; //SQL Server 'East Boston'; <br>SELECT SUBSTR(store_name, 3) FROM Geography WHERE store_name = 'Los Angeles'; //不适用于SQL Server<br>SELECT SUBSTR(store_name,2,4) FROM Geography WHERE store_name = 'San Diego'; //'an D' <br>SELECT TRIM('&nbsp;&nbsp; Sample&nbsp;&nbsp; '); <br>SELECT LTRIM('&nbsp;&nbsp; Sample&nbsp;&nbsp; '); <br>SELECT RTRIM('&nbsp;&nbsp; Sample&nbsp;&nbsp; '); <br>CREATE TABLE customer (First_Name char(50),Last_Name char(50),Address char(50),City char(50),Country char(25),Birth_Date date);<br>CREATE VIEW V_Customer AS SELECT First_Name, Last_Name, Country FROM Customer;<br>View V_Customer (First_Name char(50),Last_Name char(50),Country char(25));<br>CREATE VIEW V_REGION_SALES AS SELECT A1.region_name REGION, SUM(A2.Sales) SALES FROM Geography A1, Store_Information A2 WHERE A1.store_name = A2.store_name GROUP BY A1.region_name;<br>SELECT * FROM V_REGION_SALES;<br></span></p>
<p><strong><br><br>INDEX,</strong></p>
<p>现在假设我们有以下这个表格，<br>TABLE Customer(First_Name char(50),Last_Name char(50),Address char(50),City char(50),Country char(25),Birth_Date date);</p>
<p>1.若我們要在 Last_Name 這個栏位上建一個索引，我們就打入以下的指令，<br><span style="COLOR: #0000ff">CREATE INDEX IDX_CUSTOMER_LAST_NAME on CUSTOMER (Last_Name)</span></p>
<p>2.若我们要在 City和Country 这两个栏位上建一个索引，我们就打入以下的指令，<br><span style="COLOR: #0000ff">CREATE INDEX IDX_CUSTOMER_LOCATION on CUSTOMER (City, Country)</span></p>
<p><br><strong>ALERT,</strong><br>______________________________________________________<br>customer 表格
<table class=content border=1>
    <tbody>
        <tr>
            <td>栏位名称</td>
            <td>资料种类</td>
        </tr>
        <tr>
            <td>First_Name</td>
            <td>char(50)</td>
        </tr>
        <tr>
            <td>Last_Name</td>
            <td>char(50)</td>
        </tr>
        <tr>
            <td>Address</td>
            <td>char(50)</td>
        </tr>
        <tr>
            <td>City</td>
            <td>char(50)</td>
        </tr>
        <tr>
            <td>Country</td>
            <td>char(25)</td>
        </tr>
        <tr>
            <td>Birth_Date</td>
            <td>date</td>
        </tr>
    </tbody>
</table>
<br>------------------------------------------------------<br>1.<span style="COLOR: #0000ff">ALTER table customer add Gender char(1)</span></p>
<p>customer 表格
<table class=content border=1>
    <tbody>
        <tr>
            <td>栏位名称</td>
            <td>资料种类</td>
        </tr>
        <tr>
            <td>First_Name</td>
            <td>char(50)</td>
        </tr>
        <tr>
            <td>Last_Name</td>
            <td>char(50)</td>
        </tr>
        <tr>
            <td>Address</td>
            <td>char(50)</td>
        </tr>
        <tr>
            <td>City</td>
            <td>char(50)</td>
        </tr>
        <tr>
            <td>Country</td>
            <td>char(25)</td>
        </tr>
        <tr>
            <td>Birth_Date</td>
            <td>date</td>
        </tr>
        <tr>
            <td>Gender</td>
            <td>char(1)</td>
        </tr>
    </tbody>
</table>
</p>
<p>2.<span style="COLOR: #0000ff">ALTER table customer change Address Addr char(50)</span></p>
<p>customer 表格
<table class=content border=1>
    <tbody>
        <tr>
            <td>栏位名称</td>
            <td>资料种类</td>
        </tr>
        <tr>
            <td>First_Name</td>
            <td>char(50)</td>
        </tr>
        <tr>
            <td>Last_Name</td>
            <td>char(50)</td>
        </tr>
        <tr>
            <td>Addr</td>
            <td>char(50)</td>
        </tr>
        <tr>
            <td>City</td>
            <td>char(50)</td>
        </tr>
        <tr>
            <td>Country</td>
            <td>char(25)</td>
        </tr>
        <tr>
            <td>Birth_Date</td>
            <td>date</td>
        </tr>
        <tr>
            <td>Gender</td>
            <td>char(1)</td>
        </tr>
    </tbody>
</table>
</p>
<p>3.<span style="COLOR: #0000ff">ALTER table customer modify Addr char(30)</span></p>
<p>customer 表格
<table class=content border=1>
    <tbody>
        <tr>
            <td>栏位名称</td>
            <td>资料种类</td>
        </tr>
        <tr>
            <td>First_Name</td>
            <td>char(50)</td>
        </tr>
        <tr>
            <td>Last_Name</td>
            <td>char(50)</td>
        </tr>
        <tr>
            <td>Addr</td>
            <td>char(30)</td>
        </tr>
        <tr>
            <td>City</td>
            <td>char(50)</td>
        </tr>
        <tr>
            <td>Country</td>
            <td>char(25)</td>
        </tr>
        <tr>
            <td>Birth_Date</td>
            <td>date</td>
        </tr>
        <tr>
            <td>Gender</td>
            <td>char(1)</td>
        </tr>
    </tbody>
</table>
</p>
<p>4.<span style="COLOR: #0000ff">ALTER table customer drop Gender</span></p>
<p>customer 表格
<table class=content border=1>
    <tbody>
        <tr>
            <td>栏位名称</td>
            <td>资料种类</td>
        </tr>
        <tr>
            <td>First_Name</td>
            <td>char(50)</td>
        </tr>
        <tr>
            <td>Last_Name</td>
            <td>char(50)</td>
        </tr>
        <tr>
            <td>Addr</td>
            <td>char(30)</td>
        </tr>
        <tr>
            <td>City</td>
            <td>char(50)</td>
        </tr>
        <tr>
            <td>Country</td>
            <td>char(25)</td>
        </tr>
        <tr>
            <td>Birth_Date</td>
            <td>date</td>
        </tr>
    </tbody>
</table>
</p>
<p><br><strong>RIMARY KEY,</strong></p>
<p><br>在建置新表格时设定主键的方式：</p>
<p><strong>MySQL:</strong><br><span style="COLOR: #0000ff">CREATE TABLE Customer(SID integer,Last_Name varchar(30),First_Name varchar(30),PRIMARY KEY (SID));</span></p>
<p><strong>Oracle:</strong><br><span style="COLOR: #0000ff">CREATE TABLE Customer(SID integer PRIMARY KEY,Last_Name varchar(30),First_Name varchar(30));</span></p>
<p><strong>SQL Server:</strong><br><span style="COLOR: #0000ff">CREATE TABLE Customer(SID integer PRIMARY KEY,Last_Name varchar(30),First_Name varchar(30));</span> </p>
<p>以下则是以改变现有表格架构来设定主键的方式：</p>
<p><strong>MySQL:</strong><br><span style="COLOR: #0000ff">ALTER TABLE Customer ADD PRIMARY KEY (SID);</span></p>
<p><strong>Oracle:</strong><br><span style="COLOR: #0000ff">ALTER TABLE Customer ADD PRIMARY KEY (SID);</span></p>
<p><strong>SQL Server:</strong><br><span style="COLOR: #0000ff">ALTER TABLE Customer ADD PRIMARY KEY (SID);</span></p>
<p><span style="COLOR: #ff0000">请注意，在用ALTER TABLE语句来添加主键之前，我们需要确认被用来当做主键的栏位是设定为 『NOT NULL』 ；也就是说，那个栏位一定不能没有资料。</span> <br><br><strong>FOREIGE KEY,</strong><br></p>
<p>举例如下：
<p><font size=2>CUSTOMER 表格</font>
<table class=content border=1>
    <tbody>
        <tr>
            <td>栏位名</td>
            <td>性质</td>
        </tr>
        <tr>
            <td>SID</td>
            <td>主键</td>
        </tr>
        <tr>
            <td>Last_Name</td>
            <td></td>
        </tr>
        <tr>
            <td>First_Name</td>
            <td></td>
        </tr>
    </tbody>
</table>
<p><font size=2>ORDERS 表格</font>
<table class=content border=1>
    <tbody>
        <tr>
            <td>栏位名</td>
            <td>性质</td>
        </tr>
        <tr>
            <td>Order_ID</td>
            <td>主键</td>
        </tr>
        <tr>
            <td>Order_Date</td>
            <td></td>
        </tr>
        <tr>
            <td>Customer_SID</td>
            <td>外来键</td>
        </tr>
        <tr>
            <td>Amount</td>
            <td></td>
        </tr>
    </tbody>
</table>
<br>在以上例子中，ORDERS表格中的Customer_SID栏位是一个指向CUSTOMERS表格中SID栏位的外来键。<br></p>
<p>以下列出几个在建置 ORDERS 表格时指定外来键的方式：
<p><strong>MySQL</strong>: <br><font color=blue>CREATE TABLE ORDERS <br>(Order_ID integer, <br>Order_Date date, <br>Customer_SID integer, <br>Amount double, <br>Primary Key (Order_ID), <br>Foreign Key (Customer_SID) references CUSTOMER(SID));</font>
<p><strong>Oracle</strong>: <br><font color=blue>CREATE TABLE ORDERS <br>(Order_ID integer primary key, <br>Order_Date date, <br>Customer_SID integer references CUSTOMER(SID), <br>Amount double);</font>
<p><strong>SQL Server</strong>: <br><font color=blue>CREATE TABLE ORDERS <br>(Order_ID integer primary key, <br>Order_Date datetime, <br>Customer_SID integer references CUSTOMER(SID), <br>Amount double);</font> </p>
<p>以下的例子则是借着改变表格架构来指定外来键。这里假设 ORDERS 表格已经被建置，而外来键尚未被指定：
<p><strong>MySQL</strong>: <br><font color=blue>ALTER TABLE ORDERS <br>ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);</font>
<p><strong>Oracle</strong>: <br><font color=blue>ALTER TABLE ORDERS <br>ADD (CONSTRAINT fk_orders1) FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);</font>
<p>SQL Server: <br><span style="COLOR: #0000ff">ALTER TABLE ORDERS <br>ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);&nbsp;<br></span><br><br><span style="COLOR: #0000ff">DROP TABLE customer;</span>&nbsp; <span>//删除表格<br></span><br><span style="COLOR: #0000ff">TRUNCATE TABLE customer;</span>&nbsp;&nbsp; //清除表格中的所有资料<br><br><span style="COLOR: #0000ff">INSERT INTO Store_Information (store_name, Sales, Date) VALUES ('Los Angeles', 900, 'Jan-10-1999');&nbsp;&nbsp; &nbsp;<span style="COLOR: #000000">//一次性输入一笔资料<br></span><br><font color=blue><font color=#008000><span style="COLOR: #0000ff">INSERT INTO "表格1" ("栏位1", "栏位2", ...) SELECT "栏位3", "栏位4", ...&nbsp; FROM "表格2";</span><strong> </strong><span style="COLOR: #000000"><strong>//</strong>一次性输入多笔资料<br></span></font><br>INSERT INTO Store_Information (store_name, Sales, Date) SELECT store_name, Sales, Date FROM Sales_Information WHERE Year(Date) = 2009;&nbsp; <span style="COLOR: #000000">//SQL Server一次性输入多笔资料，以上的语法是最基本的。这整句 SQL 也可以含有 <font color=green><strong>WHERE</strong></font>、 <font color=green><strong>GROUP BY</strong></font>、 及 <font color=green><strong>HAVING</strong></font> 等子句，以及表格连接及别名等等。 </p>
<p><font color=#0000ff>INSERT INTO Store_Information (store_name, Sales, Date) SELECT store_name, Sales, Date FROM Sales_Information <strong><font color=#008000>WHERE</font></strong><font color=#000000> to_char(date,'yyyy')=1998;&nbsp;// &nbsp;Oracle 一次性输入多笔资料&nbsp;<br></font><br>UPDATE Store_Information&nbsp; SET Sales = 500 WHERE store_name = "Los Angeles" AND Date = "Jan-08-1999"<font color=#000000>&nbsp;; //一次性update一笔资料<br></font><span style="COLOR: #0000ff">UPDATE "表格" SET "栏位1" = [值1], "栏位2" = [值2] WHERE {条件}</span><font color=#000000><span style="COLOR: #0000ff"> ;</span>&nbsp;<span style="COLOR: #000000"> </span></font><span style="COLOR: #000000">//一次性update多笔资料</span><br></font></span></font>&nbsp;</p>
DELETE FROM Store_Information　WHERE store_name = "Los Angeles";<span style="COLOR: #000000"> //删除资料</span><strong>&nbsp;<br><br>*****************************************************************************************<br>
<p>以下是提供一个简洁的 SQL 语法做为读者参考之用。
<p><strong><a href="http://sql.1keydata.com/cn/sql-select.php">Select</a> </strong><br>SELECT "栏位" FROM "表格名"
<p><strong><a href="http://sql.1keydata.com/cn/sql-distinct.php">Distinct</a></strong> <br>SELECT DISTINCT "栏位" <br>FROM "表格名"
<p><strong><a href="http://sql.1keydata.com/cn/sql-where.php">Where</a></strong> <br>SELECT "栏位" <br>FROM "表格名" <br>WHERE "condition"
<p><strong><a href="http://sql.1keydata.com/cn/sql-and-or.php">And/Or</a></strong> <br>SELECT "栏位" <br>FROM "表格名" <br>WHERE "简单条件" <br>{[AND|OR] "简单条件"}+
<p><strong><a href="http://sql.1keydata.com/cn/sql-in.php">In</a></strong> <br>SELECT "栏位" <br>FROM "表格名" <br>WHERE "栏位" IN ('值1', '值2', ...)
<p><strong><a href="http://sql.1keydata.com/cn/sql-between.php">Between</a></strong> <br>SELECT "栏位" <br>FROM "表格名" <br>WHERE "栏位" BETWEEN '值1' AND '值2'
<p><strong><a href="http://sql.1keydata.com/cn/sql-like.php">Like</a></strong> <br>SELECT "栏位" <br>FROM "表格名" <br>WHERE "栏位" LIKE {模式}
<p><strong><a href="http://sql.1keydata.com/cn/sql-orderby.php">Order By</a></strong> <br>SELECT "栏位" <br>FROM "表格名" <br>[WHERE "条件"]<br>ORDER BY "栏位" [ASC, DESC]
<p><strong><a href="http://sql.1keydata.com/cn/sql-count.php">Count</a></strong> <br>SELECT COUNT("栏位") <br>FROM "表格名"
<p><strong><a href="http://sql.1keydata.com/cn/sql-groupby.php">Group By</a></strong> <br>SELECT "栏位1", SUM("栏位2") <br>FROM "表格名" <br>GROUP BY "栏位1"
<p><strong><a href="http://sql.1keydata.com/cn/sql-having.php">Having</a></strong> <br>SELECT "栏位1", SUM("栏位2") <br>FROM "表格名" <br>GROUP BY "栏位1" <br>HAVING (栏位)
<p><strong><a href="http://sql.1keydata.com/cn/sql-create.php">Create Table</a></strong> <br>CREATE TABLE "表格名"<br>("栏位 1" "栏位 1 资料种类",<br>"栏位 2" "栏位 2 资料种类",<br>... )
<p><strong><a href="http://sql.1keydata.com/cn/sql-drop.php">Drop Table</a></strong> <br>DROP TABLE "表格名"
<p><strong><a href="http://sql.1keydata.com/cn/sql-truncate.php">Truncate Table</a></strong> <br>TRUNCATE TABLE "表格名"
<p><strong><a href="http://sql.1keydata.com/cn/sql-insert.php">Insert Into</a></strong> <br>INSERT INTO "表格名" ("栏位1", "栏位2", ...)<br>VALUES ("值1", "值2", ...)
<p><strong><a href="http://sql.1keydata.com/cn/sql-update.php">Update </a></strong><br>UPDATE "表格名"<br>SET "栏位1" = [新值]<br>WHERE {条件}
<p><strong><a href="http://sql.1keydata.com/cn/sql-delete.php">Delete From</a></strong> <br>DELETE FROM "表格名"<br>WHERE {条件}
<center><br></center></strong></span>
<img src ="http://www.cnitblog.com/chenxin9821/aggbug/61371.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/chenxin9821/" target="_blank">金鳞</a> 2009-09-11 17:28 <a href="http://www.cnitblog.com/chenxin9821/articles/61371.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MySQL常用命令</title><link>http://www.cnitblog.com/chenxin9821/articles/60482.html</link><dc:creator>金鳞</dc:creator><author>金鳞</author><pubDate>Fri, 31 Jul 2009 07:25:00 GMT</pubDate><guid>http://www.cnitblog.com/chenxin9821/articles/60482.html</guid><wfw:comment>http://www.cnitblog.com/chenxin9821/comments/60482.html</wfw:comment><comments>http://www.cnitblog.com/chenxin9821/articles/60482.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/chenxin9821/comments/commentRss/60482.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/chenxin9821/services/trackbacks/60482.html</trackback:ping><description><![CDATA[&nbsp;
<p><span>一、连接<span>MySQL</span>。</span></p>
<p><span>格式：<span> mysql -h</span>主机地址<span> -u</span>用户名 －<span>p</span>用户密码</span></p>
<p><span>1</span><span>、例<span>1</span>：连接到本机上的<span>MYSQL</span>。</span></p>
<p><span>　　首先在打开<span> DOS </span>窗口，然后进入目录<span> mysql\bin</span>，再键入命令<span>mysql -u root -p</span>，回车后提示你输密码，如果刚安装好<span> MySQL</span>，超级用户<span> root </span>是没有密码的，故直接回车即可进入到<span> MySQL </span>中了，<span>MySQL </span>的提示符是：<span>mysql&gt;</span></span></p>
<p><span>2</span><span>、例<span>2</span>：连接到远程主机上的<span> MySQL</span>。</span></p>
<p><span>　　假设远程主机的<span>IP</span>为：<span>110.110.110.110</span>，用户名为<span>root</span>，密码为<span>abcd123</span>。则键入以下命令：</span></p>
<p><span>mysql -h 110.110.110.110 -u root -p abcd123</span></p>
<p><span>（注<span>:u</span>与<span>root</span>可以不用加空格，其它也一样）</span></p>
<p><span>3</span><span>、退出<span> MySQL </span>命令：<span> quit </span>或<span> exit </span>（回车）</span></p>
<p><span>二、修改密码。</span></p>
<p><span>格式：<span>mysqladmin -u</span>用户名<span> -p password </span>新密码</span></p>
<p><span>1</span><span>、例<span>1</span>：给<span>root</span>加个密码<span>ab12</span>。首先在<span>DOS</span>下进入目录<span>mysql\bin</span>，然后键入以下命令</span></p>
<p><span>mysqladmin -u root -password ab12</span></p>
<p><span>注：因为开始时<span>root</span>没有密码，所以<span>-p</span>旧密码一项就可以省略了。</span></p>
<p><span>2</span><span>、例<span>2</span>：再将<span>root</span>的密码改为<span>djg345</span>。</span></p>
<p><span>mysqladmin -u root -p password djg345</span></p>
<p><span>三、增加新用户。</span></p>
<p><span>（注意：和上面不同，下面的因为是<span> MySQL </span>环境中的命令，所以后面都带一个分号作为命令结束符）</span></p>
<p><span>格式：<span>grant select on </span>数据库<span>.* to </span>用户名<span>@</span>登录主机<span> identified by "</span>密码<span>"</span></span></p>
<p><span>例<span>1</span>、增加一个用户<span> test1 </span>密码为<span> abc</span>，让他可以在任何主机上登录，并对所有数据库有查询、插入、修改、删除的权限。首先用以<span> root </span>用户连入<span> MySQL</span>，然后键入以下命令：</span></p>
<p><span>grant select, insert, update, delete on *.* to <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#116;&#101;&#115;&#116;&#49;&#64;&#37;&#50;&#50;&#37;&#50;&#53;">test1@"%</a>" Identified by "abc";</span></p>
<p><span>但例<span>1</span>增加的用户是十分危险的，你想如某个人知道<span>test1</span>的密码，那么他就可以在<span>internet</span>上的任何一台电脑上登录你的<span>mysql</span>数据库并对你的数据可以为所欲为了，解决办法见例<span>2</span>。</span></p>
<p><span>例<span>2</span>、增加一个用户<span>test2</span>密码为<span>abc,</span>让他只可以在<span>localhost</span>上登录，并可以对数据库<span> mydb</span>进行查询、插入、修改、删除的操作（<span>localhost</span>指本地主机，即<span>MYSQL</span>数据库所在的那台主机），这样用户即使知道<span>test2</span>的密码，他也无法从<span>internet</span>上直接访问数据库，只能通过<span>MYSQL</span>主机上的<span>web</span>页来访问了。</span></p>
<p><span>grant select, insert, update,delete on mydb.* to <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#116;&#101;&#115;&#116;&#50;&#64;&#108;&#111;&#99;&#97;&#108;&#104;&#111;&#115;&#116;">test2@localhost</a> identified by "abc";</span></p>
<p><span>　　如果你不想<span>test2</span>有密码，可以再打一个命令将密码消掉。</span></p>
<p><span>grant select, insert, update, delete on mydb.* to <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#116;&#101;&#115;&#116;&#50;&#64;&#108;&#111;&#99;&#97;&#108;&#104;&#111;&#115;&#116;">test2@localhost</a> identified by "";</span></p>
<p><span>　　在上篇我们讲了登录、增加用户、密码更改等问题。下篇我们来看看<span>MYSQL</span>中有关数据库方面的操作。注意：你必须首先登录到<span>MYSQL</span>中，以下操作都是在<span>MYSQL</span>的提示符下进行的，而且每个命令以分号结束。</span></p>
<p><span>一、操作技巧</span></p>
<p><span>1</span><span>、如果你打命令时，回车后发现忘记加分号，你无须重打一遍命令，只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打，完后用分号作结束标志就<span>OK</span>。</span></p>
<p><span>2</span><span>、你可以使用光标上下键调出以前的命令。但以前我用过的一个<span>MYSQL</span>旧版本不支持。我现在用的是<span>mysql-<st1:chsdate w:st="on" Year="1899" Month="12" Day="30" IsLunarDate="False" IsROCDate="False">3.23.27</st1:chsdate>-beta-win</span>。</span></p>
<p><span>二、显示命令</span></p>
<p><span>1</span><span>、显示数据库列表。</span></p>
<p><span>show databases;</span></p>
<p><span>　　刚开始时才两个数据库：<span>mysql </span>和<span> test</span>。<span>mysql </span>库很重要它里面有<span> MySQL </span>的系统信息，我们改密码和新增用户，实际上就是用这个库进行操作。</span></p>
<p><span>2</span><span>、显示库中的数据表：</span></p>
<p><span>use mysql; //</span><span>打开库，学过<span> FOXBASE </span>的一定不会陌生吧</span></p>
<p><span>show tables;</span></p>
<p><span>3</span><span>、显示数据表的结构：</span></p>
<p><span>describe </span><span>表名<span>;</span></span></p>
<p><span>4</span><span>、建库：</span></p>
<p><span>create database </span><span>库名<span>;</span></span></p>
<p><span>5</span><span>、建表：</span></p>
<p><span>use </span><span>库名<span>;</span></span></p>
<p><span>create table </span><span>表名<span> (</span>字段设定列表<span>);</span></span></p>
<p><span>6</span><span>、删库和删表<span>:</span></span></p>
<p><span>drop database </span><span>库名<span>;</span></span></p>
<p><span>drop table </span><span>表名<span>;</span></span></p>
<p><span>7</span><span>、将表中记录清空：</span></p>
<p><span>delete from </span><span>表名<span>;</span></span></p>
<p><span>8</span><span>、显示表中的记录：</span></p>
<p><span>select * from </span><span>表名<span>;</span></span></p>
<p>&nbsp;</p>
<img src ="http://www.cnitblog.com/chenxin9821/aggbug/60482.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/chenxin9821/" target="_blank">金鳞</a> 2009-07-31 15:25 <a href="http://www.cnitblog.com/chenxin9821/articles/60482.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何正确卸载MySQL </title><link>http://www.cnitblog.com/chenxin9821/articles/52244.html</link><dc:creator>金鳞</dc:creator><author>金鳞</author><pubDate>Fri, 05 Dec 2008 04:52:00 GMT</pubDate><guid>http://www.cnitblog.com/chenxin9821/articles/52244.html</guid><wfw:comment>http://www.cnitblog.com/chenxin9821/comments/52244.html</wfw:comment><comments>http://www.cnitblog.com/chenxin9821/articles/52244.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/chenxin9821/comments/commentRss/52244.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/chenxin9821/services/trackbacks/52244.html</trackback:ping><description><![CDATA[<p>在你从电脑里卸载旧的MYSQL数据库服务时，首先先在WINDOWS服务里停掉MYSQL的服务。再到控制面板里的增加删除程序内进行删除，但是你并不能完整的把MYSQL服务删除，那么就要在注册表里清除你的MYSQL服务。<br><br>　　有几个地方:<br>　　1、HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL 目录删除<br>　　2、HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL 目录删除<br>　　3、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL 目录删除<br>　　如下图所示：<br><br><img style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" src="http://database.ccidnet.com/col/attachment/2006/8/801477.gif"><br><br>自：<font face=Arial color=#30569d>Mooglex <br><a href="http://database.ccidnet.com/art/1108/20060822/876299_1.html">http://database.ccidnet.com/art/1108/20060822/876299_1.html</a></font></p>
<p><br><br><br>&nbsp;</p>
<img src ="http://www.cnitblog.com/chenxin9821/aggbug/52244.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/chenxin9821/" target="_blank">金鳞</a> 2008-12-05 12:52 <a href="http://www.cnitblog.com/chenxin9821/articles/52244.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MYSQL语法查询文档（转载）</title><link>http://www.cnitblog.com/chenxin9821/articles/49987.html</link><dc:creator>金鳞</dc:creator><author>金鳞</author><pubDate>Wed, 08 Oct 2008 07:53:00 GMT</pubDate><guid>http://www.cnitblog.com/chenxin9821/articles/49987.html</guid><wfw:comment>http://www.cnitblog.com/chenxin9821/comments/49987.html</wfw:comment><comments>http://www.cnitblog.com/chenxin9821/articles/49987.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/chenxin9821/comments/commentRss/49987.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/chenxin9821/services/trackbacks/49987.html</trackback:ping><description><![CDATA[<span style="FONT-SIZE: 10pt">[这个贴子最后由天涯风云在 2005/09/21 02:05pm 第 2 次编辑]<br><br>SQL语法查询文档(上)<br><br>一、SQL速成 <br>　　结构查询语言(SQL)是用于查询关系数据库的标准语言，它包括若干关键字和一致的语法，便于数据库元件(如表、索引、字段等)的建立和操纵。 <br>　　以下是一些重要的SQL快速参考，有关SQL的语法和在标准SQL上增加的特性，请查询MySQL手册。 <br>1．创建表 <br>　　表是数据库的最基本元素之一，表与表之间可以相互独立，也可以相互关联。创建表的基本语法如下： <br>create table table_name <br>(column_name data无效 {identity |null|not null}, <br>&#8230;) <br>　　其中参数table_name和column_name必须满足用户数据库中的识别器(identifier)的要求，参数data无效是一个标准的SQL类型或由用户数据库提供的类型。用户要使用non-null从句为各字段输入数据。 <br>　　create table还有一些其他选项，如创建临时表和使用select子句从其他的表中读取某些字段组成新表等。还有，在创建表是可用PRIMARY KEY、KEY、INDEX等标识符设定某些字段为主键或索引等。 <br>书写上要注意： <br>在一对圆括号里的列出完整的字段清单。 <br>字段名间用逗号隔开。 <br>字段名间的逗号后要加一个空格。 <br>最后一个字段名后不用逗号。 <br>所有的SQL陈述都以分号";"结束。 <br>例： <br>mysql&gt; CREATE TABLE test (blob_col BLOB, index(blob_col(10))); <br>2．创建索引 <br>　　索引用于对数据库的查询。一般数据库建有多种索引方案，每种方案都精于某一特定的查询类。索引可以加速对数据库的查询过程。创建索引的基本语法如下： <br>create index index_name <br>on table_name (col_name[(length)],... ) <br>例： <br>mysql&gt; CREATE INDEX part_of_name ON customer (name(10)); <br>3．改变表结构 <br>　　在数据库的使用过程中，有时需要改变它的表结构，包括改变字段名，甚至改变不同数据库字段间的关系。可以实现上述改变的命令是alter，其基本语法如下： <br>alter table table_name alter_spec [, alter_spec ...] <br>例： <br>mysql&gt; ALTER TABLE t1 CHANGE a b INTEGER; <br>4．删除数据对象 <br>　　很多数据库是动态使用的，有时可能需要删除某个表或索引。大多数数据库对象可以下面的命令删除： <br>drop object_name <br>mysql&gt; DROP TABLE tb1; <br>5．执行查询 <br>　　查询是使用最多的SQL命令。查询数据库需要凭借结构、索引和字段类型等因素。大多数数据库含有一个优化器(optimizer)，把用户的查询语句转换成可选的形式，以提高查询效率。 <br>值得注意的是MySQL不支持SQL92标准的嵌套的where子句，即它只支持一个where子句。其基本语法如下： <br>SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [HIGH_PRIORITY] <br>[DISTINCT | DISTINCTROW | ALL] <br>select_expression,... <br>[INTO {OUTFILE | DUMPFILE} ';file_name'; export_options] <br>[FROM table_references <br>[WHERE where_definition] <br>[GROUP BY col_name,...] <br>[HAVING where_definition] <br>[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...] <br>[LIMIT [offset,] rows] <br>[PROCEDURE procedure_name] ] <br>　　其中where从句是定义选择标准的地方，where_definition可以有不同的格式，但都遵循下面的形式： <br>　　字段名操作表达式 <br>　　字段名操作字段名 <br>　　在第一种形式下，标准把字段的值与表达式进行比较；在第二种形式下，把两个字段的值进行比较。根据所比较的数据类型，search_conditio <br>n中的操作可能选以下几种： <br>= 检查是否相等 <br>！= 检查是否不等 <br>&gt; (或&gt;=) 检查左边值是否大于(或大于等于)右边值 <br>&lt; (或&lt;=) 检查左边值是否小于(或小于等于)右边值 <br>[not] between 检查左边值是否在某个范围内 <br>[not] in 检查左边是否某个特定集的成员 <br>[not] like 检查左边是否为右边的子串 <br>is [not] null 检查左边是否为空值 <br>　　在这里，可以用通配符_代表任何一个字符，％代表任何字符串。使用关键字&lt;AND&gt;、&lt;OR&gt;和&lt;NOT&gt;可以生成复杂的词，它们运行检查时使用布尔 <br>表达式的多重标准集。 <br>例： <br>mysql&gt; select t1.name, t2.salary from employee AS t1, info AS t2 where t1.name = t2.name; <br>mysql&gt; select college, region, seed from tournament <br>ORDER BY region, seed; <br>mysql&gt; select col_name from tbl_name WHERE col_name &gt; 0; <br>6．修改表中数据 <br>　　在使用数据库过程中，往往要修改其表中的数据，比如往表中添加新数据，删除表中原有数据，或对表中原有数据进行更改。它们的基本语法如下： <br>数据添加： <br>insert [into] table_name [(column(s))] <br>values (expression(s)) <br>例： <br>mysql&gt; INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2); <br>数据删除： <br>删除 from table_name where search_condition <br>数据更改： <br>更新 table_name <br>set column1=expression1, <br>column2=expression2,&#8230; <br>where search_condition <br>7．数据库切换 <br>　　当存在多个数据库时，可以用下面的命令定义用户想使用的数据库： <br>use database_name <br>8．统计函数 <br>SQL有一些统计函数，它们对于生成数据表格很有帮助。下面介绍几个常用的统计函数： <br>sum (exepression) 计算表达式的和 <br>avg (exepression) 计算表达式的平均值 <br>count (exepression) 对表达式进行简单的计数 <br>count (*) 统计记录数 <br>max (exepression) 求最大值 <br>min (exepression) 求最小值 <br>其中exepression为任何有效的SQL表达式，它可以是一个或多个记录，也可以是别的SQL函数的组合。<br>SQL语法查询文档(下)<br><br>二、MySQL使用导引 <br>1．运用MySQL建立新数据库 <br>在shell下运行： <br>＄&gt;mysqladmin create database01 <br>Database "database01" created. <br>2．启动MySQL <br>在shell下运行： <br>＄&gt;mysql <br>Welcome to the MySQL monitor. Commands end with ; or g. <br>Your MySQL connection id is 22 to server version: 3.21. 29a-gamma-debug <br>无效 ';help'; for help. <br>3．更换数据库 <br>mysql&gt;use database01 <br>database changed. <br>4．创建表 <br>mysql&gt;create table table01 (field01 integer, field02 char(10)); <br>Query OK, 0 rows affected (0.00 sec) <br>5．列出表清单 <br>mysql&gt;show tables; <br>Tables in database01 <br>Table01 <br>table02 <br>6．列出表中的字段清单 <br>mysql&gt;show columns from table01; <br>Field 无效 Null Key Default Extra <br>field01 int(11) YES <br>field02 char(10) YES <br>7．表的数据填写 <br>插入数据 <br>mysql&gt;insert into table01 (field01, field02) values (1, ';first';); <br>Query OK, 1 row affected (0.00 sec) <br>8．字段的增加 <br>...一次一个字段 <br>mysql&gt;alter table table01 add column field03 char(20); <br>Query OK, l row affected (0.04 sec) <br>Records: 1 Duplicates: 0 Warnings: 0 <br>...一次多个字段 <br>mysql&gt;alter table table01 add column field04 date, add column field05 time; <br>Query OK, l row affected (0.04 sec) <br>Records: 1 Duplicates: 0 Warnings: 0 <br>注意：每一列都必须以"add column"重新开始。 <br>它运行了吗？让我们看看。 <br>mysql&gt;select * from table01; <br>field01 field02 field03 field04 field05 <br>1 first NULL NULL NULL <br>9．多行命令输入 <br>　　MySQL命令行界面允许把陈述作为一行输入，也可以把它展开为多行输入。这两者之间并没有语法上的区别。使用多行输入，你可以将SQL陈述 <br>　　一步步分解，从而使你更容易理解。 <br>　　在多行方式下，注释器把每一行都添加到前面的行后，直到你用分号";"来结束这个SQL陈述。一旦键入分号并按回车键，这个陈述即被执行。 <br>下面的例子是同一个严格的SQL陈述的两种输入方法： <br>单行输入 <br>Mysql&gt;create table table33 (field01 integer, field02 char(30)); <br>多行输入 <br>Mysql&gt;create table table33 <br>-&gt;(field01 <br>-&gt;integer, <br>-&gt;field02 <br>-&gt;char(30)); <br>注意不能将单词断开，如： <br>正确 <br>mysql&gt;create table table33 <br>-&gt;( field01 <br>-&gt;integer, <br>-&gt;field02 <br>-&gt;char(30)); <br>错误 <br>mysql&gt;create table table33 <br>-&gt;( field01 inte <br>-&gt;ger, <br>-&gt;field02 <br>-&gt;char(30)); <br>当插入或更改数据时，不能将字段的字符串展开到多行里，否则硬回车将被储存到数据中： <br>标准操作 <br>mysql&gt;insert into table33 (field02) <br>-&gt;values <br>-&gt;(';who thought of foo?';); <br>硬回车储存到数据中 <br>mysql&gt;insert into table33 (field02) <br>-&gt;values <br>-&gt;(';who thought <br>-&gt;of foo?';); <br>结果如下： <br>mysql&gt;select * from table33; <br>field01 field02 <br>NULL who thought of foo? <br>NULL who thought <br>Of foo? <br>10．表的数据嵌入 <br>mysql&gt;insert into table01 (field01, field02, field03, field04, field05) values <br>-&gt;(2, ';second';, ';another';, ';1999-10-23';, ';10:30:00';); <br>Query OK, 1 row affected (0.00 sec) <br>标准日期格式是"yyyy-mm-dd"。 <br>标准时间格式是"hh:mm:ss"。 <br>引号内要求所给的是上述的标准日期和时间格式。 <br>日期也可以"yyyymmdd"形式，时间也可以"hhmmss"形式输入，但其值不需要再加引号。 <br>数字值不需要加引号。这种保存与数据类型无关，这些数据类型都有格式化的专栏来包含(例如：文本，日期，时间，整数等)。 <br>MySQL有一个很有用的命令缓冲区。它保存着你目前已经键入的SQL语句利用它，对于相同的命令，你就不必一遍又一遍地重复输入。下一步我 <br>们就来看这样的一个例子。 <br>利用命令缓冲区(及任意的日期和时间格式)增加另一个数据 <br>按两次键盘上的向上箭头键。 <br>回车。 <br>在圆括号内输入新的值，并以分号结尾。 <br>(3, ';a third';, ';more';, 19991024, 103004); <br>回车。 <br>新值存在里面了吗？ <br>mysql&gt;select * from table01; <br>field01 field02 field03 field04 field05 <br>1 first NULL NULL NULL <br>2 second another 1999-10-23 10:30:00 <br>3 a third more 1999-10-24 10:30:04 <br>11．表的数据更新 <br>一次修改一个字段 <br>再次注意语法。文本需要加引号但数字不要。 <br>mysql&gt;update table01 set field03=';new info'; where field01=1; <br>Query OK, 1 row affected (0.00 sec) <br>一次改变多个字段 <br>记住在每一个更新的字段间用逗号隔开。 <br>mysql&gt;更新 table01 set field04=19991022, field05=062218 where field01=1; <br>Query OK, 1 row affected (0.00 sec) <br>一次更新多个数据 <br>mysql&gt;更新 table01 set field05=152901 where field04&gt;19990101; <br>Query OK, 3 rows affected (0.00 sec) <br>12．删除数据 <br>mysql&gt;delete from table01 where field01=3; <br>Query OK, 1 row affected (0.00 sec) <br>13．退出 <br>mysql&gt;quit <br>Bye <br>　　现在你已经了解了一些运行MySQL中的数据库的根本命令。由于MySQL是通过执行SQL调用来操作的，在你的处理过程中需要一个强有力工具的充足的数组。例如，通过联接相关的字段，你可以同时显示几个表中的数据。同样，SQL允许综合显示、更新或者删除多个符合具体标准的数据。如果你还想精通掌握它，下一步就要学习所有SQL的知识。<br></span>
<img src ="http://www.cnitblog.com/chenxin9821/aggbug/49987.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/chenxin9821/" target="_blank">金鳞</a> 2008-10-08 15:53 <a href="http://www.cnitblog.com/chenxin9821/articles/49987.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>