QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

[分享] mysql 常用命令

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

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

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

x
一、连接MYSQL。' J5 I/ u& R, @  d
4 |( A$ c7 O4 \. L# k
格式: mysql -h主机地址 -u用户名 -p用户密码1 L' `. ^) z. d4 i# A0 Z) L

: @4 ?2 P! g$ @6 p- E: t1、例1:连接到本机上的MYSQL。( X3 y+ W2 u* k. [* }! y$ N
- w$ G- X: Z' k0 F1 W- y
首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>
' h9 j8 _5 d1 n# Z8 ^" Z( z7 t2 g2 Q  U& ^
2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:, s( g0 i- Y; L# S* U
5 T0 J' [0 u; _0 J/ Z+ }
mysql -h110.110.110.110 -uroot -pabcd123* n7 P- `$ z( T

- D0 I2 N1 ^4 _% T" P" J3 ^(注:u与root可以不用加空格,其它也一样)( C5 v8 X+ X5 W! E
; _# c( O* h3 q$ ^' @( |
3、退出MYSQL命令: exit (回车)6 ]& U2 s4 {- c1 n

( G7 C1 q- N5 e/ _; D- V2 ]/ ^二、修改密码。: r) ^, u( e. \% T8 j2 X$ w

4 h/ S& Y( q5 X" S( N( L$ C格式:mysqladmin -u用户名 -p旧密码 password 新密码
, z- t& G2 m8 G% x' Z( @
" A7 z- q. @* S& I1、例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令
+ r5 _& V4 h4 N4 N) E: ^) @9 N! j8 j1 i, [( p. J3 x; R
mysqladmin -uroot -password ab12' I& o7 D6 S! R1 E% v* e, n

% R6 K2 z- P  \注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
( }- e5 y! ~% B" p2 ~  w1 b$ m! p
3 f7 C7 S, B! v( N/ j% x0 O2、例2:再将root的密码改为djg345。  `* M9 W3 u" N, C

& {2 p  K; Q- z& g7 Vmysqladmin -uroot -pab12 password djg345. D$ |8 j) x2 P' U2 V+ u
  S2 z7 Q9 k, J+ X$ q
三、增加新用户。(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)5 r9 i4 ^% S5 f" b( ?. H

' P5 l) T. L" m格式:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"; L  B# I+ b' S6 ~* S, _. G

; o: R' c. S2 f7 L" f' A# r, v  i7 q2 f例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:
) _# v$ J3 Z/ p( e" U: g& L. t  o3 g9 R* T$ R+ }
grant select,insert,update,delete on *.* to [url=]test1@\"%\[/url]" Identified by \"abc\";7 j1 ?" Y# n) m4 A# l# j

2 W: \; g8 `6 U# q9 [2 @但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。3 P! I' b9 t) G; }; g, w8 }& x* n
# M/ M0 ]9 J& {  F( A' l5 G
例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
7 G0 s( C) b! h8 l- ^
8 ?6 g/ X$ t) f8 @4 u! X$ bgrant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by \"abc\";
3 x( D( ^3 a0 y2 P, h$ b5 P6 ^5 Q: ~6 O; n9 C. \
如果你不想test2有密码,可以再打一个命令将密码消掉。
, n& L" r2 F, u7 i6 T( L8 x" M; M+ z  _
: A" ]( H* u" e, R- ^8 T7 wgrant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by \"\";+ B* I! g! R$ i0 }  s
0 A, e# ]; v$ t  {0 o/ H" Q" j
在上篇我们讲了登录、增加用户、密码更改等问题。下篇我们来看看MYSQL中有关数据库方面的操作。注意:你必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束。% o. H. F  [5 z' C1 K

( S4 ?/ `4 f% F  H; C一、操作技巧4 |1 @, E$ E  _: {
3 d. M" Q$ C4 k) @, Q8 X; q1 L
1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
9 O' {! h. l: m2 u1 e5 E: h9 V* [9 X" o9 T* [
2、你可以使用光标上下键调出以前的命令。但以前我用过的一个MYSQL旧版本不支持。我现在用的是mysql-3.23.27-beta-win。& k$ R2 o' N* y

, G) x0 U  D) g# ]7 L二、显示命令
5 \* p" t$ d6 J3 e. p
( f1 L  {5 L' o; z8 x* `! X9 `1、显示数据库列表。5 Z2 c8 P0 `9 l' ?3 I. E. t; E

; h2 a# p' p' H5 c8 nshow databases;, {* `( T" g, `- F9 c
- |5 _+ s0 @, \4 H3 D6 F& P
刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
% h6 H7 O7 F' ?! k
( g; X9 F; X1 g" Z8 D- o& R1 F; d2、显示库中的数据表:
. d' v4 ^+ l) J- i" i3 d, Q4 m5 g4 X! }+ }' ?% [
use mysql; //打开库,学过FOXBASE的一定不会陌生吧. Q  @' k" L% C. R9 N' o) Y
6 f9 d7 R- p, ?/ R1 R
show tables;
8 I8 ~$ |. r& K/ f' Z# {# {8 l: q4 p
8 U, v: g- u4 P8 a! L$ t5 F, }5 J+ Z3、显示数据表的结构:
! n: ^$ K% w! [/ M' y/ z: c
- j. D9 r& }* H7 k2 ~9 i. _describe 表名;( M. W' R2 n% F6 L
; ~. w  \/ B7 u7 n2 j6 S
4、建库:6 \- k1 w! j/ \( s: v8 g

- }9 R$ d; G: @  s. |, }create database 库名;9 x4 D, e* |" S  T; W2 g1 J! `8 B

2 W* i7 ]. x0 L+ r5、建表:8 y! U, o; P, ~2 s. G: R
7 x4 D: f. i* B+ U3 v% E
use 库名;3 q9 d0 D% e; D2 @0 L" i1 d

6 n9 c: n! h, }2 Kcreate table 表名 (字段设定列表);- B. I! w9 Q0 y0 t% z0 e

4 c3 P2 N% X9 S. B3 J, t3 ^0 d/ S; y6、删库和删表:$ }& G4 E; e4 n" U$ s: T

" _) R4 h8 t' z5 s( `- idrop database 库名;
. M8 s! O: [3 S" n' i
" {  W* I8 s( f6 J0 ^drop table 表名;4 B* _& v2 j6 q) j+ R  r+ R3 T
% E( y) `# S$ A: Z  x+ N
7、将表中记录清空:
6 r; a9 p' s' J
: b) A$ ^$ ^) G/ k& e' s/ tdelete from 表名;
6 j" A- A: Q( q3 w0 Z) i' I+ K
% S) g! J3 G. Z: e4 y: u/ f0 G8、显示表中的记录:
9 Y# u4 z: k- x/ u) p1 \6 u1 I1 ?. Y9 u# s- C8 h  A5 l: |
select * from 表名;7 H3 F! M- I$ ~2 T1 i5 l
* a+ \" B0 q; w# y- c. w4 O
三、一个建库和建表以及插入数据的实例
! c6 a1 C: _2 q2 \6 i7 k
5 n3 D7 Z7 O# W" O8 k. jdrop database if exists school; //如果存在SCHOOL则删除
3 \1 C- g* _4 g* J5 p
. x8 _$ i1 b2 \$ ^1 J" ~5 s! vcreate database school; //建立库SCHOOL" n7 n. K0 b8 U" a7 ]
' z: n7 y% Z. P. o9 W1 u8 v8 f
use school; //打开库SCHOOL
9 z' ?# f9 f. k. N, }  _9 o
5 B3 j0 D- _7 B; S0 Y1 Dcreate table teacher //建立表TEACHER5 }  y9 d) }4 [) H. f

0 c0 O! G. g; M0 f1 G) e(
6 o& {9 U. {: v# }4 T3 g5 H! l& h0 s2 y  U( `! Y) B$ t
id int(3) auto_increment not null primary key,( n* O, s; l0 Q

  l. l+ x+ m* X9 e2 hname char(10) not null,
& s' Z# i% A6 D  O; J0 w2 c- n$ u
$ P. ?! P+ Q/ a% `, A) B! iaddress varchar(50) default '深圳',: `. l1 L& Y4 U% g$ B1 f2 z

7 @- i$ j  p9 s& d4 f0 I. iyear date
! [. A3 Q2 A, l: {
8 X: p. l) E& b, L); //建表结束
% x& @4 Q" @% K3 v4 D! c
6 n6 Q6 S! D4 f  h, e//以下为插入字段! ~/ x" I0 D' m& _5 t
% _/ R) y1 C& V3 |
insert into teacher values('','glchengang','深圳一中','1976-10-10');3 a4 f4 a, v8 w

0 O1 o; h6 t+ t- w! Dinsert into teacher values('','jack','深圳一中','1975-12-23');) [. J$ \3 u- S
9 w" ?) I2 J% u
注:在建表中(1)将ID设为长度为3的数字字段:int(3)并让它每个记录自动加一:auto_increment并不能为空:not null而且让他成为主字段primary key(2)将NAME设为长度为10的字符字段(3)将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar和char有什么区别呢,只有等以后的文章再说了。(4)将YEAR设为日期字段。
* z) a0 |" w2 H/ G" t9 |/ H, R: n3 q/ ]! U
如果你在mysql提示符键入上面的命令也可以,但不方便调试。你可以将以上命令原样写入一个文本文件中假设为school.sql,然后复制到c:\\下,并在DOS状态进入目录\\mysql\\bin,然后键入以下命令:7 ^- u# O4 e7 Z+ K$ J* K5 p

