MySQL使用教程精品.docx
《MySQL使用教程精品.docx》由会员分享,可在线阅读,更多相关《MySQL使用教程精品.docx(17页珍藏版)》请在冰点文库上搜索。
MySQL使用教程精品
Mysql的应用大全
安装:
关于安装包的下载可以直接到mysql(已被sun公司收购)的官方网站上下载(相对来说比较正规),当然到其他网站上也行。
注意的事项:
1.在选择安装目录时,可以与系统区(一般为c盘)分开,以免在系统恢复或重装时,破坏mysql保存的数据。
2.在安装到TCP/IP时,要注意一般这一项是默认选上的。
Port端口号通常为3306(要是提示发生冲突的话要修改),便于在其他机子上连接到自己的数据库。
3.到了字符编码这一项时,要格外注意了。
我们一般是选择第三项(第一项是西文码,第二项是通用的utf8编码)进行更为实际的设置。
选GBK(也可用GB2312,GBK字库容量大,其实选上utf-8也是可以的),但是要注意在安装完MYSQL之后,要在命令行里运行一次:
setnamesgbk;
4.在输入密码的这一步时,下面有一个小的提示框“就是是否允许root在其他机器上登陆”这个可能与TCP/IP那个选项有点联系,等待确认
当前自己用的版本号是:
mysql-5.5.20-win32.msi;
和MySQL相关的GUI:
MySQL是一个非常流行的小型关系型数据库管理系统,2008年1月16号被Sun公司收购。
目前MySQL被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
1、phpMyAdmin()
phpMyAdmin是最常用的MySQL维护工具,是一个用PHP开发的基于Web方式架构在网站主机上的MySQL管理工具,支持中文,管理数据库非常方便。
不足之处在于对大数据库的备份和恢复不方便。
2、MySQLDumper()
MySQLDumper使用PHP开发的MySQL数据库备份恢复程序,解决了使用PHP进行大数据库备份和恢复的问题,数百兆的数据库都可以方便的备份恢复,不用担心网速太慢导致中间中断的问题,非常方便易用。
这个软件是德国人开发的,还没有中文语言包。
3、Navicat()
Navicat是一个桌面版MySQL数据库管理和开发工具。
和微软SQLServer的管理器很像,易学易用。
Navicat使用图形化的用户界面,可以让用户使用和管理更为轻松。
支持中文,有免费版本提供。
4、MySQLGUITools()
MySQLGUITools是MySQL官方提供的图形化管理工具,功能很强大,值得推荐,可惜的是没有中文界面。
5、MySQLODBCConnector()
MySQL官方提供的ODBC接口程序,系统安装了这个程序之后,就可以通过ODBC来访问MySQL,这样就可以实现SQLServer、Access和MySQL之间的数据转换,还可以支持ASP访问MySQL数据库
附加说明:
个人比较喜欢使用navicat(比较经典,也是比较常用的,降低了耦合性),而PhpMyAdmin的使用还要准确地区配置PHP环境,这种环境的配置需要注意很多问题,经常会出错,更何况PhpMyAdmin在支持大量数据的备份与恢复方面有缺陷(还要附加上MySQLDumper使用),但是navicat在远程方面的操作却不如PhpMyAdmin。
剩下的两种MySQLGUI是Mysql公司自己提供的,可以尝试。
以上介绍的MysqlGUI(图形化操作界面),只是方面用于对数据库的方便管理,但是对于一个开发人员来说,最为重要的是要能熟练地掌握SQL的常用的命令,这是学习任何数据库所应具备的专业技能。
Mysql常用命令:
一、连接MYSQL。
格式:
mysql-h主机地址-u用户名-p用户密码
1、例1:
连接到本机上的MYSQL。
首先在打开DOS窗口,然后进入目录mysqlbin(另一种不必进入目录,直接就是打开cmd命令行即可,具体需要的操作是要配置环境变量:
我的电脑—右键属性—高级—环境变量--(在系统变量)path末尾(最好先加上”;”分开)加上mysql的配置路径(eg:
C:
\ProgramFiles\MySQL\MySQLServer5.5\bin)),再键入命令mysql-uroot-p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:
mysql>
2、例2:
连接到远程主机上的MYSQL。
假设远程主机的IP为:
110.110.110.110,用户名为root,密码为abcd123。
则键入以下命令:
mysql-h110.110.110.110-uroot-pabcd123
(注:
u与root可以不用加空格,其它也一样)
3、退出MYSQL命令:
exit(回车)或quit
二、修改密码。
格式:
mysqladmin-u用户名-p旧密码password新密码
1、例1:
给root加个密码ab12。
首先在DOS下进入目录mysqlbin,然后键入以下命令
mysqladmin-uroot-passwordab12
注:
因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2、例2:
再将root的密码改为djg345。
mysqladmin-uroot-pab12passworddjg345
三、增加新用户。
(注意:
和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)
格式:
grantselecton数据库.*to用户名@登录主机identifiedby\"密码\"
例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。
首先用以root用户连入MYSQL,然后键入以下命令:
grantselect,insert,update,deleteon*.*totest1@\"%\"Identifiedby\"abc\";
但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。
例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
grantselect,insert,update,deleteonmydb.*totest2@localhostidentifiedby\"abc\";
如果你不想test2有密码,可以再打一个命令将密码消掉。
grantselect,insert,update,deleteonmydb.*totest2@localhostidentifiedby\"\";
在上篇我们讲了登录、增加用户、密码更改等问题。
下篇我们来看看MYSQL中有关数据库方面的操作。
注意:
你必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束。
一、操作技巧
1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。
也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
2、你可以使用光标上下键调出以前的命令。
但以前我用过的一个MYSQL旧版本不支持。
我现在用的是mysql-3.23.27-beta-win。
二、显示命令
1、显示数据库列表。
showdatabases;
刚开始时才两个数据库:
mysql和test。
mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
2、显示库中的数据表:
usemysql;//打开库,学过FOXBASE的一定不会陌生吧
showtables;
3、显示数据表的结构:
describe表名;
4、建库:
createdatabase库名;
5、建表:
use库名;
createtable表名(字段设定列表);
6、删库和删表:
dropdatabase库名;
droptable表名;
7、将表中记录清空:
deletefrom表名;
8、显示表中的记录:
select*from表名;
三、一个建库和建表以及插入数据的实例
dropdatabaseifexistsschool;//如果存在SCHOOL则删除
createdatabaseschool;//建立库SCHOOL
useschool;//打开库SCHOOL
createtableteacher//建立表TEACHER
(
idint(3)auto_incrementnotnullprimarykey,
namechar(10)notnull,
addressvarchar(50)default’深圳’,
yeardate
);//建表结束
//以下为插入字段
insertintoteachervalues(’’,’glchengang’,’深圳一中’,’1976-10-10’);
insertintoteachervalues(’’,’jack’,’深圳一中’,’1975-12-23’);
注:
在建表中
(1)将ID设为长度为3的数字字段:
int(3),并让它每个记录自动加一:
auto_increment,并不能为空:
notnull(当然也可以设置为null,没影响),而且让他成为主字段primarykey
(2)将NAME设为长度为10的字符字段(3)将ADDRESS设为长度50的字符字段,而且缺省值为深圳。
varchar和char有什么区别呢,只有等以后的文章再说了。
(4)将YEAR设为日期字段。
如果你在mysql提示符键入上面的命令也可以,但不方便调试。
你可以将以上命令原样写入一个文本文件中假设为school.sql,然后复制到c:
\\下,并在DOS状态进入目录\\mysql\\bin(如果环境变量设置过了,直接进入),然后键入以下命令:
mysql-uroot-p密码\\school.sql(直接路径)
补充:
也可使用mysql的source命令将其导入。
例如以上命令可写为:
mysql>sourcec:
/school.sql;(注意斜杠)
自己在建表时,一定要严格按照以上给的例子的书写规范来操作,特别是该有的逗号(,)与分号(;)一定加上或者不加。
数据库脚本的创建当然也可以运用前面提到的图形化界面GUI来创建,生成,导出。
(一般不建议开发人员这样做)
如果成功,空出一行无任何显示;如有错误,会有提示。
(以上命令已经调试,你只要将//的注释去掉即可使用)。
四、将文本数据转到数据库中
1、文本数据应符合的格式:
字段数据之间用tab键隔开,null值用\\n来代替.
例:
3rose深圳二中1976-10-10
4mike深圳一中1975-12-23
2、数据传入命令loaddatalocalinfile\"文件名\"intotable表名;
注意:
你最好将文件复制到\\mysql\\bin目录下,并且要先用use命令打表所在的库。
五、备份数据库:
(命令在DOS的\\mysql\\bin目录下执行)
mysqldump--optschool>school.bbb
注释:
将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你会有新发现。
mysql命令行常用命令(进一步的总结)
第一招、mysql服务的启动和停止
netstopmysql
netstartmysql
第二招、登陆mysql
语法如下:
mysql-u用户名-p用户密码
键入命令mysql-uroot-p,回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:
mysql>
注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP
第三招、增加新用户
格式:
grant权限on数据库.*to用户名@登录主机identifiedby"密码"
如,增加一个用户user1密码为password1,让其可以在本机上登录,并对所有数据库有查询、插入、修改、删除的权限。
首先用以root用户连入mysql,然后键入以下命令:
grantselect,insert,update,deleteon*.*touser1@localhostIdentifiedby"password1";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
如果你不想user1有密码,可以再打一个命令将密码去掉。
grantselect,insert,update,deleteonmydb.*touser1@localhostidentifiedby"";
第五招、导出和导入数据
1.导出数据:
mysqldump--opttest>mysql.test
即将数据库test数据库导出到mysql.test文件,后者是一个文本文件
如:
mysqldump-uroot-p123456--databasesdbname>mysql.dbname
就是把数据库dbname导出到文件mysql.dbname中。
2.导入数据:
mysqlimport-uroot-p123456不用解释了吧。
3.将文本数据导入数据库:
文本数据的字段数据之间用tab键隔开。
usetest;
loaddatalocalinfile"文件名"intotable表名;
SQL常用命令使用方法:
(1)数据记录筛选:
sql="select*from数据表where字段名=字段值orderby字段名[desc]"
sql="select*from数据表where字段名like'%字段值%'orderby字段名[desc]"
sql="selecttop10*from数据表where字段名orderby字段名[desc]"
sql="select*from数据表where字段名in('值1','值2','值3')"
sql="select*from数据表where字段名between值1and值2"
(2)更新数据记录:
sql="update数据表set字段名=字段值where条件表达式"
sql="update数据表set字段1=值1,字段2=值2……字段n=值nwhere条件表达式"
(3)删除数据记录:
sql="deletefrom数据表where条件表达式"
sql="deletefrom数据表"(将数据表所有记录删除)
(4)添加数据记录:
sql="insertinto数据表(字段1,字段2,字段3…)valuess(值1,值2,值3…)"
sql="insertinto目标数据表select*from源数据表"(把源数据表的记录添加到目标数据表)
(5)数据记录统计函数:
AVG(字段名)得出一个表格栏平均值
COUNT(*|字段名)对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名)取得一个表格栏最大的值
MIN(字段名)取得一个表格栏最小的值
SUM(字段名)把数据栏的值相加
引用以上函数的方法:
sql="selectsum(字段名)as别名from数据表where条件表达式"
setrs=conn.excute(sql)
用rs("别名")获取统的计值,其它函数运用同上。
(6)数据表的建立和删除:
CREATETABLE数据表名称(字段1类型1(长度),字段2类型2(长度)……)
例:
CREATETABLEtab01(namevarchar(50),datetimedefaultnow())
DROPTABLE数据表名称(永久性删除一个数据表)
关于Mysql另外一些经典操作:
你在cmd下看看有没有mysql的服务名
scquerymysql;
如果有,就删掉它(如果你想删的话)
scdeletemysql;
mysql服务器名字的修改
①首先应该是要查看“计算机管理-服务"里面有几种mysql选项(针对多个Mysql服务)
②现在win+R下用”scquerymysql(X)“(最好不要带分号,X代表1,2,。
。
。
自己的命名)看是否与刚查看的匹配,然后再删除(scdeletemysql(X))
③刷新“服务”(最好那项服务已关闭),此时已经消失。
win+R用CD命令进入mysql的bin目录执行:
mysqld--install“服务名”,重新添加服务器名;
此时完成服务器名的修改;
更新操作:
flushprivileges;
mysql密码的破解(很是经典):
①netstopmysql(X);
②Win+R进入需要破解的mysql的bin目录执行命令:
mysqld--skip-grant-tables
③Win+R再次进入dos命令行执行以下命令(同样是再bin目录):
mysql;(应该是畅通进入)再是命令:
updatemysql.usersetpassword=password("newpassword")whereuser="root";
再次命令:
flushprivileges;quit;
④Ctrl+ALt+Del进入任务管理器结束掉mysqld(不管是Administration还是System的);然后退出打开过的dos命令窗口。
⑤重启mysql即可!
需要注意的是命令在分号(;)上区别(dos命令一般不需要,而mysql类DOS后台需要)!
如果在操作操作过程中出现警告,不用理睬(当然你可以进入mysql的安装目录下找到my.ini文件可用记事本打开,找到[mysql]字样在其下面另起一行添加no-beep即可)
mysql的彻底卸载:
①。
通过360来初步卸载,并且来严格删除残余文件;(你也可以进入控制面板,选择windows自带的添加与删除程序来进行初步的卸载)
②。
进入Mysql的安装目录将整个路径完全删除;
③.进入C:
\DocumentsandSettings\AllUsers\ApplicationData\MySQL将这个文件夹也一同删除;
④。
进入注册表--cmd--regedit有三个
1.Hkey_local_machine--system--contorlSet001--services--Mysql
2.Hkey_local_machine--system--contorlSet002--services--mysql
3.Hkey_local_machine--system--currentcontorlSet--services--Mysql
至此Mysql应该彻底删除了(有点和SQLServer像)
顺便写一下,Mysql在开发用时遇到的乱码问题(如果在安装Mysql数据时字符的选择你已设置过可能就不会有下面的问题,可见在安装时也是非常重要的一步,“好的开头是成功的一半”):
数据库的编码,需要设置到字段级别。
只设置到table级别是没有用的。
=======================
对于jsp+mysql的多语言问题,可以用以下解决方案,可以对任意语言都适用。
1.在数据库链接字符串上要形如:
jdbc:
mysql:
//localhost:
3306/db?
useUnicode=true&characterEncoding=UTF-8(注意要加characterEncoding=UTF-8)
2.在数据库表和相应的字段都要的charset要选择utf8(字段也要加)
3.在servlet的java中去参数时要加上:
httpServletRequest.setCharacterEncoding("UTF-8");
4.jsp页面要加上字符集:
<%@pagelanguage="java"contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
mysql在开发用时必须要导入到工程项目中的价包:
mysql-connector-java-5.1.13-bin.jar;
附加表A:
Mysql的英文术语解释
DetailedConfiguration
详细配置
StandardConfiguration
标准配置
DeveloperMachine
开发设计
ServerMachine
服务器
DedicatedMySQLServerMachine
专业MySql服务器
MultifunctionalDatabase
多功能数据库
TransactionalDatabaseOnly
仅处理数据库
Non-TransactionalDatabaseOnly
费处理数据库
DecisionSupport(DSS)/OLAP]
结果支持
OnlineTransactionProcessing(OLTP)
在线事务处理
ManualSetting
手动调整
EnableTCP/IPNetworking
TCP/IP网络可用
EnableStrictMode
精确模式可用
StandardCharacterSet
标准字符集
BestSupportForMultlingualism
多语言支持
ManualSelectedDefaultCharacterSet/Collation
手选默认字符集
InstallAsWindowsService
作为Windows服务的安装
LaunchtheMySQLServerautomatically
自动启动MySql服务器
IncludeBinDirectoryinWindowsPATH
在Windows路径下隐含二进制地址
ModifySecuritySettings
修改安全设置
Readytoexecute
处理准备
Processingconfiguration
处理配置
Ps:
如果你喜欢这篇文档的话,还请下载吧,自己整理了好几天才弄得差不多(做IT真的很