MYSQL初学者教程.docx
- 文档编号:2395119
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:26
- 大小:25.17KB
MYSQL初学者教程.docx
《MYSQL初学者教程.docx》由会员分享,可在线阅读,更多相关《MYSQL初学者教程.docx(26页珍藏版)》请在冰点文库上搜索。
MYSQL初学者教程
MYSQL初学者自己安装mysql
使用教程指南
内容提要:
有很多朋友虽然安装好了mysql但却不知如何使用它这篇文章中我就从连接mysql
修改密码、增加用户等方面来学习一些mysql常用命令。
一、连接mysql
格式:
mysql-h主机地址 -u用户名 p用户密码
1例1连接到本机上的mysql
首先在打开DOS窗口,然后进入目录mysqli
有很多朋友虽然安装好了mysql但却不知如何使用它这篇文章中我就从连接mysql
修改密码、增加用户等方面来学习一些mysql常用命令。
一、连接mysql
格式:
mysql-h主机地址-u用户名p用户密码
1例1连接到本机上的mysql
首先在打开DOS窗口,然后进入目录mysqlin再键入命令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回车)
二、修改密码。
格式:
mysqladmin-u用户名-p旧密码password新密码
1例1给root加个密码ab12首先在DOS下进入目录mysqlbin然后键入以下命令
mysqladmin-urootpasswordab12
注:
因为开始时root没有密码,所以-p旧密码一项就可以省略了
2例2再将root密码改为djg345
mysqladmin-uroot-pab12passworddjg345
另一种方法:
shell>mysql-uroot-p
mysql>SETPASSWORDFORroot=PASSWORD"root";
三、增加新用户。
注意:
和上面不同,下面的因为是mysql环境中的命令,所以后面都带
一个分号作为命令结束符)
格式:
grantselecton数据库.*to用户名@登录主机identifiby"密码"
例1增加一个用户test1密码为abc让他可以在任何主机上登录,并对所有数据库有
查询、拔出、修改、删除的权限。
首先用以root用户连入mysql然后键入以下命
令:
grantselect,insert,update,deleton*.*totest1@"%"Identified
bi"abc";
但例1增加的用户是十分危险的想如某个人知道test1密码,那么他就可以在
internet上的任何一台电脑上登录你mysql数据库并对你数据可以为所欲为了
解决方法见例2
例2增加一个用户test2密码为abc,让其只可以在localhost上登录,并可以对数据库
mydb进行查询、拔出、修改、删除的操作(localhost指本地主机,即mysql数据
库所在那台主机)这样用户即使用知道test2密码,也无法从internet上直
接访问数据库,只能通过mysql主机上的web页来访问了
grantselect,insert,update,deletonmydb.*totest2@localhost
identifiby"abc";
如果你不想test2有密码,可以再打一个命令将密码消掉。
grantselect,insert,update,deletonmydb.*totest2@localhost
identifiby"";
有关数据库方面的操作。
注意:
必需首先登录到mysql中,以下操作都是mysql提
示符下进行的而且每个命令以分号结束。
一、操作技巧
1如果你打命令时,回车后发现忘记加分号,无须重打一遍命令,只要打个分号回
车就可以了也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束
标志就OK
2可以使用光标上下键调出以前的命令。
但以前我用过的一个mysql旧版本不支持。
现在用的mysql-3.23.27-beta-win
二、显示命令
1显示数据库列表。
showdatabases;
刚开始时才两个数据库:
mysql和testmysql库很重要它里面有mysql系统信息,
改密码和新增用户,实际上就是用这个库进行操作。
2显示库中的数据表:
usemysql打开库,学过FOXBASE一定不会陌生吧
showtables;
3显示数据表的结构:
describ表名;
4建库:
creatdatabas库名;
5建表:
use库名;
creattabl表名(字段设定列表)
6删库和删表:
dropdatabas库名;
droptabl表名;
7将表中记录清空:
deletfrom表名;
8显示表中的记录:
select*from表名;
三、一个建库和建表以及插入数据的实例
dropdatabasifexistschool;//如果存在SCHOOL则删除
creatdatabasschool;//建立库SCHOOL
useschool;//打开库SCHOOL
creattablteacher//建立表TEACHER
idint3auto_incrnotnullprimarikey,
namchar10notnull,
addressvarchar50default'深圳',
yeardate
;//建表结束
//以下为插入字段
insertintoteachervalu'','glchengang','深圳一中','1976-10-10';
insertintoteachervalu'','jack','深圳一中','1975-12-23';
注:
建表中
1将ID设为长度为3数字字段:
int3并让它每个记录自动加一:
auto_incr
并不能为空:
notnull而且让它成为主字段primarikey
2将NAME设为长度为10字符字段
3将ADDRESS设为长度50字符字段,而且缺省值为深圳。
varchar和char有什么区别
呢,只有等以后的文章再说了
4将YEAR设为日期字段。
如果你mysql提示符键入上面的命令也可以,但不方便调试。
可以将以上命令
原样写入一个文本文件中假设为school.sql然后复制到c:
下,并在DOS状态进入目录
mysqlin然后键入以下命令:
mysql-uroot-p密码 school.sql 如果胜利,空出一行无任何显示;如有错误,会有提示。 以上命令已经调试, 只要将//注释去掉即可使用) 四、将文本数据转到数据库中 1文本数据应符合的格式: 字段数据之间用tab键隔开,null值用来代替。 例: 3rose深圳二中1976-10-10 4mike深圳一中1975-12-23 2数据传入命令loaddatalocalinfil"文件名"intotabl表名; 注意: 最好将文件复制到mysqlin目录下,并且要先用us命令选表所在库。 五、导出和导入数据: 命令在DOSmysqlin目录下执行) 导出表 mysqldump--optschool>school.sql 注释: 将数据库school中的表全部备份到school.sql文件,school.sql一个文本文件, 文件名任取,打开看看你会有新发 现。 mysqldump--optschoolteacherstudent>school.teacher.student.sql 注释: 将数据库school中的teacher表和student表备份到school.teacher.student.sql文 件,school.teacher.student.sql一个文本文件,文件名任取,打开看看你会有新发现。 导入表 mysql mysql>crdatabasschool; mysql>usschool; mysql>sourcschool.sql; 或将school.sql换为school.teacher.sql/school.teacher.student.sql 导出数据库 mysqldump--databasdb1db2>db1.db2.sql 注释: 将数据库dbl和db2备份到db1.db2.sql文件,db1.db2.sql一个文本文件,文件名 任取,打开看看你会有新发现。 举个例子: mysqldump-hhost-uuser-ppass--databasdbname>file.dump 就是把host上的以名字user口令pass数据库dbname导入到文件file.dump中。 导入数据库 mysql 复制数据库 mysqldump--all-databas>all-databases.sql 注释: 将所有数据库备份到all-databases.sql文件,all-databases.sql一个文本文件, 文件名任取。 导入数据库 mysql mysql>dropdatabasa; mysql>dropdatabasb; mysql>dropdatabasc; ... mysql>sourcall-databases.sql;或exit退出mysql后mysql 后记: 其实mysql对数据库的操作与其它SQL类数据库大同小异,您最好找本将SQL书看 看。 这里只介绍一些基本的其实我也就只懂这些了呵呵。 最好的mysql教程还是"晏子"译的"mysql中文参考手册"不只免费,每个相关网站都有 下载,而且它最权威的可惜不象"PHP4中文手册"那样是chm格式,查找函数命令的 时候不太方便。 3.打开数据库: usdbname 显示所有数据库: showdatabases; 显示数据库mysql中所有的表: 先usmysql然后showtables; 显示表的列信息: describuser;显示表mysql数据库中user表的信息) 4.创立一个可以从任何地方连接服务器的一个完全的超级用户,但是必需使用一个口令someth做这个 GRANTALLPRIVILEGESON*.*TOmonty@localhostIDENTIFIEDBY'something'WITHGRANTOPTION; GRANTALLPRIVILEGESON*.*TOmonty@"%"IDENTIFIEDBY'something'WITHGRANTOPTION; 5.删除授权: REVOKEALLPRIVILEGESON*.*FROMroot@"%"; USEmysql; DELETEFROMuserWHEREUser="root"andHost="%"; FLUSHPRIVILEGES; 6.创立一个用户custom特定客户端登录,可访问特定数据库bankaccount mysql>GRANTSELECT,INSERT,UPDATE,DELETE,CREATE,DROPONbankaccount.* TO[email]custom@[/email]IDENTIFIEDBY'stupid'; 7.重命名表: ALTERTABLEt1RENAMEt2; 为了改变列a从INTEGER改为TINYINTNOTNULL名字一样) 并且改变列b从CHAR10改为CHAR20同时重命名它从b改为c: ALTERTABLEt2MODIFYaTINYINTNOTNULL,CHANGEbcCHAR20; 增加一个新TIMESTAMP列,名为d ALTERTABLEt2ADDdTIMESTAMP; 列d上增加一个索引,并且使列a为主键: ALTERTABLEt2ADDINDEXd,ADDPRIMARYKEYa; 删除列c ALTERTABLEt2DROPCOLUMNc; 增加一个新的AUTO_INCREMENT整数列,命名为c ALTERTABLEt2ADDcINTUNSIGNEDNOTNULLAUTO_INCREMENT,ADDINDEXc; 注意,索引了c因为AUTO_INCREMENT柱必须被索引,并且另外我声明c为NOTNULL 因为索引了列不能是NULL 8.删除记录: DELETEFROMt1WHEREC>10; 6.改变某几行: UPDATEt1SETuser=weiqiong,password=weiqiong; 7.使用name列的头10个字符创建一个索引: CREATEINDEXpart_of_namONcustomname10; 数据导入问题byseseandZjtv 大家一定使用过phpmyadmin里面的数据库导入,导出功能,非常方便。 但是实际应用中,发现如下几个问题: 1数据库超过一定尺寸,比方6M这时使用导出一般没问题,可以正确的保管到本机硬盘上面,但是导入则不行! 原因是一般的PHP.INI里面设置临时文件/上传文件的大小限制为2M而phpmyadmin使用了上传的方式,造成失败。 2导出到硬盘的.SQL文件在导回时,经常呈现由于某些单引号的问题引起失败,造成导入失败,只能用mysql等应用程序导入了 数据库已经超过10M,所以必需解决这个问题。 思路: 导出: 用phpmyadmin保管数据库/表格结构,用脚本读取数据库内容并保存到文件里面! 导入: 用phpmyadmin恢复数据库/表格结构,用脚本读取文件,然后保管到库里面! 导出顺序如下: 调用方法为****.php? table=tablename 这个简单的顺序目前一次保存一个表格! 每行为一个字段的数据! if$table==""exit; mysql_connect"localhost","name","password"; mysql_select_db"database"; $result=mysql_queri"select*from$table"; ifmysql_num_row$result<=0exit; echo"开始转换数据到文本... "; $handl=fopen"$table.txt","w"; $numfield=mysql_num_field$result; fput$handle,$numfields."\r\n"; for$k=0;$k { $msg=mysql_fetch_row$result; for$i=0;$i<$numfields;$i++ { $msg[$i]=str_replac"\r\n","&&php2000mysqlreturn&&",$msg[$i]; $msg[$i]=str_replac"\n","&&php2000mysqlreturn&&",$msg[$i]; fput$handle,$msg[$i]."\r\n"; } fput$handle,"-------php2000dumpdataprogramV1.0forMySQL--------\r\n"; } fclose$handl; echo"ok"; ? > 导入的顺序如下: 用法同上面! if$table==""exit; mysql_connect"localhost","name","password"; mysql_select_db"database"; $messag=file"$table.txt"; echo$numfield=chop$message[0]; for$k=1;$k { $value=""; for$i=$k;$i<$k+$numfields-1;$i++ { $tmp=str_replac"&&php2000mysqlreturn&&","\r\n",chop$message[$i]; $valu.="'".addslash$tmp."',"; } $tmp=str_replac"&&php2000mysqlreturn&&","\r\n",chop$message[$k+$numfields-1]; $valu.="'".$tmp."'"; $queri="insertinto$tablvalu".$value.""; echomysql_error; mysql_queri$queri; echo$k.""; } echo"ok"; ? > 大家一定使用过phpmyadmin里面的数据库导入,导出功能,非常方便。 但是实际应用中,发现如下几个问题: 1数据库超过一定尺寸,比方6M这时使用导出一般没问题,可以正确的保管到本机硬盘上面,但是导入则不行! 原因是一般的PHP.INI里面设置临时文件/上传文件的大小限制为2M而phpmyadmin使用了上传的方式,造成失败。 2导出到硬盘的.SQL文件在导回时,经常呈现由于某些单引号的问题引起失败,造成导入失败,只能用mysql等应用程序导入了 数据库已经超过10M,所以必需解决这个问题。 思路: 导出: 用phpmyadmin保管数据库/表格结构,用脚本读取数据库内容并保存到文件里面! 导入: 用phpmyadmin恢复数据库/表格结构,用脚本读取文件,然后保管到库里面! 导出顺序如下: 调用方法为****.php? table=tablename 这个简单的顺序目前一次保存一个表格! 每行为一个字段的数据! if$table==""exit; mysql_connect"localhost","name","password"; mysql_select_db"database"; $result=mysql_queri"select*from$table"; ifmysql_num_row$result<=0exit; echo"开始转换数据到文本... "; $handl=fopen"$table.txt","w"; $numfield=mysql_num_field$result; fput$handle,$numfields."\r\n"; for$k=0;$k { $msg=mysql_fetch_row$result; for$i=0;$i<$numfields;$i++ { $msg[$i]=str_replac"\r\n","&&php2000mysqlreturn&&",$msg[$i]; $msg[$i]=str_replac"\n","&&php2000mysqlreturn&&",$msg[$i]; fput$handle,$msg[$i]."\r\n"; } fput$handle,"-------php2000dumpdataprogramV1.0forMySQL--------\r\n"; } fclose$handl; echo"ok"; ? > 导入的顺序如下: 用法同上面! if$table==""exit; mysql_connect"localhost","name","password"; mysql_select_db"database"; $messag=file"$table.txt"; echo$numfield=chop$message[0]; for$k=1;$k { $value=""; for$i=$k;$i<$k+$numfields-1;$i++ { $tmp=str_replac"&&php2000mysqlreturn&&","\r\n",chop$message[$i]; $valu.="'".addslash$tmp."',"; } $tmp=str_replac"&&php2000mysqlreturn&&","\r\n",chop$message[$k+$numfields-1]; $valu.="'".$tmp."'"; $queri="insertinto$tablvalu".$value.""; echomysql_error; mysql_queri$queri; echo$k.""; } echo"ok"; ? > 1显示数据库列表。 showdatabases; 刚开始时才两个数据库: mysql和testmysql库很重要它里面有mysql系统信息, 改密码和新增用户,实际上就是用这个库进行操作。 2显示库中的数据表: usemysql打开库,学过FOXBASE一定不会陌生吧 showtables; 3显示数据表的结构: describ表名; 4建库: creatdatabas库名; 5建表: use库名; creattabl表名(字段设定列表) 6删库和删表: dropdatabas库名; droptabl表名; 7将表中记录清空: deletfrom表名; 8显示表中的记录: select*from表名; 三、一个建库和建表以及插入数据的实例 dropdatabasifexistschool;//如果存在SCHOOL则删除 creatdatabasschool;//建立库SCHOOL useschool;//打开库SCHOOL creattablteacher//建立表TEACHER idint3auto_incrnotnullprimarikey, namchar10notnull, addressvarchar50default'深圳', yeardate ;//建表结束 //以下为插入字段 insertintoteachervalu'','glchengang','深圳一中','1976-10-10'; insertintoteachervalu'','jack','深圳一中','1975-12-23'; 注: 建表中 1将ID设为长度为3数字字段: int3并让它每个记录自动加一: auto_incr 并不能为空: notnull而且让它成为主字段primarikey 2将NAME设为长度为10字符字段 3将ADDRESS设为长度50字符字段,而且缺省值为深圳。 varchar和char有什么区别 呢,只有等以后的文章再说了 4将YEAR设为日期字段。 如果你mysql提示符键入上面的命令也可以,但不方便调试。 可以将以上命令 原样写入一个文本文件中假设为school.sql然后复制到c: 下,并在DOS状态进入目录 mysqlin然后键入以下命令: mysql-uroot-p密码 school.sql 如果胜利,空出一行无任何显示;如有错误,会有提示。 以上命令已经调试, 只要将//注释去掉即可使用) 四、将文本数据转到数据库中 1文本数据应符合的格式: 字段数据之间用tab键隔开,null值用来代替。 例: 3rose深圳二中1976-10-10 4mike深圳一中1975-12-23 2数据传入命令loaddatalocalinfil"文件名"intotabl表名; 注意: 最好将文件复制到mysqlin目录下,并且要先用us命令选表所在库。 五、导出和导入数据: 命令在DOSmysqlin目录下执行) 导出表 mysqldump--optschool>school.sql 注释: 将数据库school中的表全部备份到school.sql文件,school.sql一个文本文件, 文件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MYSQL 初学者 教程