﻿<?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++博客-多一分钟学习，早一秒钟提高-随笔分类-MySql</title><link>http://www.cppblog.com/xkjy3000/category/21213.html</link><description>VC++、C++、Socket、DirectUI、wxWidgets、Cocos2d-x、Android、IOS</description><language>zh-cn</language><lastBuildDate>Wed, 27 Apr 2016 07:25:22 GMT</lastBuildDate><pubDate>Wed, 27 Apr 2016 07:25:22 GMT</pubDate><ttl>60</ttl><item><title>MySql 5.6.17 x64编译错误</title><link>http://www.cppblog.com/xkjy3000/archive/2016/04/27/213376.html</link><dc:creator>虚空骄阳</dc:creator><author>虚空骄阳</author><pubDate>Wed, 27 Apr 2016 07:14:00 GMT</pubDate><guid>http://www.cppblog.com/xkjy3000/archive/2016/04/27/213376.html</guid><wfw:comment>http://www.cppblog.com/xkjy3000/comments/213376.html</wfw:comment><comments>http://www.cppblog.com/xkjy3000/archive/2016/04/27/213376.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xkjy3000/comments/commentRss/213376.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xkjy3000/services/trackbacks/213376.html</trackback:ping><description><![CDATA[vs2013下，配置好MySql5.6.17 x64后，编译报一堆link 2019错误。解决方法如下：<br /><div>1、将编译平台改为x64<br /><img src="http://www.cppblog.com/images/cppblog_com/xkjy3000/vs2013_mysql_x64.png" width="848" height="595" alt="" /><br />2、将libmysql.dll 拷贝到对应x64编译生成的目录下<br />搞定...</div><img src ="http://www.cppblog.com/xkjy3000/aggbug/213376.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xkjy3000/" target="_blank">虚空骄阳</a> 2016-04-27 15:14 <a href="http://www.cppblog.com/xkjy3000/archive/2016/04/27/213376.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MySql命令大全</title><link>http://www.cppblog.com/xkjy3000/archive/2016/04/27/213375.html</link><dc:creator>虚空骄阳</dc:creator><author>虚空骄阳</author><pubDate>Wed, 27 Apr 2016 05:38:00 GMT</pubDate><guid>http://www.cppblog.com/xkjy3000/archive/2016/04/27/213375.html</guid><wfw:comment>http://www.cppblog.com/xkjy3000/comments/213375.html</wfw:comment><comments>http://www.cppblog.com/xkjy3000/archive/2016/04/27/213375.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xkjy3000/comments/commentRss/213375.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xkjy3000/services/trackbacks/213375.html</trackback:ping><description><![CDATA[<h1>1、连接Mysql</h1><div id="comment">格式： mysql -h主机地址 -u用户名 －p用户密码<br /><br /><strong>1、连接到本机上的MYSQL。</strong><br />首先打开DOS窗口，然后进入目录mysql\bin，再键入命令mysql -u root -p，回车后提示你输密码.注意用户名前可以有空格也可以没有空格，但是密码前必须没有空格，否则让你重新输入密码。<br /><br />如果刚安装好MYSQL，超级用户root是没有密码的，故直接回车即可进入到MYSQL中了，MYSQL的提示符是： mysql&gt;<br /><br /><strong>2、连接到远程主机上的MYSQL。</strong>假设远程主机的IP为：110.110.110.110，用户名为root,密码为abcd123。则键入以下命令：<br />&nbsp;&nbsp;&nbsp; mysql -h110.110.110.110 -u root -p 123;（注:u与root之间可以不用加空格，其它也一样）<br /><br /><strong>3、退出MYSQL命令</strong>： exit （回车）</div><div>&nbsp;</div><div><h1>2、修改密码</h1><div id="comment">格式：mysqladmin -u用户名 -p旧密码 password 新密码<br /><br /><strong>1、给root加个密码ab12。</strong><br />首先在DOS下进入目录mysql\bin，然后键入以下命令<br />&nbsp;&nbsp;&nbsp; mysqladmin -u root -password ab12<br />注：因为开始时root没有密码，所以-p旧密码一项就可以省略了。<br /><br /><strong>2、再将root的密码改为djg345。</strong><br />&nbsp;&nbsp;&nbsp; mysqladmin -u root -p ab12 password djg345</div><div><h1>3、增加新用户</h1><div id="comment">注意：和上面不同，下面的因为是MYSQL环境中的命令，所以后面都带一个分号作为命令结束符<br /><br />格式：grant select on 数据库.* to 用户名@登录主机 identified by &#8220;密码&#8221;<br /><br /><strong>1、增加一个用户test1密码为abc，让他可以在任何主机上登录，并对所有数据库有查询、插入、修改、删除的权限。首先用root用户连入MYSQL，然后键入以下命令：</strong><br />&nbsp;&nbsp;&nbsp; grant select,insert,update,delete on *.* to [email=test1@&#8221;%]test1@&#8221;%[/email]&#8221; Identified by &#8220;abc&#8221;;<br /><br />但增加的用户是十分危险的，你想如某个人知道test1的密码，那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了，解决办法见2。<br /><br /><strong>2、增加一个用户test2密码为abc,让他只可以在localhost上登录，并可以对数据库mydb进行查询、插入、修改、删除的操作（localhost指本地主机，即MYSQL数据库所在的那台主机）</strong>，这样用户即使用知道test2的密码，他也无法从internet上直接访问数据库，只能通过MYSQL主机上的web页来访问了。<br />&nbsp;&nbsp;&nbsp; grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by &#8220;abc&#8221;;<br /><br />如果你不想test2有密码，可以再打一个命令将密码消掉。<br />&nbsp;&nbsp;&nbsp; grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by &#8220;&#8221;;</div><div>&nbsp;</div><div><h1>4.1 创建数据库</h1><div id="comment">注意：创建数据库之前要先连接Mysql服务器<br /><br />命令：create database &lt;数据库名&gt;<br /><br /><strong>例1：建立一个名为xhkdb的数据库</strong><br />&nbsp; &nbsp;mysql&gt; create database xhkdb;<br /><br /><strong>例2：创建数据库并分配用户</strong><br /><br />&#9312;CREATE DATABASE 数据库名;<br /><br />&#9313;GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 数据库名@localhost IDENTIFIED BY '密码';<br /><br />&#9314;SET PASSWORD FOR&nbsp;'数据库名'@'localhost' = OLD_PASSWORD('密码');<br /><br />依次执行3个命令完成数据库创建。注意：中文 &#8220;密码&#8221;和&#8220;数据库&#8221;是户自己需要设置的。</div><div><h1>4.2 显示数据库</h1><div id="comment">命令：show databases （注意：最后有个s）<br />mysql&gt; show databases;<br /><br />注意：为了不再显示的时候乱码，要修改数据库默认编码。以下以GBK编码页面为例进行说明：<br /><br /><strong>1、修改MYSQL的配置文件：</strong>my.ini里面修改default-character-set=gbk<br /><strong>2、代码运行时修改：</strong><br />&nbsp; &nbsp;&#9312;Java代码：jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=gbk<br />&nbsp; &nbsp;&#9313;PHP代码：header("Content-Type:text/html;charset=gb2312");<br />&nbsp; &nbsp;&#9314;C语言代码：int mysql_set_character_set( MYSQL * mysql, char * csname)；<br />该函数用于为当前连接设置默认的字符集。字符串csname指定了1个有效的字符集名称。连接校对成为字符集的默认校对。该函数的工作方式与SET NAMES语句类似，但它还能设置mysql- &gt; charset的值，从而影响了由mysql_real_escape_string() 设置的字符集。</div><div><h1>4.3 删除数据库</h1><div id="comment">命令：drop database &lt;数据库名&gt;<br />例如：删除名为 xhkdb的数据库<br />mysql&gt; drop database xhkdb;<br /><br />例子1：删除一个已经确定存在的数据库<br />&nbsp; &nbsp;mysql&gt; drop database drop_database;<br />&nbsp; &nbsp;Query OK, 0 rows affected (0.00 sec)<br /><br />例子2：删除一个不确定存在的数据库<br />&nbsp; &nbsp;mysql&gt; drop database drop_database;<br />&nbsp; &nbsp;ERROR 1008 (HY000): Can't drop database 'drop_database'; database doesn't exist<br />&nbsp; &nbsp; &nbsp; //发生错误，不能删除'drop_database'数据库，该数据库不存在。<br />&nbsp; &nbsp;mysql&gt; drop database if exists drop_database;<br />&nbsp; &nbsp;Query OK, 0 rows affected, 1 warning (0.00 sec)//产生一个警告说明此数据库不存在<br />&nbsp; &nbsp;mysql&gt; create database drop_database;<br />&nbsp; &nbsp;Query OK, 1 row affected (0.00 sec)<br />&nbsp; &nbsp;mysql&gt; drop database if exists drop_database;//if exists 判断数据库是否存在，不存在也不产生错误<br />&nbsp; &nbsp;Query OK, 0 rows affected (0.00 sec)</div><div><h1>4.4 连接数据库</h1><div id="comment">命令： use &lt;数据库名&gt;<br /><br />例如：如果xhkdb数据库存在，尝试存取它：<br />&nbsp; &nbsp;mysql&gt; use xhkdb;<br />屏幕提示：Database changed<br /><br /><strong>use 语句可以通告MySQL把db_name数据库作为默认（当前）数据库使用，用于后续语句。</strong>该数据库保持为默认数据库，直到语段的结尾，或者直到发布一个不同的USE语句：<br />&nbsp; &nbsp;mysql&gt; USE db1;<br />&nbsp; &nbsp;mysql&gt; SELECT COUNT(*) FROM mytable;&nbsp;&nbsp; # selects from db1.mytable<br />&nbsp; &nbsp;mysql&gt; USE db2;<br />&nbsp; &nbsp;mysql&gt; SELECT COUNT(*) FROM mytable;&nbsp;&nbsp; # selects from db2.mytable<br /><br /><strong>使用USE语句为一个特定的当前的数据库做标记，不会阻碍您访问其它数据库中的表。</strong>下面的例子可以从db1数据库访问作者表，并从db2数据库访问编辑表：<br />&nbsp; &nbsp;mysql&gt; USE db1;<br />&nbsp; &nbsp;mysql&gt; SELECT author_name,editor_name FROM author,db2.editor<br />&nbsp; &nbsp; &nbsp; &nbsp;-&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WHERE author.editor_id = db2.editor.editor_id;<br /><br />USE语句被设立出来，用于与Sybase相兼容。<br /><br />有些网友问到，连接以后怎么退出。其实，不用退出来，use 数据库后，使用show databases就能查询所有数据库，如果想跳到其他数据库，用<br />&nbsp; &nbsp;use 其他数据库名字<br />就可以了。</div><div><h1>4.5 当前选择的数据库</h1><div id="comment">命令：mysql&gt; select database();<br /><br />MySQL中SELECT命令类似于其他编程语言里的print或者write，你可以用它来显示一个字符串、数字、数学表达式的结果等等。如何使用MySQL中SELECT命令的特殊功能？<br /><br /><strong>1.显示MYSQL的版本</strong><br />mysql&gt; select version();&nbsp;<br />+-----------------------+&nbsp;<br />| version()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;<br />+-----------------------+&nbsp;<br />| 6.0.4-alpha-community |&nbsp;<br />+-----------------------+&nbsp;<br />1 row in set (0.02 sec)&nbsp;<br /><br /><strong>2. 显示当前时间</strong><br />mysql&gt; select now();&nbsp;<br />+---------------------+&nbsp;<br />| now()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;<br />+---------------------+&nbsp;<br />| 2009-09-15 22:35:32 |&nbsp;<br />+---------------------+&nbsp;<br />1 row in set (0.04 sec)&nbsp;<br /><br /><strong>3. 显示年月日</strong><br />SELECT DAYOFMONTH(CURRENT_DATE);&nbsp;<br />+--------------------------+&nbsp;<br />| DAYOFMONTH(CURRENT_DATE) |&nbsp;<br />+--------------------------+&nbsp;<br />|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15 |&nbsp;<br />+--------------------------+&nbsp;<br />1 row in set (0.01 sec)&nbsp;<br />&nbsp;&nbsp;<br />SELECT MONTH(CURRENT_DATE);&nbsp;<br />+---------------------+&nbsp;<br />| MONTH(CURRENT_DATE) |&nbsp;<br />+---------------------+&nbsp;<br />|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9 |&nbsp;<br />+---------------------+&nbsp;<br />1 row in set (0.00 sec)&nbsp;<br />&nbsp;&nbsp;<br />SELECT YEAR(CURRENT_DATE);&nbsp;<br />+--------------------+&nbsp;<br />| YEAR(CURRENT_DATE) |&nbsp;<br />+--------------------+&nbsp;<br />|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2009 |&nbsp;<br />+--------------------+&nbsp;<br />1 row in set (0.00 sec)&nbsp;<br /><br /><strong>4. 显示字符串</strong><br />mysql&gt; SELECT "welecome to my blog!";&nbsp;<br />+----------------------+&nbsp;<br />| welecome to my blog! |&nbsp;<br />+----------------------+&nbsp;<br />| welecome to my blog! |&nbsp;<br />+----------------------+&nbsp;<br />1 row in set (0.00 sec)&nbsp;<br /><br /><strong>5. 当计算器用</strong><br />select ((4 * 4) / 10 ) + 25;&nbsp;<br />+----------------------+&nbsp;<br />| ((4 * 4) / 10 ) + 25 |&nbsp;<br />+----------------------+&nbsp;<br />|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 26.60 |&nbsp;<br />+----------------------+&nbsp;<br />1 row in set (0.00 sec)&nbsp;<br /><br /><strong>6. 串接字符串</strong><br />select CONCAT(f_name, " ", l_name)&nbsp;<br />AS Name&nbsp;<br />from employee_data&nbsp;<br />where title = 'Marketing Executive';&nbsp;<br />+---------------+&nbsp;<br />| Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;<br />+---------------+&nbsp;<br />| Monica Sehgal |&nbsp;<br />| Hal Simlai&nbsp;&nbsp;&nbsp; |&nbsp;<br />| Joseph Irvine |&nbsp;<br />+---------------+&nbsp;<br />3 rows in set (0.00 sec)&nbsp;<br />注意：这里用到CONCAT()函数，用来把字符串串接起来。另外，我们还用到以前学到的AS给结果列'CONCAT(f_name, " ", l_name)'起了个假名。</div><div><h1>5.1 创建数据表</h1><div id="comment">命令：create table &lt;表名&gt; ( &lt;字段名1&gt; &lt;类型1&gt; [,..&lt;字段名n&gt; &lt;类型n&gt;]);<br /><br />例如，建立一个名为MyClass的表，<br /><table style="width: 583px;" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td>字段名</td><td>数字类型</td><td>数据宽度</td><td>是否为空</td><td>是否主键</td><td>自动增加</td><td>默认值</td></tr><tr><td>id</td><td>int</td><td>4</td><td>否</td><td>primary key</td><td>auto_increment</td><td>&nbsp;</td></tr><tr><td>name</td><td>char</td><td>20</td><td>否</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>sex</td><td>int</td><td>4</td><td>否</td><td>&nbsp;</td><td>&nbsp;</td><td>0</td></tr><tr><td>degree</td><td>double</td><td>16</td><td>是</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></tbody></table><br />mysql&gt;&nbsp;<strong>create</strong>&nbsp;<strong>table</strong>&nbsp;MyClass(<br />&gt; id int(4) not null&nbsp;<strong>primary key auto_increment</strong>,<br />&gt; name char(20) not null,<br />&gt; sex int(4) not null<strong>&nbsp;default</strong>&nbsp;'0',<br />&gt; degree double(16,2));</div><div><h1>5.3 删除数据表</h1><div id="comment">命令：drop table &lt;表名&gt;<br /><br />例如：删除表名为 MyClass 的表<br />&nbsp; &nbsp;mysql&gt; drop table MyClass;<br /><br />DROP TABLE用于取消一个或多个表。您必须有每个表的DROP权限。所有的表数据和表定义会被取消，所以使用本语句要小心！<br /><br />注意：对于一个带分区的表，DROP TABLE会永久性地取消表定义，取消各分区，并取消储存在这些分区中的所有数据。DROP TABLE还会取消与被取消的表有关联的分区定义（.par）文件。<br /><br />对与不存在的表，使用IF EXISTS用于防止错误发生。当使用IF EXISTS时，对于每个不存在的表，会生成一个NOTE。<br /><br />RESTRICT和CASCADE可以使分区更容易。目前，RESTRICT和CASCADE不起作用。</div><div><h1>5.4 表插入数据</h1><div id="comment">命令：insert into &lt;表名&gt; [( &lt;字段名1&gt;[,..&lt;字段名n &gt; ])] values ( 值1 )[, ( 值n )]<br /><br />例如：往表 MyClass中插入二条记录, 这二条记录表示：编号为1的名为Tom的成绩为96.45, 编号为2 的名为Joan 的成绩为82.99， 编号为3 的名为Wang 的成绩为96.5。<br />&nbsp; &nbsp;mysql&gt; insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);<br /><br />注意：insert into每次只能向表中插入一条记录。</div><div><h1>5.5 查询表中的数据</h1><div id="comment"><strong>1)、查询所有行</strong><br />命令： select &lt;字段1，字段2，...&gt; from &lt; 表名 &gt; where &lt; 表达式 &gt;<br />例如：查看表 MyClass 中所有数据<br />&nbsp; &nbsp;mysql&gt; select * from MyClass;<br /><br /><strong>2）、查询前几行数据</strong><br />例如：查看表 MyClass 中前2行数据<br />mysql&gt; select * from MyClass order by id limit 0,2;<br /><br />select一般配合where使用，以查询更精确更复杂的数据。</div><div><h1>5.6 删除表中数据</h1><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div id="comment">命令：delete from 表名 where 表达式<br /><br />例如：删除表 MyClass中编号为1 的记录<br />mysql&gt; delete from MyClass where id=1;<br /><br />下面是一个删除数据前后表的对比。<br /><table><tbody><tr><th>FirstName</th><th>LastName</th><th>Age</th></tr><tr><td>Peter</td><td>Griffin</td><td>35</td></tr><tr><td>Glenn</td><td>Quagmire</td><td>33</td></tr></tbody></table><br />下面以PHP代码为例删除 "Persons" 表中所有 LastName='Griffin' 的记录：<br /><pre>&lt;?php     $con = mysql_connect("localhost","peter","abc123");     if (!$con)     {       die('Could not connect: ' . mysql_error());     }     mysql_select_db("my_db", $con);     mysql_query("DELETE FROM Persons WHERE LastName='Griffin'"); mysql_close($con);  ?&gt;</pre>在这次删除之后，表是这样的：<br /><table><tbody><tr><th>FirstName</th><th>LastName</th><th>Age</th></tr><tr><td>Glenn</td><td>Quagmire</td><td>33<br /><br /></td></tr></tbody></table><h1>5.7 修改表中数据</h1><div id="comment">语法：update 表名 set 字段=新值,&#8230; where 条件<br />&nbsp; &nbsp;mysql&gt; update MyClass set name='Mary' where id=1;<br /><br /><strong>例子1：单表的MySQL UPDATE语句：</strong><br />&nbsp; &nbsp;UPDATE [LOW_PRIORITY] [IGNORE] tbl_name&nbsp;SET col_name1=expr1 [, col_name2=expr2 ...]&nbsp;[WHERE where_definition]&nbsp;[ORDER BY ...]&nbsp;[LIMIT row_count]<br /><br /><strong>例子2：多表的UPDATE语句：</strong><br />UPDATE [LOW_PRIORITY] [IGNORE] table_references&nbsp;SET col_name1=expr1 [, col_name2=expr2 ...]&nbsp;[WHERE where_definition]<br /><br />UPDATE语法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。如果没有WHERE子句，则更新所有的行。如果指定了ORDER BY子句，则按照被指定的顺序对行进行更新。LIMIT子句用于给定一个限值，限制可以被更新的行的数目。</div><div>&nbsp;</div><div><h1>5.8 增加字段</h1><div id="comment">命令：<strong>alter table</strong>&nbsp;表名&nbsp;<strong>add</strong>字段 类型 其他;<br />例如：在表MyClass中添加了一个字段passtest，类型为int(4)，默认值为0<br />&nbsp; &nbsp;mysql&gt;&nbsp;<strong>alter table</strong>&nbsp;MyClass&nbsp;<strong>add&nbsp;</strong>passtest&nbsp;<strong>int(</strong>4<strong>) default</strong>&nbsp;'0'<br /><br /><strong>加索引</strong><br />&nbsp; &nbsp;mysql&gt; alter table 表名 add index 索引名 (字段名1[，字段名2 &#8230;]);<br />例子： mysql&gt; alter table employee add index emp_name (name);<br /><br /><strong>加主关键字的索引</strong><br />&nbsp; mysql&gt; alter table 表名 add primary key (字段名);<br />例子： mysql&gt; alter table employee add primary key(id);<br /><br /><strong>加唯一限制条件的索引</strong><br />&nbsp; &nbsp;mysql&gt; alter table 表名 add unique 索引名 (字段名);<br />例子： mysql&gt; alter table employee add unique emp_name2(cardnumber);<br /><br /><strong>删除某个索引</strong><br />&nbsp; &nbsp;mysql&gt; alter table 表名 drop index 索引名;<br />例子： mysql&gt;alter table employee drop index emp_name;<br /><br /><strong>增加字段：</strong><br />mysql&gt; ALTER TABLE table_name ADD field_name field_type;<br /><br /><strong>修改原字段名称及类型：</strong><br />mysql&gt; ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;<br /><br /><strong>删除字段：</strong><br />MySQL ALTER TABLE table_name DROP field_name;</div><div><h1>5.9 修改表名</h1><div id="comment">命令：rename table 原表名 to 新表名;<br /><br />例如：在表MyClass名字更改为YouClass<br />&nbsp; &nbsp;mysql&gt; rename table MyClass to YouClass;<br /><br />当你执行 RENAME 时，你不能有任何锁定的表或活动的事务。你同样也必须有对原初表的 ALTER 和 DROP 权限，以及对新表的 CREATE 和 INSERT 权限。<br /><br />如果在多表更名中，MySQL 遭遇到任何错误，它将对所有被更名的表进行倒退更名，将每件事物退回到最初状态。<br /><br />RENAME TABLE 在 MySQL 3.23.23 中被加入。</div><div><h1>6、备份数据库</h1><div id="comment">命令在DOS的[url=file://\\mysql\\bin]\\mysql\\bin[/url]目录下执行<br /><br /><strong>1.导出整个数据库</strong><br />导出文件默认是存在mysql\bin目录下<br />&nbsp;&nbsp;&nbsp; mysqldump -u 用户名 -p 数据库名 &gt; 导出的文件名<br />&nbsp;&nbsp;&nbsp; mysqldump -u user_name -p123456 database_name &gt; outfile_name.sql<br /><br /><strong>2.导出一个表</strong><br />&nbsp;&nbsp;&nbsp; mysqldump -u 用户名 -p 数据库名 表名&gt; 导出的文件名<br />&nbsp;&nbsp;&nbsp; mysqldump -u user_name -p database_name table_name &gt; outfile_name.sql<br /><br /><strong>3.导出一个数据库结构</strong><br />&nbsp;&nbsp;&nbsp; mysqldump -u user_name -p -d &#8211;add-drop-table database_name &gt; outfile_name.sql<br />&nbsp;&nbsp;&nbsp; -d 没有数据 &#8211;add-drop-table 在每个create语句之前增加一个drop table<br /><br /><strong>4.带语言参数导出</strong><br />&nbsp;&nbsp;&nbsp; mysqldump -uroot -p &#8211;default-character-set=latin1 &#8211;set-charset=gbk &#8211;skip-opt database_name &gt; outfile_name.sql<br /><br />例如，将aaa库备份到文件back_aaa中：<br />　　[root@test1 root]# cd　/home/data/mysql<br />　　[root@test1 mysql]# mysqldump -u root -p --opt aaa &gt; back_aaa</div><div><h1>7.1 一个建库和建表的实例1</h1><div id="comment">drop database if exists school; //如果存在SCHOOL则删除<br />create database school; //建立库SCHOOL<br />use school; //打开库SCHOOL<br />create table teacher //建立表TEACHER<br />(<br />&nbsp;&nbsp;&nbsp; id int(3) auto_increment not null primary key,<br />&nbsp;&nbsp;&nbsp; name char(10) not null,<br />&nbsp;&nbsp;&nbsp; address varchar(50) default &#8216;深圳&#8217;,<br />&nbsp;&nbsp;&nbsp; year date<br />); //建表结束<br /><br />//以下为插入字段<br />insert into teacher values(&#8221;,&#8217;allen&#8217;,'大连一中&#8217;,'1976-10-10&#8242;);<br />insert into teacher values(&#8221;,&#8217;jack&#8217;,'大连二中&#8217;,'1975-12-23&#8242;);<br /><br />如果你在mysql提示符键入上面的命令也可以，但不方便调试。<br />1、你可以将以上命令原样写入一个文本文件中，假设为school.sql，然后复制到c:\\下，并在DOS状态进入目录[url=file://\\mysql\\bin]\\mysql\\bin[/url]，然后键入以下命令：<br />&nbsp;&nbsp;&nbsp; mysql -uroot -p密码 &lt; c:\\school.sql<br />如果成功，空出一行无任何显示；如有错误，会有提示。（以上命令已经调试，你只要将//的注释去掉即可使用）。<br /><br />2、或者进入命令行后使用 mysql&gt; source c:\\school.sql; 也可以将school.sql文件导入数据库中。<br /></div><h1>7.2 一个建库和建表的实例2</h1><div id="comment">drop database if exists school; //如果存在SCHOOL则删除<br />create database school; //建立库SCHOOL<br />use school; //打开库SCHOOL<br />create table teacher //建立表TEACHER<br />(<br />&nbsp; &nbsp; id int(3) auto_increment not null primary key,<br />&nbsp;&nbsp;&nbsp; name char(10) not null,<br />&nbsp;&nbsp;&nbsp; address varchar(50) default ''深圳'',<br />&nbsp;&nbsp;&nbsp; year date<br />); //建表结束<br /><br />//以下为插入字段<br />insert into teacher values('''',''glchengang'',''深圳一中'',''1976-10-10'');<br />insert into teacher values('''',''jack'',''深圳一中'',''1975-12-23'');<br /><br />注：在建表中<br />1、将ID设为长度为3的数字字段:int(3)；并让它每个记录自动加一:auto_increment；并不能为空:not null；而且让他成为主字段primary key。<br /><br />2、将NAME设为长度为10的字符字段<br /><br />3、将ADDRESS设为长度50的字符字段，而且缺省值为深圳。<br /><br />4、将YEAR设为日期字段。</div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><img src ="http://www.cppblog.com/xkjy3000/aggbug/213375.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xkjy3000/" target="_blank">虚空骄阳</a> 2016-04-27 13:38 <a href="http://www.cppblog.com/xkjy3000/archive/2016/04/27/213375.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>