数学建模社区-数学中国
标题:
MySQL数据库基本操作
[打印本页]
作者:
杨利霞
时间:
2022-9-12 18:07
标题:
MySQL数据库基本操作
MySQL数据库基本操作
k9 l6 Z8 D0 L ?8 \* z7 K9 _6 N* `
' @: A6 c( v4 N
目录
. E4 o# F0 `5 T
+ y0 z7 X( g$ i+ D& n
一、SQL语句 (mysql 数据库中的语言)
% a$ j8 } Y" F3 ]$ q8 w6 m
9 [8 G* ]/ n! Z: P$ X( e* _% Y/ K
二、DDL
. \& a0 M( s8 Q
0 c, \" y+ M( W. f
1.DDL语句
2 u! W) U6 H# ^+ E$ G9 v
, h, y0 I9 {! a, z7 t
(1)创建新的数据库
9 c0 ~: z; k# ^* _
, S5 T& J0 o5 [
(2)创建新的表
: ~, O- [) ]1 O5 d
6 `9 }4 s4 B9 \
2.删除数据库和表
) [0 C; j p8 U' V
. E, k0 L i+ v7 |- \8 j
三、DML
8 F3 K5 A0 p0 B$ j
# i7 d' |5 T0 v) `& O- i2 U
1.insert插入新数据
8 |& l& n3 h+ r: L4 M7 g
- I' ?# e! q7 O! z% c
2.update更新原有数据
! x6 v/ k; E9 ` v0 D( f
2 Q2 c( N' W7 Z, ]% W
3.delete: 删除不需要的数据(表内容)
( f/ l3 C& d8 I3 B
3 T6 r7 l' v0 l5 R% r) i
四、DQL查询数据记录
' d) [9 v- r: k6 k* Q5 h
; s4 P% U1 R) A
四、DCL
" O. N7 g. k& ^' u/ e" [( M+ O
* G) O( P* T) z' G
1.alter 修改表名和表结构(表结构)
" o4 I. w" K3 {) n% \/ y
7 H' Y6 y2 Z+ u m& B( {
一、SQL语句 (mysql 数据库中的语言)
2 v" x1 n' G" M9 }5 H2 q- z
show databases;查看数据库
/ N. C- f$ c, G$ b6 N. A
use "database_ name" ;进入数据库
0 g+ |2 L; F: j! g
show tables; 查看当前数据库中有哪些表
. {$ e r& @' E+ [ S3 \& \8 D5 O
select * from "table_ name";查询数据表中的所有内容
) _/ ~/ Q: c! f3 z
describe "table_ name"; 查看表结构
" ^# A) h1 w" |0 [1 }( O5 h/ L1 c
desc "table_ name";
" A2 N; t5 S& b
4 d- I7 U; q, L9 l
! E1 X1 ~* ~! U2 E
% B) d$ W: x" c1 y
, ~/ a) A+ V3 F5 Y+ f% A# G$ N& ]
7 w1 e: A3 E$ m, G) ~+ F
/ _ n: w; j# C$ O+ a8 a
$ }3 x v& n. _7 H! z3 M u+ T
( [6 x, n. D4 Z1 J/ B% U# N: E
. [. \1 D1 c7 l$ i- {' x9 K/ G6 d
$ b5 Y# n5 O& D2 q
% }+ ?- _) q' a' g* c: Z
V* D4 f4 q) _
' j$ [$ k+ D( F9 e
& j- N- {9 l* ^7 o3 K
类比excel表格
7 u8 V& W* J$ F) O- W
$ f8 B! Y" i7 a1 s4 r
' ^# w/ R! s! }$ E; }: S7 q P
4 U+ _; k* ]" D( K$ Z% U
( y5 C* b( C R7 A' J7 H( p' w
7 O& n% j0 d4 e z+ F
8 D4 _7 e6 D* ~, a& k
2 T/ L+ j; t! K
) z+ Q S' x4 n% h- h
, J6 B& k, W5 S3 O: H% E
类比excel表格
5 \' v9 U* X' o+ z
; u' N! g& S- [- F' ^3 M' Y
, X) J# A) ^, P& u0 B
6 s1 o$ A, S! ? W7 a; p& D
+ A) K I/ E8 x4 E. B& l0 n- p0 e
) p6 O2 e1 L6 g" |5 P6 r6 t, Y
简写
( N7 S, [3 M# g6 Q& I
! [2 x+ O, w; F; c1 q5 r
filed 字段名
0 r! U5 [5 F* I, m$ w
/ {& Q' l% v0 K% g! g2 R3 G
' @# k, ~- X0 m( [
. v% _3 m8 `- v- @' \
二、DDL
5 X8 f/ b& l* n2 y$ l" t
1.DDL语句
4 r+ E. Y- E, \5 U, o/ g4 J
用于创建数据库对象(库、表、索引等)
9 W U+ O2 e: p9 x0 S, s" p
' U# n0 [0 x9 M5 w) I
(1)创建新的数据库
+ m1 C% b& r) _" \
create database 数据库名;
z) g) A X5 B
, }# q: }6 n( k$ h+ H) V
(2)创建新的表
o7 v/ J- J, c5 i( M
create table 表名(字段1 数据类型,字段2 数据类型[, ...] [, primary key (主键名)]);
: W& m/ N$ |8 M$ O' {# f
主键一般选择能代表唯一性的字段不允许取空值(NULL) ,一个表只能有一个主键。
8 W. R: z* W8 }" B2 `( u d: t
8 s9 t; y" L! E0 y
create database 数据库名;
" r- Q" T8 S& ]( P$ w
use 数据库名;
. Z5 |5 K9 t( z; P/ k
create table 表名 (id int not null, name char(10) not null, score decimal (5,2) ,passwd char (48) defalt' ',primary key (id)) ;
7 X# I( {: p$ ~5 }% T
/ A( K% T/ u. ] t
desc 表名;
! ]1 p- n" A: A5 }* W4 X
& k" x" U$ q# Z! M9 N* a; v; D
not null 不允许为空值
, c2 i9 T9 d- \% T: [
% `5 x/ n9 ?2 ]$ L3 L
default ' ' 默认值为空
3 V, n- b, c8 N; I C) _
; } d7 G9 G2 ?( i5 D8 P) u
primary key : 主键一般选择没有重复并且不为空值的字段
6 ]: M5 B( _/ N" h
" X! i& c# @4 p/ z
例子
c& P7 t) N& x# J+ q8 S
create table 表名 (id int(10) not null primary key, name varchar(40) ,age int(3));
6 j$ x' G l6 Z, w
create table food (id int(3) , name varchar (40) ,money decimal (3,1) ,primary key (id));
, x. [$ h8 a% y9 v; g
* [3 R( U0 m% ~' b
. V' i3 H& a) T' O) [# `
0 D; s+ `2 v0 V3 B
7 \4 B" F& \' H/ v0 Z
$ |- V" t, C8 i$ N% P) V
! e& {- S# e" T. G4 D5 Z6 g
: G$ A1 z& m1 [5 h2 V" T
: Q" Y# Q( E& `
# @ [: y5 x) y' z
1 g/ Y+ i D- `3 Y" [ r. y$ l, W
2.删除数据库和表
' M. ~2 l/ d5 q/ w8 j
删除指定的数据表
, d: ^* n+ \8 z& O2 X
$ c/ p! A3 @9 h0 Z$ Y2 v0 _
drop 删除表内容(数据)和表结构
& ^3 q- ^: m! P n3 z7 u3 [5 k
/ n3 P3 p' l! s- L2 T
use 数据库名
! C! A1 g% j# C. k+ ~2 A, a; U
drop table 表名
/ \" x# g7 J3 L9 ^0 f% R$ m: ^$ q
drop table [数据库名.] 表名;
7 b# P7 _# q( y/ t% {! V( X
如不用use进入库中,则需加上数据库名
7 V0 r6 A6 S k x" n) |
删除指定的数据库
P) r! c; U7 r
drop database 数据库名;
9 d( A# N# @7 O* e5 e
, |# \, P& c H1 G7 B5 e7 g
) p+ G& E4 @$ Y% k9 E- o2 y: E
7 Q" |/ B' F6 u% h) q- m) T
) Q% N6 M5 B: K. {, q
3 R7 m) ]9 t/ z
5 {: _5 L- T+ m; Q( i/ Q) T
, \% D! v2 I! J% W G" q
" D7 ?0 Y4 \# L5 ? B. K! o; ~; D' N
% g8 ^: n! G$ O; S/ a& A
0 K; Q% Y8 `% F- ?
2 K% ^& S, P ?; f) k
1 s/ w; r5 \/ v% v7 U ~0 q- ]# |
5 J: G; s$ l- a+ B* f
9 S# E7 ]+ }6 l! c2 E& [- ?* L
( M4 k7 j# y: a$ T9 A8 F: ~: s
5 d8 V- L6 ]+ J! r u+ x. [9 ~
三、DML
/ }+ l7 ]6 w/ Q& f9 ?" x! x3 ?* I4 V
管理表中的数据记录
- c+ K* w4 Z; y2 D9 K K Z
" K% Z* C# g7 g/ H' r
insert: 插入新数据
7 Z- k, m; r2 M) ~: ~# Q
update: 更新原有数据
$ j7 ~3 O* [/ t" E
delete: 删除不需要的数据
3 I2 [) d5 y; Q
1.insert插入新数据
; q8 i1 }( m, b" g$ N
格式:
* i% w2 C+ G4 ?
& Z1 c! V/ H7 ?$ r
insert into 表名(字段1,字段2[,...]) values (字段1的值,字段2的值,...);
0 t) i% q# w% k6 u
4 x3 h. s0 n% t4 Z7 k8 w2 H; E( i
例子:
# f( M. w4 V2 n
insert into 表名 (id,name,score,passwd) values (1,'自定义',70.5,passwd('123456')) ;
( E" R% b' q$ ~8 E$ A5 ?$ u+ E& u
9 ?" ?- z2 U4 r6 C7 B1 S6 s
passwd('123456') :查询数据记录时,密码字串以加密形式显示:若不使用passwd(), 查询时以明文显示。
c7 B# _# j. j: a) z$ N
0 W; ~8 Z$ n3 i5 r/ E: t# B9 W9 M
密码复杂性验证
% A2 r% H! N, C4 l
1 M9 \& K; J! M5 K+ n8 g
insert into 表名 values(2,'自定义',90.5, 654321) ;
0 _9 |8 ]2 y4 L" E5 i+ @% L& S
select * from 表名 ; 查询表的数据记录
9 \* x! C6 w) H: x2 k
2 J0 M6 f) N) q1 {/ U$ }7 i
insert插入表数据
& |. |6 M7 j% l1 N
4 {+ ~1 F8 G# c2 _3 m: ]0 i
在此之前需要进行查看desc table_ name; 来查看表结构(有哪些字段,有无主键,主键是哪个字段,type,是否允许为空,是否有默认值)
+ p1 p# g8 c4 F' O0 t; L) H: ?) I
& G2 S0 o J P2 _3 {
使用insert into table_ name进行插入,是根据查看到的表结构来判断,可以怎么写
6 L( l! \7 L/ |6 q6 O- D
6 Q' w" j9 h' b- f4 r
) j% W2 j% R; u2 V: z, X" `
; F" ]9 L! f' u/ o7 ^9 ~4 D
% h$ N7 s \3 z, f, R0 Y2 ^( t$ W# |. E
& a# h8 O$ b: F. b. Q4 R, y( P. Y2 q
" K8 P, z3 k* O
2 e2 U% M8 S& z H' H: u3 D
2.update更新原有数据
! K' O r- w2 }% F9 Q) d* l4 V: c
修改、更新数据表中的数据记录
: i) C4 L) a8 e$ D9 S0 P' J1 f1 _& ?
! }( j( j6 r3 V- k2 N9 B$ ?) G
格式:
& \8 ^( i8 z p: b( C4 l
update 表名 set 字段名1=字段值1[,字段名2=字段值2] [where 条件表达式];
4 U) [$ |+ }( F+ d P1 y2 G6 e
8 P! I' Q6 v. \4 s/ n" w2 A7 Q; V# W
例子:
6 Y4 ]: h. J/ {3 F$ c8 F0 ~
update 表名 set passwd=PASSWORD('') where name='自定义';
/ @2 y% T1 y% ^# ?8 X
update 表名 set name= '自定义' , passwd='' where id=3;
1 a* f& ~$ H' U3 `7 K
, a* i2 L4 [4 @( y/ A7 R
* ]7 R+ Y, ]8 v7 w7 \$ t q+ y
1 X9 T$ b$ p0 y. b6 L
" O9 H0 K5 }+ J& e( l% ^
2 B% k8 X/ j6 ]! j6 B
2 \4 ]9 s( F+ G9 R, Q2 a9 s) x( q4 ~
3.delete: 删除不需要的数据(表内容)
1 l8 X) F, [- g: [3 L; f
在数据表中删除指定的数据记录(行)
7 a8 i0 B7 b A5 J2 P- N0 I
* \% {8 `3 L7 x& f, v+ A
格式:.
' a2 }- ~9 t+ c5 b
8 }% v% g8 I6 z: H
delete from 表名 [where 条件表达式];
5 G) A3 L& W" C, O2 @0 D6 K
2 \/ ~. I+ }/ t; L6 s. B* P& A
例子:
* q% Q# t9 F9 z( F, ]4 ^
8 H+ b$ z0 [6 s( |( \6 p
delete from 表名 where id=4;
) r- I) u, u1 F$ y1 u
i2 L" F6 H0 v0 ?9 X
4 a0 H7 x2 A+ V+ f2 P) J! X
四、DQL查询数据记录
& z( g( C6 ]6 p
select
. B3 m3 Y+ ]- |& d, X' p
( s: K+ |+ ^" f; @9 u) U( W* M
格式:
* M+ P( u& d' ?& C
% I3 _& o' z% @ i+ u; }
seleect 字段名1,字段名2[,...] from 表名[where 条件表达式];
# k7 a; }, U* I6 M) H( r% q$ v
\" M6 }+ I% d
例子:
. @6 h2 v7 v- q b% w
seleect * from 表名;
8 F, V* g9 y9 C0 q: `, `- {! e
seleect id, name from 表名;
& [. L4 i" m8 w6 {; Q1 r3 |% o, k) G# b
seleect id, name, score from 表名 where id=2;
, z/ [* V5 i: I4 v* `2 Z. ^
0 u" v1 A; B# @
select name from 表名\G 以列表方式竖向显示
- z4 w D$ t0 n! T
select * from info limit 2; 只显示头3行
' Z+ v, ]( C1 U$ H
select * from info limit 2,3; 显示第3行后的前3行
2 Q# }" P- I3 _# o% G
% ^! k4 ~1 f2 `2 \! ~: j. {8 y* [) n
: x3 U# @4 ^8 M8 O4 z
@& n$ V" a! x8 O! ~; v2 n
3 b7 y1 R) R9 l4 j/ x5 I
7 o2 J5 O4 p" W8 x( {
6 J+ ]; F" d# [* S
类比excel表格
$ t# @. ?; m: [. o7 S' w" d/ b
+ n9 O* V3 ~4 @
1 M' l; ~# r3 y
1 j4 Z8 H; {( k, k: ^# j! _3 \
四、DCL
+ P7 S& @% A% v4 Z7 `. I6 H
1.alter 修改表名和表结构(表结构)
7 ]6 y+ J8 V0 b% T
alter table 旧表名 rename 新表名;
& P3 E9 M) q! Y) o
: n2 u _. q: J
扩展表结构(增加字段)
" N: B/ b1 J, D1 J3 C1 s
alter table 表名 add address varchar(50) default '地址不详' ;
; ] ]% w8 N# Q/ L* M8 k5 W5 X
default ' 地址不详':表示此字段设置默认值为地址不详,可与not null配合使用
/ J; i6 E' g* E8 w
alter table 表名 add address varchar(50) not null default '地址不详' ;
& }* `# J& z! q9 b! G2 \
3 h9 ^& @9 W- K- a
修改字段(列)名,添加唯一键(唯一性约束)
0 L8 K5 B% L6 B! G0 ]2 I! e
alter table 表名 change 旧列名 新列名 数据类型 [unique key] ;
: v. N8 R3 z% f+ ?" P/ Y/ Z! a* h
unique key:唯一键(特性:唯一, 但可以为空,空值只允许出现一次)
7 {% E, Y9 X d D( p! \" j$ Y0 w% D6 N
primary key (主键) :唯一且非空
8 F5 ]+ { o- y$ V3 e
alter table 表名 change name user_ name varchar(10) unique key;
5 B9 Z, I9 H* X8 D, S
change可修改字段名、数据类型、约束等所有项。
) i: y- I6 }) u( z$ u( r6 R1 X, Y
' l$ S) j2 d {) B& ~; p- C" a; G& X
删除字段
1 e6 W: e; x7 ~! @7 G; R7 \; o, @" J" j
格式:
, |6 d G! S& g- K: s
alter table 表名 drop 字段名;
Z$ ]5 A5 U" I7 q, T" e5 g- J/ u
# b. U u$ m- M3 z- O5 L0 P
————————————————
3 x5 L) H' y% U, ^
版权声明:本文为CSDN博主「Drw_Dcm」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
/ ?! _5 r S4 Y
原文链接:https://blog.csdn.net/Drw_Dcm/article/details/126770177
4 a! G4 M4 t! z% x8 Y
0 ?3 S1 H( @1 ~* K/ X0 ~
) V# r# _4 s/ q# G/ i, Y7 ~% d
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5