数学建模社区-数学中国

标题: 这个数据库神器真是太diao了 [打印本页]

作者: 杨利霞    时间: 2021-7-14 15:21
标题: 这个数据库神器真是太diao了

1 z7 e+ L7 ?8 [. Q. c这个数据库神器真是太diao了
" C# o) G6 e) ^3 g* H2 y前言! v) S- g3 m% f" |
对于开发、测试、DBA、运维来说,数据库再熟悉不过了。/ Y6 V0 a# Q  I+ S/ I8 h: I

' R) p! [9 m# p/ R3 Z4 U) d2 p

/ E; m2 J' F$ c4 o很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:' ~5 W- R8 y; i! j4 H/ E8 l6 [; F
8 `7 U/ i: [+ [  S
- T5 H7 L% C) b

% K- _* C" F) J6 n% d% m9 d% N' N
3 H3 f8 i+ }3 r8 R, c1 n

6 I) ?/ b) P5 d

/ g! A1 C- L9 e" T- F! q用过的人基本都会吐槽,太low了,极其不好用。. w9 f( {, _: m% L; d
4 Z) `4 T, s- z2 Q5 U7 Z% @
% n3 B, l- `2 v( d. f3 t& Q
写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。
0 M5 K5 k' c: ?# v& l
; I# Y; n0 W- R  F
0 j6 Q" ]3 j. i# y1 [( ^
看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。6 r3 V6 r4 e# L

0 T8 D- L# ^$ ]. X

4 J" n) T; w: m  x  Z' e" o对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。5 x3 u9 v( ~7 r# b5 |; N$ E; \/ S

9 i' Y3 C* y& t5 p
5 L3 e# H5 {* c0 K) ^$ u
很难看出表和表之间是怎样关联的。
% D8 i3 I2 a: U* ~+ w0 K1 L1 T) b0 m  ?4 O4 Y
! q3 _+ w( ^& @' Z$ m0 I
导入导出数据就更不方便了。1 [( g& ]$ _2 C* D" B# ?' j
- {( U# N) o8 h: \, ^
) k) Z7 C) T! t6 L: X/ Q
最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。* B. z3 l# `* L( l) j5 n1 ~
BAT大佬写的刷题笔记,让我offer拿到手软
# D% {6 S' Y' T' v, Q* B/ G5 i$ B. t: N4 k7 B
9 c% q6 a, T3 @% h9 G0 i+ m

2 J: e6 D( N( @, B+ K9 g有没有一款好用的工具,让我们能更高效的操作数据呢?
+ j; I6 t+ K8 s! j4 G' C* f8 m. ?
+ [2 c4 z+ d; Q0 N# g. w- `

# h3 Z1 h$ W$ O' M1 t' O这就是今天我要推荐给大家的数据库神器:Navicat Premium。
% }8 z8 q- q+ O2 b2 }( P/ g7 a; C& V
/ X2 g4 n( @) H8 H1 Y2 H! k
) M& k9 t. O9 H4 g" D! m' A. p
下面我们一起看看Navicat Premium有哪些牛逼的功能。. Q  V8 q9 `3 R$ N! j% B* ?5 s

7 Y+ y( c0 L! A3 G9 h4 H

6 G/ _; e" o# S9 W+ N, b2 [1. 支持多种数据库
  y' D: Z6 U1 Q' L6 l$ |9 Z在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。6 t' T* k& F- u0 P0 r

$ i( K# b/ q+ w+ U% F) O

, L- W" o. n! o! V( I点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。
: |; ?' S0 M6 N& h& l
' s4 Z) M- I; S( X: _5 `* l
3 A- k" U9 H6 _4 Z: z
2. 轻松管理连接
) q1 z* }9 T, s2.1 连接数据库
' k9 g7 o) J) h3 U2 i- [7 u! \: p之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:
% V/ E* Z8 ~8 O8 P! N
9 d# a+ w9 N( P+ _1 ^
. ?3 F. K5 y7 A% @% e8 D
mysql -h127.0.0.1 -uroot -p123456;
6 j: ]" s4 R) t9 w9 c& `
5 C+ @  c/ m5 v* }/ H
$ q* ^; a* Z1 D# W1 [3 c* u
1
- X5 Y& L2 e0 c6 v2& J, |+ N6 C+ v! J% F8 L2 T9 C
每次都需要输入连接地址、用户名、密码,不觉得烦吗?
8 x4 x2 R$ R! \5 v& g. ?/ I/ O% t7 A' i/ o/ Q1 U
* |2 ?8 {) U( z, j4 h' {
恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。
0 J( V, [6 U. v3 G" P6 j/ z% S
' `9 a  J. V" L8 |$ I) y$ c/ P8 \5 p3 T3 Z
0 i) V% Y( \( u  t7 W; u8 q4 `
以后就能通过界面双击Connection Name,直接访问数据库了:nice。: m1 t7 o, D. K3 ]/ W
. U: z7 }' M6 r& y! K
' F8 ]& R& v8 b3 c5 d/ U  p
2.2 显示指定实例6 D4 a! h2 f8 n
有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?
- c9 t  ^7 N" t5 K8 k/ y7 v# l7 H$ o- o' T! M$ T, N. m% S
) Q) [$ E' k; j3 G8 a
这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。, D0 [+ \  S& f8 ~/ |. u, ?" B
$ d. \$ w1 y) W/ o& H$ z9 P% q

+ o; A6 N# q' q# B/ A这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。+ d0 D- F9 }! J# K  }: ?( _8 `

& {( `7 T9 y: c! x5 Z. K7 @

0 s4 U& {9 q' b* g0 O5 d& f" N+ K3. 方便查询表信息
6 V* J& S6 g& j6 b2 ~: t2 g以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:
8 K  `4 ^( A, {( C
1 t; Q5 @- |( @* c3 o
- v" u0 M! l. L. E
show tables;% Y4 o; @2 E0 ?

& S6 q7 @9 g# }
& o# x; N- C6 N$ E/ g; k- t
1
* P/ w3 Z, K5 ]0 q0 q  X8 q2
( m- E1 s1 c9 T8 v, S) [8 l; z6 [* a" _; i+ s: Z
  N! w- C$ J8 I1 k# w3 f
1 H3 P0 J6 F9 Y% {4 r; w6 @# [

, t4 |( Z" H' p( p6 K: L5 l不好意思,那已经是过去式了。7 U; x+ Q# S* l( \
; e* c* y2 y! ?3 \% K' K
' {" i9 W  [$ d. M5 H0 B
现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。  s6 N+ F) J5 k0 d% S2 G. p

2 {" z/ v8 @+ X* r3 a! n5 f

5 e( @9 y9 ^4 o) A# d0 ^如果想看数据,选中双击某张表就可以了:
( ]/ Z, j; i- y0 e: }! A  z/ ?+ `  A& c3 c! e( I3 F: k

0 e; o2 S, |9 i) }9 X如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。1 S2 ]) d. T5 t. j* p9 p) M
* H8 I8 l% C- R6 v4 J. u8 H& a
3 V  Z8 Y. L5 f5 M) i) B& Z
如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。& J4 k# |9 P( ?+ R) \% B

9 {1 x+ z5 t" D  \9 t9 S9 f& ]! D8 R' K
: ^1 n& m$ \6 q* i7 e
比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。
- a7 h; _) F$ H
  v- d8 n8 k9 E5 p3 v7 h! a

# p7 V' x% \: N5 b! X' f当然我们通过如下命令:' l" _& @: q, Y7 A% v
2 G0 ]& H4 ^) z8 L

. J3 m  s$ ^& Vshow create table jump_log;
) h7 n3 o7 L8 a7 ^+ m7 r' o8 I) D& m: U$ g
8 Q5 t# v2 h- t2 u: |. E
1* q% t4 S& e) V0 S5 Y/ D
2
0 l/ j! p, @. @/ g1 J9 c也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。
  M5 k0 x- b# _
" B/ O# R* N- n& C
) {6 H1 H+ {- f0 n6 s
4. 数据库实例的ddl操作
+ x& i% V; j+ e$ B: F通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。: t0 g& b/ A( Q2 P: s* W; z

, `# c1 r" G2 k
3 Q) P1 q( _) |, L4 [, c& i
右键单击某个数据库实例,就会弹出如下窗口:3 b; i# U2 L! j5 {
: V5 {/ x# P' K& i5 R; h: A/ l
# }! d* Q3 K; r. a/ W
里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。
/ ~& E3 W! y7 N, D0 O1 Q% U( }- g
- S" f. t2 s+ @$ V9 s) q  S) j
3 Q7 d) Z8 A/ w$ w3 e( z# t# [( Q
4.1 数据库的创建和修改# X7 v# J" M: F+ @6 D, w! V) ?1 t
创建和修改实例时,只需要输入以下三个字段:% n, V/ R/ _  k2 n) X
- \! d" _% O0 Q8 K

5 g6 p* g% w0 H7 m# @7 U/ M& X; ~) h4.2 mysql客户端
2 Q4 p* i7 Q( M( f" m' J2 P在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:; I, B' I# o" d
. |3 B& y1 n+ d

( s- l/ X3 M3 h4.3 执行外部脚本' Y1 J0 G& J. L( Q! o
如果选择Execute SQL File,能执行外部的sql脚本:/ N8 A/ i: i' q8 U; j

- ?3 B2 [1 {" a- K* b$ l$ _9 w# Q, d9 T

0 x, A. m7 k7 K( m3 n. P0 @6 j7 X4.4 表导出' R6 M- X" i" O; U
如果选择Dump SQL File,能导出所有表的数据:目前支持两种:) k5 V# ~# R0 ~0 ~

3 e3 P2 ?. x+ l0 i6 q) y

  v" v2 t6 b9 _% v( n" d8 i导出表结构 和 数据
, w3 x: p4 m5 T2 z; \  p# D- s
1 J  U5 N5 R) H. Q9 q

; |7 u' e  \( e$ K只导出表结构$ E7 N6 x8 A$ \( ]- q: \$ j3 V9 ~

8 R& q; @2 o0 q5 M5 Z& K% r: V

2 \& O' z$ t# S* c最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。+ M( {8 C8 p* B; v& K7 P; @: u7 O4 j
! Y* M' w+ @0 o' u
- t/ O2 E  u5 K8 l3 y1 c/ C4 i8 V+ g6 x  P
4.5 打印数据库0 e' h& d, y* `& c: a# a
如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。
8 A8 H/ w' F/ N( \; {0 h0 w# U5 g- I! p3 |! A; L! I. p

- Q9 R) ^! r' n" D1 C4.6 转换model
" n6 P; k- y" z# v7 A  f如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。+ ~1 p. K8 c9 s3 R; D

+ Y- b! O6 x  h. m$ _7 z
- C7 G# i* N: t' l. a2 Q/ e- p  c
4.7 找到数据
5 R3 {% z( S2 n# m如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?1 J. \  m" I2 C5 r0 Z: J' r

; w, f! ]; G. H1 A! o

2 D7 P+ }. Q6 @6 M; X5. 表的ddl操作* w/ R% H, a# Y4 v2 J
相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:! g2 S) ]% Z, i4 E6 f

1 x" d& I* m8 D& x9 p5 ?- C% b
0 ^/ u2 Z+ i* `1 ~3 Y' y) s+ k2 a
如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。
2 b( G0 [) C( P. Y/ C* E/ Q7 C

2 H0 X9 G! C- }/ i1 D5.1 表的设计窗口
( `8 G9 c. \+ k/ M8 o$ R6 g如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。+ {  n8 c% G7 w6 o: Q# x4 w  ]

. C' d2 G. M, v
5 f4 E) ^* V! [
它支持的字段类型有:实在太多了,列举不完。& z- C* U) T' B+ B& Z2 ]

1 ?& `9 L& c) r7 p7 P/ V  c

0 c* ^  _5 w. d, U, p6 \% W如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。8 ?* P5 i7 f  S) S2 M$ J

3 x0 r! N3 A4 S) N' j  t
% O$ [5 @6 e/ J" [3 {
如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。! P, j4 M1 M; K) F+ ]
3 }4 a: x2 E9 ]& A, D7 c- P# u

) A3 s* ?" {2 M# k4 V' YComment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。+ F0 c6 u7 L2 I7 ?' O
0 N2 G; s  |9 K* G, e. o8 @
6 j3 I; M  r7 X( ~( ~$ q/ Y
如果选择SQL Preview,也能看到该表完整的ddl语句:
' c7 a! g0 g5 P2 s7 |# P# `4 t- w' q; e$ C3 @2 v" n

1 Y/ ~. G2 t) E8 C+ z: }2 F/ Q# v* i8 t

9 ^) ~. t" l2 E4 I4 }2 y
4 E# d  R4 a5 Y: o

; y- ]0 d; ]6 _; I% Z/ c( N# m% Z5.2 表的删除% Q. j2 F" i: N1 q  K, r7 s
上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?
/ `  V) ~/ u0 c* V
; E% E; Q" H9 L( v' D( o/ f

( U) t& p5 C# f! |) q  p/ L主要是通过如下三个功能实现的:
( b7 M: \# _* Y7 j
4 B& R! m& w! z# E8 p' |

& a* N% B6 [3 fDelete Table:物理删除表
! E- }. v3 F, v- p/ c( v! g) _5 }% i: Q9 O  u: d

$ O0 s; [4 n$ H3 P* ZEmpty Table:清空表中的数据,但表任然保留" o# I% ^2 C; ~1 i/ v/ I3 E
7 d7 w3 u: }' S6 z7 j' I
' R6 d& Y3 W- K/ K2 @
Truncate Table:逻辑删除表3 B4 ~$ V4 f$ P' {

4 R4 U5 _$ h! _& j1 _& \+ G: k6 l
/ e6 r" G9 C# f6 g9 \4 S( u
5.3 表的复制6 m( c4 P) M& G# M
有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:: n3 b) X5 i. R! S' f6 W. [
& D" u) w- m6 l6 q9 k
, C6 X5 B. _. u# ?9 [. S5 W
如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:# J8 `& H. E; z$ z2 X

/ e6 n; N/ C1 y- j
$ x) a& Y) @: l1 J, Y; e
: c; }4 I# J  ]* u4 e  M- p
3 P3 m7 @; r. @; V0 t# n

' {; |; q* e/ e

5 y) |$ K2 V% H2 s+ ~, W9 r0 v里面包含的数据跟原表一样:
; L2 j7 z' G, p6 o( B2 m4 z
) G. ]0 a* w; r  B; Y# H

# o% U) H4 `7 n" G( K8 I如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:
% ]! n0 @1 r" o# [" E% G# @4 e  d+ h* k5 q: ]* ?( z: R
$ _5 [$ S+ @7 \4 E2 x1 Z8 M9 C+ x
5.4 数据导入
9 E5 m9 o+ _4 e( Y$ ^- s在实际工作当中,我们经常需要导入数据。
  @  a: F& d! r0 S9 A3 k/ J" q+ J; W9 x* `' o  J9 ^% {/ @
7 a8 R& p; U1 B% X" h: E. n
比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。4 q0 w* O% H0 J, `
& k: R& `0 D% s  j6 D

8 D9 M/ M. I0 ]/ j我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:2 k: ?: y3 i* v) C9 R

# b) l0 {3 G- f& T3 B/ R1 U
3 k$ l- J, u8 {" o1 v; l3 H, n7 g
可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:+ b4 [& E8 w0 v# d& u* \0 |9 G
  N. j9 c; l' [/ b5 x7 v% D- P0 _
) p$ T8 Z7 u* {/ g
5.5 数据导出
3 i8 M$ @& U8 a在实际工作当中,数据导出的需求偶尔也会遇到。2 @. s3 f: C1 g1 u

4 _5 J9 T$ M. {8 C

8 ~/ C0 ^3 g: h& b$ t$ M5 |: l这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:+ p6 |2 i: s1 ?) S5 ]1 H' S$ x

8 t) @+ Q8 ~1 h7 W
1 Y* C8 N- T, M. h, I
可以选择要导出的表和对应的sql文件名称。
6 U. E) c$ [: W0 w) C% d
1 K, O9 B& @* B. k# z
) p. \6 O& X& A2 a9 e
接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?
, n/ @8 n1 ^, z7 a; F
. Z% D( `8 f) X+ i$ O8 }0 ^

* f5 S9 T5 U& k3 f6. 表的查询操作) Z! K) y3 ]: g' \& B
查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。. X3 w/ R4 X0 H$ x5 A- a
9 ?1 Z& |& P# g7 I5 D9 @5 n

3 y% n7 Y4 M' Q# u2 T选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:
) y1 n, Q( {" F) Q, u
5 G: N9 \# I: p+ n2 M# q0 N' ^
# {" ~; Z% [6 h( M/ w
6.1 执行sql语句:( ~2 p2 a6 ]( D- A+ `% B
在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。9 e7 V7 T1 b% x

2 q. [9 V* V# Z  R: I

+ _8 w( C( t$ @+ V9 Y0 P2 X9 k虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。' f$ D' X" u5 S2 N9 z% u

5 y& c) B9 f5 b( B+ p3 [2 R7 J
  J3 T9 u6 d6 D8 I; }
6.2 保存sql语句:# H: K/ c4 U9 t8 K5 H
有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。' u! Z+ g2 [& }9 n9 s5 X9 n4 C
# W' T, o' w, w6 Z
( V, t2 n1 ~# v% l* }
这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。
2 X, S, N- A4 o4 L  k; D0 }/ ?  r0 n1 ]4 Q0 e! ^. d

7 f4 p- z! S) T2 q这样以后就能在Queries中非常方便得找到该sql了:
1 p$ O- U6 }/ j( |9 m- Y
' \0 v# T+ H9 L
  F& ~; z0 }" i+ f4 W3 [  g2 m7 m7 B
6.3 快速关联表* [, G( O# Y8 Y' ~2 x
我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。5 t+ \+ n  o  m3 O  w, L- M

& U, R% w+ F- y0 V; C. N4 u$ P

; p8 q) D- h3 e5 c+ s: j这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。
4 @8 I: u/ p, F2 W1 s, ~" H6 g& D$ K5 a; G( ^
) D( C* c  i) x5 E$ S- O" a' w
难道还有更高效的方式?, c) Y2 \4 T  x1 H. p$ A
6 r4 R7 O  B0 P

