QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 1053|回复: 0
收起左侧

[分享] mysql 常用命令

[复制链接]
发表于 2007-11-25 16:38:45 | 显示全部楼层 |阅读模式 来自: 中国四川成都

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
一、连接MYSQL。
1 I9 N" {  k: y; ^& L- t
% {& j  e, S) I/ }+ j# v/ E格式: mysql -h主机地址 -u用户名 -p用户密码
6 ^7 l% j4 J" Y' J5 [0 ]3 U7 k" n: j4 m. l$ }" W- }6 R
1、例1:连接到本机上的MYSQL。8 ~, \5 e" s7 l9 D

3 \4 F5 X1 }. p; h首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>+ E6 c8 w$ |! `( K! S4 X

9 ~  Z0 z% Q' w0 N2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
5 n6 s9 y9 |  ?5 V: `6 U; G1 e6 N% H. _2 ^8 [
mysql -h110.110.110.110 -uroot -pabcd123) b  Q! P) X8 O8 f
1 Z$ p& M1 v1 c* e: I* }; c$ w- E* l
(注:u与root可以不用加空格,其它也一样)
  F. W2 ]1 k- p- f. }; q
, ~# [% w; {  X) ^3、退出MYSQL命令: exit (回车)% O  ^! T. S1 H' t
! g- \7 u. q6 l: |& b) j" v6 ]8 t
二、修改密码。
4 J( `+ A/ F$ S  q0 s+ u; `: C5 p; ]. A% B- s/ v2 O
格式:mysqladmin -u用户名 -p旧密码 password 新密码
8 }# @6 S: a4 ]- P+ c' ]" b
) {/ q- G/ c3 L* H: V1、例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令( e' v6 b+ y2 w7 C5 {: R2 p
  q3 [. C. F: u* e; R! j& L9 N7 ]
mysqladmin -uroot -password ab125 \4 K$ p2 J9 e4 n! h; E/ C0 D& I$ b" }8 y
* L$ I, A% N  O( Z6 E" z
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。7 h& r* o$ p: m3 ?" ~/ s: H0 k# z
+ F$ V4 A5 Y* m! E8 F
2、例2:再将root的密码改为djg345。& Z& x9 k+ j7 x6 Y# J1 t" e7 l
8 [5 Q  x  f+ H
mysqladmin -uroot -pab12 password djg345
! \! M  [6 O$ X- i" l1 |6 {1 x( j8 v" U
三、增加新用户。(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)* N1 L  g: O9 N  x+ b+ A0 ^& o
2 p6 ]; j' q- d0 N+ L
格式:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"
! n9 D& c0 o& c& I0 Q
$ H& R/ X" W" o; J* g  {' H例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:) c- t6 T% k- R) w

4 W( w% \; T' H. @# ggrant select,insert,update,delete on *.* to [url=]test1@\"%\[/url]" Identified by \"abc\";
) K" `+ L3 P, J' X, u! [0 ~* [
7 @( B. K1 m0 k8 h4 L" h( y: H但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。: J) O( a0 j( W  D3 |
" B- P1 X8 N% E; T
例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
7 m2 [9 z/ {* _) Y
% m0 i( J# _4 i7 ?2 z% }grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by \"abc\";( n- V4 e0 _3 X% G! G4 i
$ A7 w( \# [4 ?+ e9 D, {  U
如果你不想test2有密码,可以再打一个命令将密码消掉。1 c5 N+ n  j# \0 c" t9 M( v( C2 t

' o! u- b: L2 ~9 I+ Xgrant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by \"\";
% _5 B: l) A% A$ `8 p" g
2 r  p9 e8 x# C  e* X$ s  n7 `在上篇我们讲了登录、增加用户、密码更改等问题。下篇我们来看看MYSQL中有关数据库方面的操作。注意:你必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束。9 @% q, b9 L0 u3 E: f

0 A0 C( s3 v, D9 Y- I* ]( `一、操作技巧$ N6 o( Y" \( W! a& e7 I0 o

; i0 X' i5 N: O' w$ |" Y: `1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。$ W$ I' S. p" I. P
2 O; K8 C+ N. d# {% j2 t) h
2、你可以使用光标上下键调出以前的命令。但以前我用过的一个MYSQL旧版本不支持。我现在用的是mysql-3.23.27-beta-win。
# F# o1 i% \6 u* N2 b* m4 k; S; y+ l/ O
二、显示命令
% I& z+ R8 k% [: ~0 P8 e2 N' j4 p/ v' y: `8 C
1、显示数据库列表。  v& K0 o; J5 h- L; y
/ `, ?" r6 K$ t9 T8 H+ o
show databases;0 L4 |' o0 T; Z2 o* Q' W

4 {% ]/ {4 W: @" [3 T! r" i刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
$ }4 Y/ Q" |# M1 P1 T5 r
5 a: C8 d7 K( T2 n5 m" [; c2、显示库中的数据表:
( {8 i  m5 b) [7 @. }3 z, s/ t7 X/ `. [7 Y) x
use mysql; //打开库,学过FOXBASE的一定不会陌生吧
- s! R8 p' k) a, d0 ~, [" _8 R/ `) j/ X1 G7 \
show tables;
1 `& h9 D* X% @/ s
/ O; w0 Q4 \6 m1 D5 K3、显示数据表的结构:
3 a& g& @6 I6 {. g5 s, c$ Z. q% M" P3 ~! e# v' `, Z
describe 表名;
; `) i5 [* T6 S# \$ h  L* y8 Z, t0 R9 h; C5 t0 v; d
4、建库:& b3 ?9 }- w2 E5 k$ K5 d
3 J) z, O& o1 ?- A) Z. \, R- ]
create database 库名;) x* e: S: A/ t) ^& \1 B. P
- p) v- `' E3 z0 C7 f! v
5、建表:/ @& i) A2 {- |0 ]4 x. `

+ B# ?. U& X* d6 C& q6 Z7 `use 库名;
9 i3 h* X6 i, k( k: V- U
9 B6 k6 f5 i6 {1 i% Y$ K- C1 k  Y( O+ Jcreate table 表名 (字段设定列表);2 H2 m, `& R2 e/ Y. R( N2 s
* v, Z( Q+ d2 }# x& j1 c& y
6、删库和删表:
$ H" @9 |; X! y3 i, S; {% i3 u. t# @6 ]5 n5 z
drop database 库名;6 s6 [( \# D8 t' O. B/ d

! ]3 u- P8 V# F& zdrop table 表名;9 k* g( q! N! w0 ?
: _9 g, H+ g$ H; p# H
7、将表中记录清空:+ }/ t. T/ ^0 p3 u( D

. D1 p* l5 S; fdelete from 表名;$ I  S0 \9 G6 P' V; b

# d" B' y( y! W) @0 U2 k8 {, y/ _7 ?8、显示表中的记录:7 Z7 N& S- y1 b8 U7 K

( X' K6 q2 d7 aselect * from 表名;
" n7 r7 F/ M9 ^# c8 O
  O- O: \6 v, W三、一个建库和建表以及插入数据的实例" v' y- S! i! ?5 T; `" B
5 b1 U- z/ i1 V- |* v. E$ }
drop database if exists school; //如果存在SCHOOL则删除& E4 e0 p9 }1 h4 _6 v
$ K: n$ e0 ?8 R9 w. l
create database school; //建立库SCHOOL
& i, F4 h9 o  H2 f& j# w: g- X' W! Y: T( x, M( Z) X
use school; //打开库SCHOOL# l8 i% [  P& t& E1 i5 F$ {4 h4 _& J
9 D. e- T8 ?) t9 Z; r& ?- b
create table teacher //建立表TEACHER9 E( `: @( z' w- Z5 i& w: \

3 B/ y5 Q7 ]; E+ b(4 V$ x( X  Q6 U. \6 `; Y
: a2 d( u/ t2 Z" O1 z2 U
id int(3) auto_increment not null primary key,
. E  X6 p- [3 D1 M- q8 ^  h8 L7 e. ^7 [: \1 ~
name char(10) not null,: l1 D  z: ], B+ @  b' @
2 L2 N8 l* J  }1 [( B- ]' {5 Z9 g
address varchar(50) default '深圳',
: i$ J( v3 l& G; g5 r, L- b
; i  A7 E8 j5 Y! I% q$ {year date: Q# G1 J' G* h# s, N$ O& {" F

. }6 [- x& |7 r1 ?" e! ?); //建表结束( R, }3 q, i# ?, i0 Y

/ i2 X# q# y, i% ~0 l0 x* S//以下为插入字段
/ s/ ^" I' |' t6 g7 _! ~& H2 O# z) x) E3 q( w6 E
insert into teacher values('','glchengang','深圳一中','1976-10-10');5 {4 f: j/ d4 |1 ^. \7 o

, Z4 C# c" y+ m! F- F2 _% e) f$ i, G& rinsert into teacher values('','jack','深圳一中','1975-12-23');
7 y0 m4 b: [. w6 {. u! F% l0 r$ }6 ~  e5 x# W; y
注:在建表中(1)将ID设为长度为3的数字字段:int(3)并让它每个记录自动加一:auto_increment并不能为空:not null而且让他成为主字段primary key(2)将NAME设为长度为10的字符字段(3)将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar和char有什么区别呢,只有等以后的文章再说了。(4)将YEAR设为日期字段。8 f% c: i, T. I& ^
! @+ _+ d8 U% W  K) H0 s
如果你在mysql提示符键入上面的命令也可以,但不方便调试。你可以将以上命令原样写入一个文本文件中假设为school.sql,然后复制到c:\\下,并在DOS状态进入目录\\mysql\\bin,然后键入以下命令:0 M: m* ~) ^! z' ~
5 s& y9 ?% b0 e- m3 R- Z# b
mysql -uroot -p密码 < c:\\school.sql
) {+ x- [( e$ f  e+ p+ N" o: N4 Q& R' A4 J: W
如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。
3 d% `2 `2 ]% |  W) ^9 Q- A
1 W) N5 [- r4 b' W" W四、将文本数据转到数据库中
! c: z- `2 N; q9 J; n) s% f8 B
- I7 l- Q9 P2 A" Y1、文本数据应符合的格式:字段数据之间用tab键隔开,null值用\\n来代替.* K6 v6 Q' Y! s) ]
% O$ }+ z5 |! H$ {
例:
# K) p# q7 b$ C2 O8 ?  j3 i% _
! C4 ^% @- f! I0 H3 o8 @/ j3 Q, t$ \3 rose 深圳二中 1976-10-103 o+ N& J! [) R5 _" m

8 a4 R& j2 G( p, q+ \; w4 mike 深圳一中 1975-12-23
9 x8 O$ P7 F# j; j9 n( p$ n! s' \/ V: C. J4 p: P( v
2、数据传入命令 load data local infile \"文件名\" into table 表名;
2 W; n6 A4 c% \4 q& |& q8 v4 n0 U; Q
注意:你最好将文件复制到\\mysql\\bin目录下,并且要先用use命令打表所在的库。
8 B& L6 O5 _/ P# ]1 ^" I8 e2 i1 g+ u  Z
$ N& g3 v- G& T9 S( L五、备份数据库:(命令在DOS的\\mysql\\bin目录下执行)
- v& e7 R8 x1 T, e( j/ j& ?" O$ J2 i' M9 G6 r( F- T( Z/ E- u
mysqldump --opt school>school.bbb
! @3 e0 D( M6 ^( i
) t+ r8 B3 u" D( y8 E- S! P注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你会有新发现。
; E; u' Y( ?0 r# M& J& x+ n- q, l9 L4 e" @7 b
后记:其实MYSQL的对数据库的操作与其它的SQL类数据库大同小异,您最好找本将SQL的书看看。我在这里只介绍一些基本的,其实我也就只懂这些了,呵呵。最好的MYSQL教程还是"晏子"译的"MYSQL中文参考手册"不仅免费每个相关网站都有下载,而且它是最权威的。可惜不是象\"PHP4中文手册\"那样是chm的格式,在查找函数命令的时候不太方便  s/ w" V. H# E2 H8 z9 p- m
SQL常用命令使用方法:
' b* M! w' Z" x! `8 V/ o(1) 数据记录筛选:9 N0 s/ ]8 m; _+ T) a$ v. C8 u
sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"
* g, b: }3 o, J! O8 a3 P" `sql="select * from 数据表 where 字段名 like %字段值% order by 字段名 [desc]"
* ^5 p  H, P/ h$ w) h: d3 Wsql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"' ~+ R8 Q3 U& G2 J% d: N" ^7 G
sql="select * from 数据表 where 字段名 in ( 值1 , 值2 , 值3 )"
* ~' y7 ], K: g+ t& Qsql="select * from 数据表 where 字段名 between 值1 and 值2"
( Z* w" O4 t' I$ B2 I% k(2) 更新数据记录:  L" c" A0 Z- S1 K
sql="update 数据表 set 字段名=字段值 where 条件表达式"$ ?3 v  f# Z1 b. ~3 h
sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式". Y' O" D4 B/ E
(3) 删除数据记录:3 G8 G( K$ @# x4 k  l% `
sql="delete from 数据表 where 条件表达式") N, N/ F& l) {5 `' ~
sql="delete from 数据表" (将数据表所有记录删除)
' z6 n1 C, P0 }(4) 添加数据记录:( ~6 v+ z- T+ C; C: Z! P( V
sql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"; T, }  k9 n7 f3 T
sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)
# Z, ?) @4 r. U! S7 k; {' f: K  ^(5) 数据记录统计函数:
+ Z1 t3 m0 S2 BAVG(字段名) 得出一个表格栏平均值
  z; T/ s' _, ~3 J3 h) `" {COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计 6 @8 j* J" _& \& l- j
MAX(字段名) 取得一个表格栏最大的值 $ |& l- [3 v( c' K
MIN(字段名) 取得一个表格栏最小的值
; g, P  ]- c. ?# aSUM(字段名) 把数据栏的值相加/ X) ^6 e9 p7 h3 w& g. r) I( P7 _
引用以上函数的方法:
6 R& _! R$ K: E5 o! rsql="select sum(字段名) as 别名 from 数据表 where 条件表达式"
! a6 e2 A- [1 j$ s( \1 \, Nset rs=conn.excute(sql)' b( H8 J. W/ D( g  w* j
用 rs("别名") 获取统的计值,其它函数运用同上。3 E; O% [+ I8 o. w
(6) 数据表的建立和删除:% j& j) w3 v, U/ M! Y+ F
Create TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )8 n' y- o2 |; ~. w8 G" @! t* G5 A. y
例:Create TABLE tab01(name varchar(50),datetime default now())+ @! m! j6 o( g' S% |; q# g  ]
Drop TABLE 数据表名称 (永久性删除一个数据表)8 L" j  i1 z7 W! M: e" h: @
(7)记录集对象的方法:
. T  J9 o9 C% G8 _/ vrs.movenext 将记录指针从当前的位置向下移一行
8 t* U* t' l/ U9 V5 U  s# v3 [6 k" Mrs.moveprevious 将记录指针从当前的位置向上移一行
- i( D8 ]# e- b. T/ K1 }* y' Vrs.movefirst 将记录指针移到数据表第一行 / g& e! u, y/ W. e
rs.movelast 将记录指针移到数据表最后一行
9 w9 k( Y' W: ]$ k. W8 X* C$ Trs.absoluteposition=N 将记录指针移到数据表第N行
- l, b2 b; f% T$ v% A" Ors.absolutepage=N 将记录指针移到第N页的第一行 0 H: @  S/ Z/ Q* v: [1 B7 _0 P0 F
rs.pagesize=N 设置每页为N条记录 2 ?, ?. y8 b1 F7 T5 @7 j! G6 E) ^
rs.pagecount 根据 pagesize 的设置返回总页数
' J) S* r) N: jrs.recordcount 返回记录总数 7 I' {. v( M( s
rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否 . O0 m* e: h' e4 n
rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否
/ m$ e+ N9 x+ i# x! Z+ Crs.delete 删除当前记录,但记录指针不会向下移动 , v, s  k( a: f  M* n1 h
rs.addnew 添加记录到数据表末端
7 L$ M6 b$ o# e  W! @3 Krs.update 更新数据表记录
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表