& H5 w4 {  q- H* l% s, Nmysql -uroot -p密码 < c:\\school.sql8 |3 A0 a: L! \" L
# j7 t' ^1 y: R
如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。# v+ y+ J; a/ ^, @( k! G9 |! e4 t

0 Y7 m4 @6 u: }( T/ `' _四、将文本数据转到数据库中. p9 x4 \/ U2 a5 ]

+ k$ }! V! ~$ [1、文本数据应符合的格式:字段数据之间用tab键隔开,null值用\\n来代替., x& X& R: g; m* H

( Q: m  U6 U( {6 ~例:
6 z5 ?% R! U- n- V1 S9 L! R' c
' y; F0 q! ~, e/ T: `3 s( Z3 rose 深圳二中 1976-10-10
% k& {# y, N5 I" L  v( q  a* W) k6 V1 z" Z% A% m
4 mike 深圳一中 1975-12-23
8 o8 U/ ~& |, l9 x) I' I6 J* |# e) e, l8 y7 \/ d
2、数据传入命令 load data local infile \"文件名\" into table 表名;3 y/ B9 |4 Q! U# o* y* o0 K

: j4 N/ S% s; H' K9 Z" |" w注意:你最好将文件复制到\\mysql\\bin目录下,并且要先用use命令打表所在的库。0 i8 s  y3 _, v; ?5 m! j
9 i/ d' I, J- R, d! b/ j
五、备份数据库:(命令在DOS的\\mysql\\bin目录下执行)
+ j1 N( M" @) G6 v  ~
4 L. o/ m" z8 _0 U! |( z" imysqldump --opt school>school.bbb
( t6 v& E: g1 s% J6 e$ R2 X* |$ l
  ?) `+ P0 G/ T9 c! |7 ^' y& Z# P; G注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你会有新发现。. H2 U3 j, d; w# v7 f9 T
) N/ x6 K) w. }& q: u4 s; b2 J4 w
后记:其实MYSQL的对数据库的操作与其它的SQL类数据库大同小异,您最好找本将SQL的书看看。我在这里只介绍一些基本的,其实我也就只懂这些了,呵呵。最好的MYSQL教程还是"晏子"译的"MYSQL中文参考手册"不仅免费每个相关网站都有下载,而且它是最权威的。可惜不是象\"PHP4中文手册\"那样是chm的格式,在查找函数命令的时候不太方便4 ?$ H/ A1 N1 p  b, h' R4 c; e
SQL常用命令使用方法:" t5 @1 y' Z/ Q$ L
(1) 数据记录筛选:
- B9 n- [1 c, Esql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"+ K2 S1 R% m5 ]( z$ X7 q
sql="select * from 数据表 where 字段名 like %字段值% order by 字段名 [desc]"
+ B4 A% W3 L: Q- j+ E: ksql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"
% A  \. Z# J. C! `8 P, Fsql="select * from 数据表 where 字段名 in ( 值1 , 值2 , 值3 )"1 P, j0 O$ U% {% W: t! X+ k
sql="select * from 数据表 where 字段名 between 值1 and 值2", |2 R" J, r& e( H7 W2 G
(2) 更新数据记录:
" ^* r( m0 S! Ssql="update 数据表 set 字段名=字段值 where 条件表达式"
5 E# u: H& Y" u8 S% i! Msql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"4 M9 q/ r; ?) S- A
(3) 删除数据记录:
3 U) @3 ^9 c3 A: bsql="delete from 数据表 where 条件表达式"
8 n6 x! P* V/ t9 |* Tsql="delete from 数据表" (将数据表所有记录删除)
' u9 U# g; r2 n# y1 f- `(4) 添加数据记录:
' b$ z6 _/ X1 }. N& j' msql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)", f3 C& a" ?3 O1 H
sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)) m9 G# h# s0 M6 t, k$ r
(5) 数据记录统计函数:) ~, x* j7 A; k. i+ I$ E
AVG(字段名) 得出一个表格栏平均值
# s8 w  J9 r! g, N5 ?4 Q& E+ G6 G) MCOUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计
  ]- h& S4 O9 M6 DMAX(字段名) 取得一个表格栏最大的值
