﻿<?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>BlogJava-java blog-随笔分类- 数据库</title><link>http://www.blogjava.net/yanyan/category/42839.html</link><description>java boy</description><language>zh-cn</language><lastBuildDate>Mon, 07 Dec 2009 08:25:05 GMT</lastBuildDate><pubDate>Mon, 07 Dec 2009 08:25:05 GMT</pubDate><ttl>60</ttl><item><title>MySQL语句大全</title><link>http://www.blogjava.net/yanyan/archive/2009/12/07/305014.html</link><dc:creator>javaz</dc:creator><author>javaz</author><pubDate>Mon, 07 Dec 2009 08:11:00 GMT</pubDate><guid>http://www.blogjava.net/yanyan/archive/2009/12/07/305014.html</guid><wfw:comment>http://www.blogjava.net/yanyan/comments/305014.html</wfw:comment><comments>http://www.blogjava.net/yanyan/archive/2009/12/07/305014.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yanyan/comments/commentRss/305014.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yanyan/services/trackbacks/305014.html</trackback:ping><description><![CDATA[<p>一、连接mysql。<br />
格式： mysql -h主机地址 -u用户名 －p用户密码<br />
1、连接到本机上的MYSQL。<br />
首先打开DOS窗口，然后进入目录mysql\bin，再键入命令mysql -u root -p，回车后提示你输密码.注意用户名前可以有空格也可以没有空格，但是密码前必须没有空格，否则让你重新输入密码.<br />
如果刚安装好MYSQL，超级用户root是没有密码的，故直接回车即可进入到MYSQL中了，MYSQL的提示符是： mysql&gt;<br />
2、连接到远程主机上的MYSQL。假设远程主机的IP为：110.110.110.110，用户名为root,密码为abcd123。则键入以下命令：<br />
&nbsp;&nbsp; mysql -h110.110.110.110 -u root -p 123;（注:u与root之间可以不用加空格，其它也一样）<br />
3、退出MYSQL命令： exit （回车）</p>
<p>二、修改密码。<br />
格式：mysqladmin -u用户名 -p旧密码 password 新密码<br />
1、给root加个密码ab12。首先在DOS下进入目录mysql\bin，然后键入以下命令<br />
&nbsp;&nbsp; mysqladmin -u root -password ab12<br />
&nbsp;&nbsp; 注：因为开始时root没有密码，所以-p旧密码一项就可以省略了。<br />
2、再将root的密码改为djg345。<br />
&nbsp;&nbsp; mysqladmin -u root -p ab12 password djg345<br />
三、增加新用户。<br />
（注意：和上面不同，下面的因为是MYSQL环境中的命令，所以后面都带一个分号作为命令结束符）<br />
格式：grant select on 数据库.* to 用户名@登录主机 identified by "密码"<br />
1、增加一个用户test1密码为abc，让他可以在任何主机上登录，并对所有数据库有查询、插入、修改、删除的权限。首先用root用户连入MYSQL，然后键入以下命令：<br />
&nbsp;&nbsp; grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";<br />
&nbsp;&nbsp; 但增加的用户是十分危险的，你想如某个人知道test1的密码，那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了，解决办法见2。<br />
2、增加一个用户test2密码为abc,让他只可以在localhost上登录，并可以对数据库mydb进行查询、插入、修改、删除的操作（localhost指本地主机，即MYSQL数据库所在的那台主机），<br />
&nbsp;&nbsp; 这样用户即使用知道test2的密码，他也无法从internet上直接访问数据库，只能通过MYSQL主机上的web页来访问了。<br />
&nbsp;&nbsp; grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";<br />
&nbsp;&nbsp; 如果你不想test2有密码，可以再打一个命令将密码消掉。<br />
&nbsp;&nbsp; grant select,insert,update,delete on mydb.* to test2@localhost identified by "";</p>
<p><br />
四、显示命令 <br />
mysql&gt; select version();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查看MySQL的版本号<br />
mysql&gt; select current_date();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查看MySQL的当前日期<br />
mysql&gt; select version(),current_date(); 同时查看MySQL的版本号和当前日期<br />
mysql&gt; show databases;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 显示当前存在的数据库<br />
mysql&gt; USE mysql&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 选择使用数据库(USE和QUIT命令不需要分号结束)<br />
Database changed<br />
mysql&gt; select database();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 显示当前选择的数据库<br />
mysql&gt; show tables;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 显示当前数据库中存在的表<br />
mysql&gt; select * from db;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 显示表(db)的内容&nbsp;&nbsp;&nbsp; <br />
mysql&gt; describe mytable;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 显示表的结构</p>
<p>1、显示当前数据库服务器中的数据库列表：<br />
mysql&gt; SHOW DATABASES;<br />
注意：mysql库里面有MYSQL的系统信息，我们改密码和新增用户，实际上就是用这个库进行操作。<br />
2、显示数据库中的数据表：<br />
mysql&gt; USE 库名； <br />
mysql&gt; SHOW TABLES;<br />
3、显示数据表的结构：<br />
mysql&gt; DESCRIBE 表名;<br />
4、建立数据库：<br />
mysql&gt; CREATE DATABASE 库名;<br />
5、建立数据表：<br />
mysql&gt; USE 库名;<br />
mysql&gt; CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));<br />
6、删除数据库：<br />
mysql&gt; DROP DATABASE 库名;<br />
7、删除数据表：<br />
mysql&gt; DROP TABLE 表名；<br />
8、将表中记录清空：<br />
mysql&gt; DELETE FROM 表名;<br />
9、显示表中的记录：<br />
mysql&gt; SELECT * FROM 表名;<br />
10、往表中插入记录：<br />
mysql&gt; INSERT INTO 表名 VALUES ("hyq","M");<br />
11、更新表中数据：<br />
mysql-&gt; UPDATE 表名 SET 字段名1='a',字段名2='b' WHERE 字段名3='c';<br />
12、用文本方式将数据装入数据表中：<br />
mysql&gt; LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE 表名;<br />
13、导入.sql文件命令：<br />
mysql&gt; USE 数据库名;<br />
mysql&gt; SOURCE d:/mysql.sql;<br />
14、命令行修改root密码：<br />
mysql&gt; UPDATE mysql.user SET password=PASSWORD('新密码') WHERE User='root';<br />
mysql&gt; FLUSH PRIVILEGES;<br />
注意用此种方法修改密码时别忘了 password=password('新密码') 如果直接用 password='新密码'，下次登录时会出现问题以至于登录不进去，因为此密码没用经过password()函数处理，这样写入到user表中的密码系统不能识别就会显示用户名和密码错误的信息。<br />
如果在修改密码的过程中出现问题以至于没有一个用户可以进入mysql则可以用以下的方法重新修改用户名和密码：<br />
bin&gt;mysqld --skip-grant-tables;然后再在 另外一个bin&gt;mysql 便可直接进入mysql ,进入后便修改相关数据。<br />
15、显示use的数据库名：<br />
mysql&gt; SELECT DATABASE();<br />
16、显示当前的user：<br />
mysql&gt; SELECT USER();<br />
五、一个建库和建表以及插入数据的实例<br />
drop database if exists school; //如果存在SCHOOL则删除<br />
create database school; //建立库SCHOOL<br />
use school; //打开库SCHOOL<br />
create table teacher //建立表TEACHER<br />
(<br />
id int(3) auto_increment not null primary key,<br />
name char(10) not null,<br />
address varchar(50) default '深圳',<br />
year date<br />
); //建表结束<br />
//以下为插入字段<br />
insert into teacher values('','allen','大连一中','1976-10-10');<br />
insert into teacher values('','jack','大连二中','1975-12-23');<br />
如果你在mysql提示符键入上面的命令也可以，但不方便调试。<br />
（1）你可以将以上命令原样写入一个文本文件中，假设为school.sql，然后复制到c:\\下，并在DOS状态进入目录，然后键入以下命令：<br />
&nbsp;&nbsp;&nbsp;&nbsp; mysql -uroot -p密码 &lt; c:\\school.sql<br />
&nbsp;&nbsp;&nbsp;&nbsp; 如果成功，空出一行无任何显示；如有错误，会有提示。（以上命令已经调试，你只要将//的注释去掉即可使用）。<br />
（2）或者进入命令行后使用 mysql&gt; source c:\\school.sql; 也可以将school.sql文件导入数据库中。</p>
<p>六、将文本数据转到数据库中<br />
1、文本数据应符合的格式：字段数据之间用tab键隔开，null值用来代替.例：<br />
&nbsp;&nbsp; 3 rose 大连二中 1976-10-10<br />
&nbsp;&nbsp; 4 mike 大连一中 1975-12-23<br />
&nbsp;&nbsp; 假设你把这两组数据存为school.txt文件，放在c盘根目录下。<br />
2、数据传入命令 load data local infile "c:\\school.txt" into table 表名;<br />
&nbsp;&nbsp; 注意：你最好将文件复制到目录下，并且要先用use命令打表所在的库。</p>
<p>七、备份数据库：（命令在DOS的目录下执行）<br />
1.导出整个数据库<br />
导出文件默认是存在mysql\bin目录下<br />
mysqldump -u 用户名 -p 数据库名 &gt; 导出的文件名<br />
mysqldump -u user_name -p123456 database_name &gt; outfile_name.sql<br />
2.导出一个表<br />
mysqldump -u 用户名 -p 数据库名 表名&gt; 导出的文件名<br />
mysqldump -u user_name -p database_name table_name &gt; outfile_name.sql<br />
3.导出一个数据库结构<br />
mysqldump -u user_name -p -d --add-drop-table database_name &gt; outfile_name.sql<br />
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table<br />
4.带语言参数导出<br />
mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt database_name &gt; outfile_name.sql<br />
</p>
<img src ="http://www.blogjava.net/yanyan/aggbug/305014.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yanyan/" target="_blank">javaz</a> 2009-12-07 16:11 <a href="http://www.blogjava.net/yanyan/archive/2009/12/07/305014.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JDBC连接数据库的方法</title><link>http://www.blogjava.net/yanyan/archive/2009/11/23/303397.html</link><dc:creator>javaz</dc:creator><author>javaz</author><pubDate>Mon, 23 Nov 2009 14:56:00 GMT</pubDate><guid>http://www.blogjava.net/yanyan/archive/2009/11/23/303397.html</guid><wfw:comment>http://www.blogjava.net/yanyan/comments/303397.html</wfw:comment><comments>http://www.blogjava.net/yanyan/archive/2009/11/23/303397.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yanyan/comments/commentRss/303397.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yanyan/services/trackbacks/303397.html</trackback:ping><description><![CDATA[<p>//连接MySQL的方法</p>
<p>import java.sql.Connection;<br />
import java.sql.DriverManager;</p>
<p>public class DBConnection {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private static String DB_DRIVER = "com.mysql.jdbc.Driver";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private static String DB_URL = "jdbc:mysql://localhost:3306/test";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private static String DB_NAME = "root";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private static String DB_PASSWORD = "MySQLde密码";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Connection getConn(){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;Class.forName(DB_DRIVER);<br />
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Connection conn = DriverManager.getConnection(DB_URL, DB_NAME, DB_PASSWORD);<br />
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;return conn;<br />
&nbsp;&nbsp;} catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; return null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}<br />
<br />
<br />
<br />
<br />
<br />
</p>
<p>public calss DBConnection{<br />
&nbsp;//建立一个静态方法，返回一个数据库的连接<br />
&nbsp;//这样就可以达到对数据库进行统一管理的效果<br />
&nbsp;&nbsp; &nbsp;public static Connection getConnection(){<br />
&nbsp;&nbsp;Connection con = null;<br />
&nbsp;&nbsp;String driver = "com.microsoft.jdbc.sqlserver.SQLSerDriver";<br />
&nbsp;&nbsp;String severURL = "jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=数据库名";<br />
&nbsp;&nbsp;String username = "数据库用户名";<br />
&nbsp;&nbsp;String password = "数据库密码";<br />
&nbsp;&nbsp;try{<br />
&nbsp; &nbsp;&nbsp;&nbsp;Class.forName(driver);<br />
&nbsp;&nbsp;&nbsp;con = DriverManager.getConnection(severURL, username, password);<br />
&nbsp;&nbsp;}catch(Exception e){<br />
&nbsp; &nbsp;&nbsp;&nbsp;e.printStackTace();<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}</p>
<p>例如：一个实体类要持久化<br />
public class EntityClass{<br />
&nbsp;private Connection con;<br />
&nbsp;//通过构造方法获取数据库的连接<br />
&nbsp;public EntityClass{<br />
&nbsp;&nbsp;con = DBConnection.getConnection();<br />
&nbsp;}</p>
<p>&nbsp;public Connection getInfo(){<br />
&nbsp;&nbsp;PreparedStatement st = con.preparedStatement();<br />
&nbsp;&nbsp;String sql = "sql 语句";<br />
&nbsp;&nbsp;ResultSet rs = st.executeQuery(sql);<br />
&nbsp;&nbsp;.......<br />
&nbsp;&nbsp;//关闭数据库的连接<br />
&nbsp;&nbsp;con.close();<br />
&nbsp;&nbsp;.......<br />
&nbsp;}<br />
}</p>
 <img src ="http://www.blogjava.net/yanyan/aggbug/303397.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yanyan/" target="_blank">javaz</a> 2009-11-23 22:56 <a href="http://www.blogjava.net/yanyan/archive/2009/11/23/303397.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>