<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Alex's Blog &#187; MySQL</title>
	<atom:link href="http://www.hialex.net/category/work/mysql/feed" rel="self" type="application/rss+xml" />
	<link>http://www.hialex.net</link>
	<description>记录生活与工作中的点点滴滴</description>
	<lastBuildDate>Sat, 09 Jan 2010 12:37:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>MySQL读书笔记(3)</title>
		<link>http://www.hialex.net/2009/03/mysql-notes-3.html</link>
		<comments>http://www.hialex.net/2009/03/mysql-notes-3.html#comments</comments>
		<pubDate>Sun, 08 Mar 2009 14:31:32 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[dml]]></category>
		<category><![CDATA[笔记]]></category>

		<guid isPermaLink="false">http://www.hialex.net/2009/03/mysql-notes-3.html</guid>
		<description><![CDATA[因为这几天有其他事情,一直没继续学习,真是罪过.
今天主要复习了下DML语句。
DML操作是针对数据库中表记录的操作，主要包括记录的插入(insert)、更新(update)、删除(delete)和查询(select)。
1.插入记录(insert)

insert into tablename (filed1,&#8230;,fieldn) values (value1,&#8230;,valuen)
e.g: insert into emp (ename,hiredate,sal,deptno) values (&#8216;hialex&#8217;,'2000-01-01&#8242;,&#8217;2000&#8242;,1);
也可以不指定字段，但是values后面的顺序应该和字段的排列顺序一致。
e.g: insert into emp values (&#8216;lisa&#8217;,'2003-02-01&#8242;,&#8217;3000&#8242;,2);
在列表中没有写的字段，是可空字段的设置为NULL，非空有默认值的设置为默认值，自增字段设置为自增的下一个数字
在MySQL中可以一次插入多条记录：
e.g: insert into dept values(5,&#8217;dept5&#8242;),(6,&#8217;dept6&#8242;);

2.更新字段(update)

update tablename set field1=value1,&#8230;,fieldn=valuen [where condition];
e.g: update emp set sal=4000 where ename=&#8217;lisa&#8217;;
在MySQL中，update命令可同时更新多个表中数据
e.g: update t1,t2,&#8230;,tn set t1.field1=exper1,&#8230;,tn.fieldn=expern [where condition];
注：多表更新的语法更多的用在根据一个表的字段来动态更新另一个表的字段

3.删除字段(delete)

delete from tablename [where condition]
e.g: delete from emp where ename=&#8217;dony&#8217;;
在MySQL中可以一次删除多个表的数据
delete t1,t2,&#8230;,tn from t1,t2,&#8230;,tn;
如果from后面的表名用别名，则delete后面也要用相应的别名
注：不论是单表还是多表，不加where条件就会把表的所有记录删除

 4.查询记录(select)

查询全部记录
select * from tablename;
查询不重复记录
e.g: select distinct [...]]]></description>
			<content:encoded><![CDATA[<p>因为这几天有其他事情,一直没继续学习,真是罪过.</p>
<p>今天主要复习了下DML语句。</p>
<p>DML操作是针对数据库中表记录的操作，主要包括记录的插入(insert)、更新(update)、删除(delete)和查询(select)。</p>
<p>1.插入记录(insert)</p>
<ul>
<li>insert into tablename (filed1,&#8230;,fieldn) values (value1,&#8230;,valuen)<br />
e.g: insert into emp (ename,hiredate,sal,deptno) values (&#8216;hialex&#8217;,'2000-01-01&#8242;,&#8217;2000&#8242;,1);</li>
<li>也可以不指定字段，但是values后面的顺序应该和字段的排列顺序一致。<br />
e.g: insert into emp values (&#8216;lisa&#8217;,'2003-02-01&#8242;,&#8217;3000&#8242;,2);</li>
<li>在列表中没有写的字段，是可空字段的设置为NULL，非空有默认值的设置为默认值，自增字段设置为自增的下一个数字</li>
<li>在MySQL中可以一次插入多条记录：<br />
e.g: insert into dept values(5,&#8217;dept5&#8242;),(6,&#8217;dept6&#8242;);</li>
</ul>
<p>2.更新字段(update)</p>
<ul>
<li>update tablename set field1=value1,&#8230;,fieldn=valuen [where condition];<br />
e.g: update emp set sal=4000 where ename=&#8217;lisa&#8217;;</li>
<li>在MySQL中，update命令可同时更新多个表中数据<br />
e.g: update t1,t2,&#8230;,tn set t1.field1=exper1,&#8230;,tn.fieldn=expern [where condition];</li>
<li>注：多表更新的语法更多的用在根据一个表的字段来动态更新另一个表的字段</li>
</ul>
<p>3.删除字段(delete)</p>
<ul>
<li>delete from tablename [where condition]<br />
e.g: delete from emp where ename=&#8217;dony&#8217;;</li>
<li>在MySQL中可以一次删除多个表的数据<br />
delete t1,t2,&#8230;,tn from t1,t2,&#8230;,tn;</li>
<li>如果from后面的表名用别名，则delete后面也要用相应的别名</li>
<li>注：不论是单表还是多表，不加where条件就会把表的所有记录删除</li>
</ul>
<p> <span id="more-12"></span>4.查询记录(select)</p>
<ul>
<li>查询全部记录<br />
select * from tablename;</li>
<li>查询不重复记录<br />
e.g: select distinct deptno from emp;</li>
<li>条件查询<br />
e.g: select * from emp where deptno=1;</li>
<li>排序和限制
<ul>
<li>select * from tablename [where condition] [order by field1 | [DESC|ASC],&#8230;,fieldn| [DESC|ASC]];</li>
<li>不写[DESC|ASC]则默认是升序排列。</li>
<li>对于排序后的结果，若只希望显示一部分，则可以使用limit关键字实现：
<ul>
<li>select &#8230; [limit offset_start,row_count]</li>
<li>其中offset_start表示记录起始偏移地址(默认为0)，row_count表示显示的行数</li>
<li>e.g: 显示emp表中按照sal排序后的前三条记录<br />
       select * from emp order by sal limit 3</li>
</ul>
</li>
<li>注：limit属于MySQL扩展SQL92后的语法，在其他数据库不能通用</li>
</ul>
</li>
</ul>
<p>5.聚合</p>
<ul>
<li>select [field1,...,fieldn] funname<br />
from tablename<br />
[where where_condititon]<br />
[group by field1,...,fieldn<br />
[with rollup]]<br />
[having where_condition]</li>
<li>注：
<ul>
<li>funname表示要做的聚合操作，也就是聚合函数，常见的有sum、count、max、min等</li>
<li>with rollup 是可选语法，表明是否对分类聚合后的结果进行再汇总</li>
<li>having是对聚合后的结果再进行条件的过滤</li>
<li>where是在聚合前就对记录进行过滤</li>
</ul>
</li>
</ul>
<p>6.表连接</p>
<ul>
<li>表连接分类内连接和外连接，他们之间的主要分别是内连接仅选出两张表中互相匹配的记录，而外连接会选出其他不匹配的记录，常用内连接。</li>
<li>外连接分为左连接和右连接
<ul>
<li>左连接：包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录<br />
select ename,deptname from emp left join dept on emp.deptno=dept.deptno;</li>
<li>右连接：包含所有的右边表中的记录甚至是左边表中没有和它匹配的记录<br />
select ename,deptname from dept right join emp on emp.deptno=dept.deptno;</li>
</ul>
</li>
</ul>
<p>7.子查询</p>
<ul>
<li>用于子查询的关键字主要包括in、not in、=、！=、exists、not exists等</li>
<li>在某些情况下，子查询可以转化为表连接</li>
<li>注：MySQL4.1之前的版本不支持子查询，需要用表连接来实现子查询功能。表连接在很多情况下用于优化子查询。</li>
</ul>
<p>8.记录联合</p>
<ul>
<li>select * from t1<br />
union | union all<br />
select * from t2<br />
&#8230;&#8230;<br />
union | union all<br />
select * from tn;</li>
<li>union和union all的主要区别:
<ul>
<li>union all是把结果集直接合并在一起</li>
<li>union是将union all后的结果进行一直distinct,去除重复记录后的结果。</li>
</ul>
</li>
</ul>
<p>因为DCL的关键字不多，所有就简略的看了下：</p>
<ul>
<li>创建一个用户z1,密码为123具有对test数据库中左右的表有SELECT/INSERT权限:<br />
e.g: grant select,insert on test.* to ‘z1′@’localhost’ identified by ‘123′;</li>
<li>将z1权限变更,收回INSERT权限<br />
e.g: :revoke insert on test.* from ‘z1′@’localhost’;</li>
</ul>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.hialex.net%2F2009%2F03%2Fmysql-notes-3.html&title=MySQL%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0%283%29" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p><h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li>2009-03-03 -- <a href="http://www.hialex.net/2009/03/mysql-notes-2.html" title="MySQL读书笔记(2)">MySQL读书笔记(2)</a> (0)</li><li>2009-03-02 -- <a href="http://www.hialex.net/2009/03/mysql-notes-1.html" title="MySQL读书笔记(1)">MySQL读书笔记(1)</a> (0)</li><li>2008-04-21 -- <a href="http://www.hialex.net/2008/04/log4j-note-b.html" title="Log4j学习笔记(B)">Log4j学习笔记(B)</a> (0)</li><li>2008-04-20 -- <a href="http://www.hialex.net/2008/04/log4j-note-a.html" title="Log4j学习笔记(A)">Log4j学习笔记(A)</a> (0)</li><li>2008-02-19 -- <a href="http://www.hialex.net/2008/02/jdbc-link-to-mysql.html" title="JDBC连接Mysql数据库">JDBC连接Mysql数据库</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.hialex.net/2009/03/mysql-notes-3.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL读书笔记(2)</title>
		<link>http://www.hialex.net/2009/03/mysql-notes-2.html</link>
		<comments>http://www.hialex.net/2009/03/mysql-notes-2.html#comments</comments>
		<pubDate>Tue, 03 Mar 2009 14:29:51 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[ddl]]></category>
		<category><![CDATA[笔记]]></category>

		<guid isPermaLink="false">http://www.hialex.net/2009/02/the-last-semester-is-boring.html</guid>
		<description><![CDATA[这本书的第一章介绍了Mysql的下载、安装，由于我只有Windows环境，所以就一路Next的安装配置完成，并没有什么好说的。
第二章介绍了(My)SQL基础，主要讲了一些SQL语法和Mysql在SQL标准上的某些关键字扩展。
昨天主要学习了DDL语句：

创建数据库

create database dbname;


显示所有数据库

show databases;


删除数据库

drop database dbname;


选择数据库

use dbname;


显示所有表

show tables;


创建表

create table tablename ( col_name_1 col_type_1 constraints , col_name_2 colu_type_2 constraints,&#8230;&#8230;,col_name_n col_type_n constraints)


查看表定义

desc tablename;


查看更详细的表定义（查看创建表的SQL语句）

show create table tablename (\G);
\G:使得记录能够按照字段竖着排列，对于内容比较长的记录更容易显示


删除表

drop table tablename;


修改表

修改表类型

alter table tablename modify [column] col_definition [first&#124;after col_name]
e.g: alter table emp modify ename varchar(20);


增加表字段

alter table tablename add [column] col_definition [first&#124;after col_name]
e.g: alter table emp add [column] age int(3);


删除表字段

alter table [...]]]></description>
			<content:encoded><![CDATA[<p>这本书的第一章介绍了Mysql的下载、安装，由于我只有Windows环境，所以就一路Next的安装配置完成，并没有什么好说的。</p>
<p>第二章介绍了(My)SQL基础，主要讲了一些SQL语法和Mysql在SQL标准上的某些关键字扩展。</p>
<p>昨天主要学习了DDL语句：</p>
<ul>
<li>创建数据库
<ul>
<li>create database dbname;</li>
</ul>
</li>
<li>显示所有数据库
<ul>
<li>show databases;</li>
</ul>
</li>
<li>删除数据库
<ul>
<li>drop database dbname;</li>
</ul>
</li>
<li>选择数据库
<ul>
<li>use dbname;</li>
</ul>
</li>
<li>显示所有表
<ul>
<li>show tables;</li>
</ul>
</li>
<li>创建表
<ul>
<li>create table tablename ( col_name_1 col_type_1 constraints , col_name_2 colu_type_2 constraints,&#8230;&#8230;,col_name_n col_type_n constraints)</li>
</ul>
</li>
<li>查看表定义
<ul>
<li>desc tablename;</li>
</ul>
</li>
<li>查看更详细的表定义（查看创建表的SQL语句）
<ul>
<li>show create table tablename (\G);</li>
<li>\G:使得记录能够按照字段竖着排列，对于内容比较长的记录更容易显示</li>
</ul>
</li>
<li>删除表
<ul>
<li>drop table tablename;</li>
</ul>
</li>
<li>修改表
<ul>
<li>修改表类型
<ul>
<li>alter table tablename modify [column] col_definition [first|after col_name]</li>
<li>e.g: alter table emp modify ename varchar(20);</li>
</ul>
</li>
<li>增加表字段
<ul>
<li>alter table tablename add [column] col_definition [first|after col_name]</li>
<li>e.g: alter table emp add [column] age int(3);</li>
</ul>
</li>
<li>删除表字段
<ul>
<li>alter table tablename drop [column] col_definition [first|after col_name]</li>
<li>e.g: alter table emp drop [column] age;</li>
</ul>
</li>
<li>注意：change和modify都可以修改表定义，不同的是change后面需要写两次列名，不方便，但是change的有点是可以修改列名称，modify则不能。</li>
<li>字段改名
<ul>
<li>alter table tablename change[column] old_col_name col_definition [first|after col_name]</li>
<li>e.g: alter table emp change age age1 int(4);</li>
</ul>
</li>
<li>修改字段排列顺序
<ul>
<li>在add/change/modify定义中都有first|after col_name，这个选项用于修改字段在表中的位置，默认add增加的新字段是加在表的最后位置，而change/modify默认不会改变字段位置</li>
<li>e.g1: alter table emp add birth date after ename;</li>
<li>e.g2: alter table emp modify age int(3) first;   age字段将置于最前面</li>
</ul>
</li>
<li>更改表名
<ul>
<li>alter table tablename rename [to] new_table_name</li>
<li>e.g: alter table emp rename emp1;</li>
</ul>
</li>
<li>注意：chage/first|after column 这些关键字属于Mysql在标准SQL上的扩展，在其他数据库上不一定适用。</li>
</ul>
</li>
</ul>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.hialex.net%2F2009%2F03%2Fmysql-notes-2.html&title=MySQL%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0%282%29" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p><h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li>2009-03-08 -- <a href="http://www.hialex.net/2009/03/mysql-notes-3.html" title="MySQL读书笔记(3)">MySQL读书笔记(3)</a> (0)</li><li>2009-03-02 -- <a href="http://www.hialex.net/2009/03/mysql-notes-1.html" title="MySQL读书笔记(1)">MySQL读书笔记(1)</a> (0)</li><li>2008-04-21 -- <a href="http://www.hialex.net/2008/04/log4j-note-b.html" title="Log4j学习笔记(B)">Log4j学习笔记(B)</a> (0)</li><li>2008-04-20 -- <a href="http://www.hialex.net/2008/04/log4j-note-a.html" title="Log4j学习笔记(A)">Log4j学习笔记(A)</a> (0)</li><li>2008-02-19 -- <a href="http://www.hialex.net/2008/02/jdbc-link-to-mysql.html" title="JDBC连接Mysql数据库">JDBC连接Mysql数据库</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.hialex.net/2009/03/mysql-notes-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL读书笔记(1)</title>
		<link>http://www.hialex.net/2009/03/mysql-notes-1.html</link>
		<comments>http://www.hialex.net/2009/03/mysql-notes-1.html#comments</comments>
		<pubDate>Mon, 02 Mar 2009 14:20:51 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[笔记]]></category>
		<category><![CDATA[网易]]></category>

		<guid isPermaLink="false">http://www.hialex.net/2009/03/mysql-notes-1.html</guid>
		<description><![CDATA[大三下学期我们开了数据库这门课，作为一个非计算机专业，数据库这么专业基础课在老师看来就是不是太重要了，上课也就这么讲讲，简单涉及一下，课时也较计算机专业少了不少，我当时是还算认真的学习了这么课，考试也还凑合，但是作为志在从事软件行业的我来讲，越发感觉数据库是很重要的，而我那点掌握是远远不够的，由于后来时间也比较少，一直忙于其他的事情，想深入学习数据库的愿望一直落空，现在时间多了，我打算在我的毕业设计中也要设计数据库存储方面，所以现在正好好好系统的学习一下。
上课的时候选择的DBMS是MSSQL，我想很多学校都是这样吧！但是这次学习我想学习MySQL，至于MySQL的优点我就不说了，也算赶次时髦吧！
我采用的教材是由网易DBA组编写的《深入浅出MySQL&#8211;数据库开发、优化与管理维护》，我对网易这个网站，这家公司印象都挺好。网上有人评价这本书并不是太好，呵呵，但是我感觉对我来说够了，再说，这是图书馆借的，没花钱，不好再换！哈哈~
认真学习Mysql，认真做好笔记，认真实践，早日掌握Mysql！
Related Posts2009-03-08 -- MySQL读书笔记(3) (0)2009-03-03 -- MySQL读书笔记(2) (0)2008-04-21 -- Log4j学习笔记(B) (0)2008-04-20 -- Log4j学习笔记(A) (0)2008-02-19 -- JDBC连接Mysql数据库 (0)]]></description>
			<content:encoded><![CDATA[<p>大三下学期我们开了数据库这门课，作为一个非计算机专业，数据库这么专业基础课在老<a href="http://www.hialex.net/images/post/Mysql_C7D3/zcover.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" src="http://www.hialex.net/images/post/Mysql_C7D3/zcover_thumb.jpg" border="0" alt="zcover" width="142" height="200" align="right" /></a>师看来就是不是太重要了，上课也就这么讲讲，简单涉及一下，课时也较计算机专业少了不少，我当时是还算认真的学习了这么课，考试也还凑合，但是作为志在从事软件行业的我来讲，越发感觉数据库是很重要的，而我那点掌握是远远不够的，由于后来时间也比较少，一直忙于其他的事情，想深入学习数据库的愿望一直落空，现在时间多了，我打算在我的毕业设计中也要设计数据库存储方面，所以现在正好好好系统的学习一下。</p>
<p>上课的时候选择的DBMS是MSSQL，我想很多学校都是这样吧！但是这次学习我想学习MySQL，至于MySQL的优点我就不说了，也算赶次时髦吧！</p>
<p>我采用的教材是由网易DBA组编写的《深入浅出MySQL&#8211;数据库开发、优化与管理维护》，我对网易这个网站，这家公司印象都挺好。网上有人评价这本书并不是太好，呵呵，但是我感觉对我来说够了，再说，这是图书馆借的，没花钱，不好再换！哈哈~</p>
<p>认真学习Mysql，认真做好笔记，认真实践，早日掌握Mysql！</p>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.hialex.net%2F2009%2F03%2Fmysql-notes-1.html&title=MySQL%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0%281%29" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p><h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li>2009-03-08 -- <a href="http://www.hialex.net/2009/03/mysql-notes-3.html" title="MySQL读书笔记(3)">MySQL读书笔记(3)</a> (0)</li><li>2009-03-03 -- <a href="http://www.hialex.net/2009/03/mysql-notes-2.html" title="MySQL读书笔记(2)">MySQL读书笔记(2)</a> (0)</li><li>2008-04-21 -- <a href="http://www.hialex.net/2008/04/log4j-note-b.html" title="Log4j学习笔记(B)">Log4j学习笔记(B)</a> (0)</li><li>2008-04-20 -- <a href="http://www.hialex.net/2008/04/log4j-note-a.html" title="Log4j学习笔记(A)">Log4j学习笔记(A)</a> (0)</li><li>2008-02-19 -- <a href="http://www.hialex.net/2008/02/jdbc-link-to-mysql.html" title="JDBC连接Mysql数据库">JDBC连接Mysql数据库</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.hialex.net/2009/03/mysql-notes-1.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
