数学建模社区-数学中国
标题:
MySQL数据库基本操作
[打印本页]
作者:
杨利霞
时间:
2022-9-12 18:07
标题:
MySQL数据库基本操作
MySQL数据库基本操作
6 \+ f3 f$ Y- |1 x
% U3 s# e9 @: r! c$ [$ q, f' C) F
目录
/ w# N2 V: p9 I/ c
6 t3 W' ^6 a( ^7 p& A6 _8 L
一、SQL语句 (mysql 数据库中的语言)
, ~. Q! L' r7 h7 M) M3 ], Q7 Q7 [
9 C( D: {1 L9 b9 {* s9 c4 `9 z
二、DDL
- N5 @0 b0 i! C X
[( f& _$ ^! q7 s6 a( J7 e& G
1.DDL语句
; w6 B5 @1 b& j$ `+ F
+ E3 v; E- N: a+ a J* R
(1)创建新的数据库
3 h; l R. h) j
. C9 Q9 J; i& Z+ t( D( H
(2)创建新的表
6 g# ?* ^1 [# ?* e! a
2 ^0 y# H/ M" T: ^' e
2.删除数据库和表
$ [2 k$ _/ \& D4 P8 e2 ^
3 N7 X; n7 P6 y& q0 Z6 t
三、DML
3 j! R [9 m: L/ p
$ c7 K E! ^* j* ]
1.insert插入新数据
K" Q3 f7 K1 v
9 ]& G2 }9 t5 e) @1 s6 ]9 t
2.update更新原有数据
6 c7 R" H: d3 V
1 ~+ G7 w6 K; }$ i- s, L3 O! Q" o7 a
3.delete: 删除不需要的数据(表内容)
2 e1 ^* M# b6 {$ ]2 z$ e
; T' r+ R3 M# R: k) l$ [9 I/ c
四、DQL查询数据记录
# D z" G8 {" U; y- i
* ^ t& a* `. q0 r$ D' N/ q( X
四、DCL
0 r$ O+ P @# y3 M% |
/ [( @5 {4 c- m2 L( P
1.alter 修改表名和表结构(表结构)
; f0 u! `3 k: }
/ H( B; D& |4 ~/ e( C. X
一、SQL语句 (mysql 数据库中的语言)
, ]$ Z" N$ c6 {! ~( u* A2 @3 _
show databases;查看数据库
* i& d. s5 u0 N
use "database_ name" ;进入数据库
: f4 p7 n3 D$ b: s# ^% N- x
show tables; 查看当前数据库中有哪些表
) ~- l( h7 ?+ J( t6 j8 I9 y5 m# }
select * from "table_ name";查询数据表中的所有内容
+ N+ K6 [! v* J/ @) P1 ]
describe "table_ name"; 查看表结构
n. J+ L v$ N* t% Q0 U
desc "table_ name";
- P c: v& a* S5 T( {0 s8 w
0 x3 u9 u. f5 r9 z0 Y
* O) E7 Y6 E) ]( [" x5 _9 H6 p
- ^* v1 y4 `( N" z7 I* I7 v/ `
/ H6 q7 Z! X+ |+ Q- Q
& j0 x2 G8 i9 B+ Z9 p7 n
% C' E. W# J+ c" O/ p K
9 b3 [, k1 o7 @! s8 O0 X
- G8 l) `# p: b2 v
% ?7 G3 C8 i, t. B8 t! Z. g
6 d ]. U3 D8 r+ C2 y! Z6 P
. d0 M9 Y5 r# ]2 \ e8 {
9 F9 u' B+ M2 Y, h) L- G+ a+ G1 |2 ^" q
' ` Q) l' q7 L7 O4 C/ H i0 n/ \- Q
A7 t/ H9 B% Q, f( p5 y
类比excel表格
( j; l; E. ` q4 t% z1 d1 S
X' d0 P q$ z* U' F
' `" [+ x \' r
/ Q! ^# q; f7 j
- p4 w& |6 }, w+ ? Y, c% @
) A: a P) @% l* v
, C6 i( ?! q. f
3 ?1 ^; G2 {0 c9 Y8 L% L: m
6 P; H, n2 _9 J* |, r3 ~$ }2 v: o5 q
* [1 F( n# M: X. A( f/ x
类比excel表格
. q- g% e {; X' Z: c! _* ^
# b" T" w. W6 D" y& l
# J$ h* J' Z3 E' E. ^
+ { d0 g. @+ t" {' ?/ G8 O
5 b# j! z0 h- z; S. v
$ W2 W( Z/ k' A2 @2 e! G
简写
( \# e( I* t' Y
- i/ |" x8 N" z5 ^
filed 字段名
8 N% S& g9 c" r5 c( I+ O
" O) |7 T4 x+ |+ D
7 Z* V$ h* X, b4 ~
' {4 ^. l! v- i8 W% O5 Z
二、DDL
# f0 b7 X5 c) ^/ B+ W
1.DDL语句
- c% \ K x C
用于创建数据库对象(库、表、索引等)
- e) i5 ~0 e/ r! v+ X1 Z
' n9 }; s" Y$ }6 J
(1)创建新的数据库
2 [5 o( e+ Q. x' e2 g( P, X5 a) ?
create database 数据库名;
& N& `' m, O- A1 W. R* K; u b
( r9 {- e; g" a! O; F
(2)创建新的表
3 K& ~" d+ l3 Z$ e
create table 表名(字段1 数据类型,字段2 数据类型[, ...] [, primary key (主键名)]);
' B. B* Y4 V+ @) q6 F( U, J! P
主键一般选择能代表唯一性的字段不允许取空值(NULL) ,一个表只能有一个主键。
. d: I3 h. d, [1 C% s
( Q2 p6 j/ a5 m; J- ?. K
create database 数据库名;
+ x) t* r0 }0 K0 x
use 数据库名;
' a( L0 [+ m, r3 i2 b
create table 表名 (id int not null, name char(10) not null, score decimal (5,2) ,passwd char (48) defalt' ',primary key (id)) ;
* Y7 j% ^. M$ u h5 a3 e
! G0 L& I8 A* u! P+ ?" g7 n
desc 表名;
/ n+ I1 a& ]+ u0 s- e' K4 Q( _
$ C' [( s& t1 l5 y/ D2 W( W; }
not null 不允许为空值
. i1 K$ ?; z; B: P
9 q9 D& w( b& ?. C- ]) X
default ' ' 默认值为空
7 z2 Y/ V; t$ f: C* I8 R+ L
; Z. K3 c; f, F$ \. A3 G0 e8 |; s
primary key : 主键一般选择没有重复并且不为空值的字段
: n- `& ~1 |& ], R" t2 j; P$ Q
! t- Z% A; ?5 r/ {) R
例子
* b2 y2 n% Y8 h [; R& i
create table 表名 (id int(10) not null primary key, name varchar(40) ,age int(3));
. m; Z! [. c- @6 }5 U
create table food (id int(3) , name varchar (40) ,money decimal (3,1) ,primary key (id));
' }* T$ K+ I. s7 E: R+ z' r
6 R- i; C; M! ?- e4 E/ @
4 v: {6 w, }2 M
2 Q) D0 o! i5 r
1 z+ A( T! |) h) A# q5 j, q5 t1 B
_1 o3 {: m( D* S g
- Y3 v* ?# Z# z1 E) c% |" E, t4 Z
& g) S. r( Z: X% C4 D, H
9 x. B! \1 D7 C Z5 ~/ f k
& q. M' A G7 C& i3 M' }
6 U" f4 R0 T( y+ `! W
2.删除数据库和表
+ ^+ G0 Z5 ]/ d# V# Z
删除指定的数据表
/ b% R0 X8 K( ~/ a; k, t7 }2 ~
4 A2 t# J! R. t* `. q
drop 删除表内容(数据)和表结构
- x4 l: } a+ Z7 ~" P
0 w* N) r! S$ Y% g4 o
use 数据库名
+ I. O$ m# }" n: B
drop table 表名
' ~" {7 m( }1 J- u# V& m7 x& r. B4 u
drop table [数据库名.] 表名;
! u0 H7 ?2 Z1 B$ h6 X" H
如不用use进入库中,则需加上数据库名
6 W* d' b- d& M0 ?
删除指定的数据库
" L" O7 x1 o6 v- Q" f0 s! p: p4 D
drop database 数据库名;
! W2 s0 G$ G- S, I8 c6 D$ d
" }$ j6 X- d5 v5 G* i& F( v+ v+ c
0 b# n" p6 _9 j+ |
3 R2 @3 c6 Q4 P9 b4 n. f) ~9 Q
m$ j" b9 ^3 p- S Y& b- q
/ X3 |! ]! D0 Y0 l+ r
; Z# C8 |6 c8 y! X4 c9 O/ r
2 E% W2 u0 z5 a2 t# a
2 U% s: J" x( n3 i3 p
% }: l- B* a; y0 ?7 L. I) p+ B
. E& A8 k% v- V4 C
6 ~* j' G* P& X) U6 n j2 }
; k4 V" G( z3 b
/ j& P- H2 Z8 ?7 A- K/ M
5 {/ G/ U/ _. l8 p/ s. J! L' Q, ?: d. l
X- G6 |: p' b5 X% x& @% v) j5 }. q
$ b/ U; J; l4 k& O* y Z& `* f
三、DML
0 A( j# T0 C$ H4 i) K
管理表中的数据记录
" U0 D1 P# Y* q$ M. P: k% s' |
2 o2 f) Y, }- g
insert: 插入新数据
( \6 F" w s c9 p
update: 更新原有数据
/ d/ W" o/ k+ R3 O' G2 e/ V3 w7 ]& @
delete: 删除不需要的数据
) z6 C5 @: K4 F7 H
1.insert插入新数据
( F, u3 d; }' o/ U! c J
格式:
# D) M8 M& d* H
$ Z4 Y1 ]+ E4 U1 t7 [
insert into 表名(字段1,字段2[,...]) values (字段1的值,字段2的值,...);
k8 a! Z8 w/ f) [& Z' D% h
. _: x) b+ P j2 k1 Q
例子:
( N$ @- \9 A6 p; D4 N
insert into 表名 (id,name,score,passwd) values (1,'自定义',70.5,passwd('123456')) ;
" h$ H( A- F. f0 l$ h! C; i! m( K }
) q$ ?# u% k J
passwd('123456') :查询数据记录时,密码字串以加密形式显示:若不使用passwd(), 查询时以明文显示。
l: X# v. y) S5 `
, V& q; p6 [0 j R: Q) y( T6 F
密码复杂性验证
# r; s2 H: p* R, F
8 F6 w6 `3 O" M( c7 v! g: T
insert into 表名 values(2,'自定义',90.5, 654321) ;
( m5 r; F' `0 K& q3 @
select * from 表名 ; 查询表的数据记录
9 C+ W. B( c! N1 b! j
# U# q$ r2 ?4 Q: S
insert插入表数据
$ y' m& d8 V# @6 R r
3 p3 R8 l7 Q( b
在此之前需要进行查看desc table_ name; 来查看表结构(有哪些字段,有无主键,主键是哪个字段,type,是否允许为空,是否有默认值)
4 V4 Y" [+ L/ @0 x7 r/ ~' N, k
8 y( h9 S! z+ [( e
使用insert into table_ name进行插入,是根据查看到的表结构来判断,可以怎么写
) N& R# a: Z3 g8 g; l
0 u0 T* b2 S( g( `( @7 G
6 M) W' I: ^* T, g; q
1 |: D# c. O% m: _8 x5 S3 N
2 q# l) ~4 r2 d, x S0 k5 b
- V0 q9 f. L# Q( C# \/ F) U! O k( c) T
; P/ |" j4 S, n2 M# M. ~$ b
& e p! X$ c6 ]# R, Q, L
2.update更新原有数据
! Q# R4 c( ]* q; n/ M( u+ x
修改、更新数据表中的数据记录
: W/ w8 ^' T, I5 P0 D+ p
- T( _- ^) O; [' T
格式:
! d8 w$ e: ^+ n2 W% W8 M6 l
update 表名 set 字段名1=字段值1[,字段名2=字段值2] [where 条件表达式];
. L+ b: `7 Z4 L3 t! r
# z9 Q/ ]. I* T# k* [8 U
例子:
! [; V8 V2 @4 \6 r& g b
update 表名 set passwd=PASSWORD('') where name='自定义';
, {/ L( Z2 _1 Z P8 h) k# q
update 表名 set name= '自定义' , passwd='' where id=3;
8 Z: R" _3 b( O
: O" f; e# r7 b8 \4 G+ f1 ~
& ?) [8 ~* m% ^+ N( }8 M
9 I3 c0 L& O0 [
4 ^( i0 a" d) u& k+ f% y2 W7 ?
( l' u+ O' @- m* ]
$ L, R/ z- m) q. S5 _2 V) f4 n3 G
3.delete: 删除不需要的数据(表内容)
( ]+ @$ _- c& }. Y. F3 N3 A: d- M. w
在数据表中删除指定的数据记录(行)
' v& e2 Q- ^" D- \) p4 x
& Q8 k& w' i- K' F7 }
格式:.
! x- Y$ f! P' z' s5 \2 z Q3 H6 f% Q
& ^- N* e: C, v9 T- r. T0 ^! j
delete from 表名 [where 条件表达式];
5 O% X0 ^! V8 @. h z H. l' c
$ Q9 x, T" N" i& I* b) _
例子:
7 |+ l& z$ v/ o' R
3 W: D1 F$ \# @) I) _9 Z
delete from 表名 where id=4;
Y5 Y4 s, @4 s" K$ _5 j0 ]
$ `9 s" _ v; D
; m: u f2 ?: O4 c* W, k0 A
四、DQL查询数据记录
8 _! T3 J- S! R# z7 A
select
) p* M( k+ a3 J2 k
7 B( k+ V8 W& b w
格式:
( }9 }1 y7 A8 u' u( v
: i' f: S( ]+ \' R5 I/ |, X
seleect 字段名1,字段名2[,...] from 表名[where 条件表达式];
# P8 p( O" K& z# h) F/ h! _7 J1 ?
! M5 }' y1 l: c* p8 V9 Q
例子:
( ~- V; i0 d' c4 o6 |% n: \
seleect * from 表名;
$ V* u+ D% \5 X2 N
seleect id, name from 表名;
; b+ \* E% L2 C2 F# e6 @
seleect id, name, score from 表名 where id=2;
/ A: l+ C9 E9 j4 K
4 @- T( q! K4 [# {, u. x
select name from 表名\G 以列表方式竖向显示
4 L/ p4 x3 Q" E- t* I) J
select * from info limit 2; 只显示头3行
7 b' f$ ` b x
select * from info limit 2,3; 显示第3行后的前3行
* m# z; R; H3 m
. s4 F- ^! F! G0 s) F9 T; M0 {
' E/ X+ w; X; `0 Y* @
- g' Z; W8 W; n7 M9 C
5 L" ^- [$ Q# X& |, a n$ X; B
9 r2 ?1 \8 [3 b4 V6 Q
8 P2 f. @7 _! `4 k8 Z1 ~, u7 k6 G
类比excel表格
( n: t! Q4 P2 _% q- Y$ K% ?, Z( H
, F) Y, k- N7 F! t, P8 _/ u
: y0 S6 l* A/ f% T3 t
* \: I( H; I5 x2 w# E9 U
四、DCL
# C$ z# n& a& l* O3 O+ c0 }
1.alter 修改表名和表结构(表结构)
/ n- p( E2 r. r
alter table 旧表名 rename 新表名;
6 K: j$ j" O r6 s0 ~
1 x3 M% W7 f5 B' ^7 `, D
扩展表结构(增加字段)
% W8 p( y- Y' b l" W1 x3 w2 ^& T
alter table 表名 add address varchar(50) default '地址不详' ;
2 b9 }5 E" `& D6 i' u" U/ b1 [# \2 i
default ' 地址不详':表示此字段设置默认值为地址不详,可与not null配合使用
$ _& E" o& w4 B8 l
alter table 表名 add address varchar(50) not null default '地址不详' ;
6 J& |) m6 w( L
! p6 h; ~- c0 W% V2 I, V; g. N
修改字段(列)名,添加唯一键(唯一性约束)
2 Y2 U9 |! D& l
alter table 表名 change 旧列名 新列名 数据类型 [unique key] ;
, r9 _! E, e `& A, i' \
unique key:唯一键(特性:唯一, 但可以为空,空值只允许出现一次)
! o8 x3 E1 V1 ^- B c8 d/ M
primary key (主键) :唯一且非空
. U3 M# h; o3 ]2 p* n
alter table 表名 change name user_ name varchar(10) unique key;
& q$ }, `$ e* c3 O# n
change可修改字段名、数据类型、约束等所有项。
" G9 g0 g8 U: R+ e9 W
9 C7 [# A- U; _
删除字段
; T5 Q/ c \3 ^6 b" G$ ^
格式:
2 x7 l% Q+ `* X! H: F
alter table 表名 drop 字段名;
8 e) e) ?% @5 N$ J" ?8 E0 q
# i5 k% c. ?! F
————————————————
: ]. `9 ~+ Y5 c; p$ Q0 e% \
版权声明:本文为CSDN博主「Drw_Dcm」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
. ^/ W: e' k. D6 N1 j2 n# \$ R- l$ k
原文链接:https://blog.csdn.net/Drw_Dcm/article/details/126770177
0 u. q& Y+ V1 ]7 i/ Y6 u$ B' S0 N
* {( M$ D) M t* H$ o
9 L, I% S) R9 d* R% N8 F
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5