3 H- T4 W5 |; Z点击下图中的按钮:
+ E, I( F! w" y" w- l& }0 G% f8 I, ?& X3 E
3 u( x4 a! q+ H1 F7 ?+ V
会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。
. Z- l% f$ W' o# c/ ]7 W; T2 u5 W& \6 U& H2 c

- D' {! H3 R( k2 c6 }3 |0 o然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:
( n0 f% d9 ?" p" _8 V$ {2 m; p% D7 \7 K$ d+ ^+ `- E' K* b5 x

6 P% {2 s  h6 U; \& a+ g太牛逼了。
( h4 s8 _+ Y) ~! [; ?3 Z. l1 l: j+ b$ [; r: z3 {: {/ H% E

; C: R1 p" l" [% u! F8 I# D" ^6.4 格式化sql语句
- }3 L( s8 m# f3 j; d$ f有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:
2 b8 g2 q. U6 ~0 g3 O4 ]
/ R" B0 C9 M4 H2 D

9 P- w  D# j1 H: ?看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。6 ^2 w2 ^; \7 L& ?8 V
" r, a2 b6 p% h7 c
1 w, M' r& Y( B% Y/ x8 Y) h. P
6.5 执行计划
" X% r9 ^7 c1 L' h. Z! r有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:/ ]6 U) J. w7 s6 m" \& U4 g" ?% L
- K( ~1 i: V9 a, t1 \
" X1 ~: y; K) t4 m& H
这样执行后,就能看到执行计划了:
- U( R$ N, T4 s' k- _$ C2 p
- l! N5 k+ [: d- w
9 N: G, v( I5 P2 s7 E; @1 A; I
但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。- S9 Z8 j% x$ h$ [
4 Z& z8 d" L3 V
- ]$ f! z4 D2 T! q. u& h0 q5 P
6.6 切换展示方式3 d/ [% t* M# Y* a( W+ ~
我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。
% T( n8 S: O8 R( b' m& y* u+ ]2 G6 _( D
* {& r9 |0 t& ?- h/ c
这时可以切换到form view模式:
. o4 N7 N) `! |
6 X0 Z4 ^7 p8 S/ j

( L8 U! N: E$ n$ K; Q0 ^/ C然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。
. T& {' e) C) t( [
' w) N. u7 y7 T; i; d
9 u( x: ]. Q9 r1 y  v6 S
6.7 新增和删除数据
3 G1 l" Z: _2 [4 e) z8 W我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。$ u$ o+ {% l4 @

, q8 R% x' e6 L" P

, \( a( p  i9 B$ B6 z同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。
& ^8 F1 Q6 {9 R$ W
9 b% j: z5 K  ^4 @
& ?" \- p4 K4 z* o5 R/ A5 l9 @) W
最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
) W+ ?$ |4 k+ z! a# m4 h2 CBAT大佬写的刷题笔记,让我offer拿到手软
& m' g; D/ f7 X5 W————————————————- L# L/ ^0 W1 F6 I) `) a
版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
$ f/ U. Q7 _7 b* Y; O, u原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369' Z" B' Z; k$ H# m2 ?% h4 ?) G5 _! X! Y
2 l/ p2 z7 O/ {8 N
6 ?6 w/ n1 ]/ Q- ?/ P





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5