1 j1 E; L$ D$ s# W6 uMIN(字段名) 取得一个表格栏最小的值 : P. I( ]) j6 P4 i7 {
SUM(字段名) 把数据栏的值相加
* p! w1 {3 G- g9 w3 p7 N0 {. A引用以上函数的方法:2 G/ ~2 E! P" }7 _% W( q. Y; m0 \
sql="select sum(字段名) as 别名 from 数据表 where 条件表达式" ; t9 b% ^. {) T- E
set rs=conn.excute(sql)) u4 U3 R, \1 D# A; _0 {. L
用 rs("别名") 获取统的计值,其它函数运用同上。$ g& ~5 o& |  g0 w4 e+ c+ M
(6) 数据表的建立和删除:
4 S0 a$ l& R. f; k( @% mCreate TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )3 S0 V0 t. @2 V* R0 t# _4 p& ~4 f( v- X
例:Create TABLE tab01(name varchar(50),datetime default now()). T& N7 a' l6 q4 s' c$ q0 ~# Q
Drop TABLE 数据表名称 (永久性删除一个数据表), o& }5 L6 s, i+ A7 z
(7)记录集对象的方法:
( `: Q; u9 X$ ]8 i3 j! brs.movenext 将记录指针从当前的位置向下移一行 % x3 m! p- }4 _- w0 u2 I1 }
rs.moveprevious 将记录指针从当前的位置向上移一行
6 o; n$ r5 `" D" F6 j- k$ Vrs.movefirst 将记录指针移到数据表第一行
  ?" b( O( T( Crs.movelast 将记录指针移到数据表最后一行
  w+ k9 L: m' r( K: s9 Hrs.absoluteposition=N 将记录指针移到数据表第N行
0 {* \3 Y1 I! F5 e% K) frs.absolutepage=N 将记录指针移到第N页的第一行
% D& ~0 Z- z1 N0 |/ O! M( U+ |5 Prs.pagesize=N 设置每页为N条记录
1 i. G/ y0 A% \; n8 crs.pagecount 根据 pagesize 的设置返回总页数 : K6 j2 m' \# R2 k  [
rs.recordcount 返回记录总数 9 U% ]+ I% M( m
rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否
# M1 b( J1 J) x8 w. O0 [4 Wrs.eof 返回记录指针是否超出数据表末端,true表示是,false为否
  q$ D9 ~3 Q# ]9 R9 h2 q. nrs.delete 删除当前记录,但记录指针不会向下移动 . W0 E0 d& }+ B$ [. ~& {  Y0 E
rs.addnew 添加记录到数据表末端 + T9 U+ r# \8 C$ }/ R  h& B* Z
rs.update 更新数据表记录
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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