QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2944|回复: 0
打印 上一主题 下一主题

这个数据库神器真是太diao了

[复制链接]
字体大小: 正常 放大
杨利霞        

5273

主题

82

听众

17万

积分

  • TA的每日心情
    开心
    2021-8-11 17:59
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    网络挑战赛参赛者

    网络挑战赛参赛者

    自我介绍
    本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。

    群组: 2018美赛大象算法课程

    群组: 2018美赛护航培训课程

    群组: 2019年 数学中国站长建

    群组: 2019年数据分析师课程

    群组: 2018年大象老师国赛优

    跳转到指定楼层
    1#
    发表于 2021-7-14 15:21 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    . j" C! U- K% \8 V! E
    这个数据库神器真是太diao了
    4 r% S( Y+ R3 Y+ @9 k前言
      O- n8 O5 D; w对于开发、测试、DBA、运维来说,数据库再熟悉不过了。
    9 t  r7 A* q) M) m0 H% Y/ u% r
    3 V, r" J. M" R
    很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:
    2 _) E4 z! _3 S$ [3 D
    9 ?. m4 h( D, @8 }6 J% Q* i
    ( m; ^; Q; u; H* K0 Q2 O
    4 Q( I6 H$ H7 r- I# M2 |
    / S* Y$ \  X1 L! C) w

    ( B9 W8 X* B% ~
    & g4 z3 s+ Z* K. K
    用过的人基本都会吐槽,太low了,极其不好用。# y- \# }) E6 u+ V+ ~. V' c
    $ \3 a* _- i0 K/ y9 s8 }9 |

    ' c( a5 w* P& n: M/ d+ n写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。! V; _. i5 K* E. Y  Y; C4 H
    ! k. R& x* z6 ?. g- ?. h5 M
    9 D) s; O* A$ z) C" |) x' z: l
    看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。
    7 P) ]. y; W+ f; \9 ?5 ]: Z; Y* |$ M) v  S! m% ^

    7 j3 x) G. T0 m" {1 V- V+ ~& ^对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。
    2 Y; z( g& d* W. N
    2 ~) \& h# d1 _9 o
    ( g9 k) J3 M6 }) q8 T
    很难看出表和表之间是怎样关联的。
    % v, z% u: n+ l# \6 u
    + e8 ^# P) n, T- Q6 D

    , _5 P/ f% O! C2 m# N导入导出数据就更不方便了。
    4 ~' d' c3 d: e/ _4 l
    / _4 O# c/ Z4 G4 N3 Q+ s$ L/ B

    6 ]5 ]4 J1 n! i/ b+ ]% I. x4 [, w+ L最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    $ A! i: U* x% [5 @4 xBAT大佬写的刷题笔记,让我offer拿到手软
    8 T$ v- J% \' n6 f5 y" {$ M# P0 f& E) P; j0 a+ b# w
    3 |8 C8 ?9 B9 J  y/ X
    有没有一款好用的工具,让我们能更高效的操作数据呢?% i5 z) F5 n/ O( Y

    ; r' m+ v$ B0 Q
    ; {8 G* p, [% _7 s- h" N9 D& A& I
    这就是今天我要推荐给大家的数据库神器:Navicat Premium。9 Q9 Z" N* t* ?7 i# A  T
    , l& X) q' q9 m: o( W& l
    ! u; Q' |0 W6 L
    下面我们一起看看Navicat Premium有哪些牛逼的功能。
    / n; K) U6 K5 y5 @
    ; B, k/ A0 _. u
    * j7 |; @9 c6 K: t
    1. 支持多种数据库) d' n# t, u+ h. R; r  g; Z
    在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。# H- L; ~; X6 o% t$ ]

    ; p. S: B7 [9 h: S/ G6 A
      b4 i7 V6 Y: n1 n
    点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。2 }& m1 F  e& L" u( `  q; X. N
    9 c" ^2 G3 S5 p

    . G7 |1 f7 W2 N, c! e$ h  T8 x" X2. 轻松管理连接4 z+ U& r8 ~3 J. L8 n" @
    2.1 连接数据库
    8 G3 Z; P7 o+ B. m8 s. I之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:
    7 R6 B2 e1 `" Z) Z5 p0 Q$ g4 r& ~& ^9 t# W- Q
    - R/ ^! R( F/ ^8 \3 a
    mysql -h127.0.0.1 -uroot -p123456;% p- S. L+ Z3 ^- g

    - \  s5 D2 ]4 e5 |/ \9 Z
    7 x0 c7 v8 v0 f% F" z" I0 A
    1! J+ C. `8 q! P6 ]4 Q( J9 |8 x
    2; l" F7 l' [& |
    每次都需要输入连接地址、用户名、密码,不觉得烦吗?" D8 E: g# Y2 J: K- I% Z- m. G

    1 P+ r' n( B, S* |4 H

    + V. j( _- Q( n! M8 P恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。- W% S" i4 t% g: e& d: L
    1 ~* s/ I( I6 H

    9 y, l$ |; q9 p以后就能通过界面双击Connection Name,直接访问数据库了:nice。
    * F# _+ n8 q0 [
    8 B9 Y2 _4 x6 J- @  T
    * W- x6 m7 t% {
    2.2 显示指定实例3 ~' l% Q& m9 z( V- \0 p+ f) {8 k
    有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?
    5 _6 w' j$ B* S( ~& X! A: S1 b3 z7 h! Q" z. h5 \

    + Q# K* Z" V# p这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。
    % g" x3 E2 u4 W! g  h) S: Z" D  g  K! n4 ~; p

    ( y% F8 n: a9 I" t6 Y这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。
    & [! h: x) ]* K7 D6 d0 t" S" T* k/ U0 V

    : c5 b# C3 l  {5 d' e3. 方便查询表信息! ]/ V! e& G, _% Y+ G# A
    以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:
    ( X, ]: ~9 `. A. k( K, ?$ e- o3 _2 {+ r' T

    ) W- Y2 o" ]4 M; n  n4 Oshow tables;- ]/ l' ^* h  I0 o  F

    0 B- T' N) Z& K4 I  D

    # l- Z5 O* x% E7 m1# C* @( h" _- d0 U0 \4 r) Q/ [) N# U
    2- b& r$ `! l1 ?2 t+ f' q
    2 Q8 J$ o4 C' F; {7 k/ @

    : ?$ {  d# ^. x" J" v3 O. ^9 z5 z3 }
    & [$ H3 l) y+ ?) p4 R4 y
    不好意思,那已经是过去式了。  B: b( l, l$ A# V, ]

    , G" Y9 ?. B" C  T  ^4 u5 P

    . W  d/ G, k1 L现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。
    7 |% G1 b( z5 o- M- P1 b) h& D$ [, R; O3 X7 C7 a6 N

    9 |7 W6 D, h: d- L! b如果想看数据,选中双击某张表就可以了:
    / b  P% g- J# L3 F' X' A' g4 [9 Q2 L  ?0 m/ J, s

    # ?) h4 `) d+ \; w/ E如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。
    + r- T% {1 D: y# v% W; t+ v/ Y( [1 [; n4 A6 T5 p& e* w( \

    . H4 U# i8 K7 m$ P- E; e8 a如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。
    7 |( [2 b% p  t( ]  \! d6 r5 V7 P9 b9 s

    : R0 C/ q' b# V( l( x" b比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。5 k1 `- `7 v' k& Q! |; Q: k$ s2 {

    8 {5 N3 }0 L$ K6 L; u( S5 e% ]+ K) Q
    9 `; p! \5 p7 F- l
    当然我们通过如下命令:
    - z9 n! Q5 W+ ~/ {. z: y0 I& x5 O
    + n) u! U# i# Q4 D6 x- b) y
    show create table jump_log;
    * a3 `# b* R* o! k# J4 d6 o- E! k4 j! d2 h% ~5 D1 ]2 p

    / J7 A7 c% L& S/ y  [3 F+ L14 K3 A7 C2 Y  M! U9 A: d
    2& s5 _& i9 S/ ]5 P# J
    也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。3 m' }* v- t! A3 i

    6 Q, j+ t/ ?6 h( O
    ) X+ H+ v: T$ v$ Z. ]# K- @
    4. 数据库实例的ddl操作
    9 M, J$ B- X+ a- n+ z通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。
    & `* |% b1 A* R& ~8 v+ i9 W& N; l' L* n" o
    5 T& a7 q3 _+ U7 x+ |, [8 L
    右键单击某个数据库实例,就会弹出如下窗口:
    % t8 F6 e  u! i8 a0 H9 M
    2 p* q) C$ b( A0 c

    % H; J7 |: @0 |# V$ @  Q. E" P* ]& G0 q里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。
    1 n2 K4 y& L5 l) |. ]
    " I, p3 ~% [6 h$ m$ x' w
    9 g7 ~/ _# |1 W, t$ g5 |7 z% ~
    4.1 数据库的创建和修改
    : C! P) ]. Q+ f4 i$ ^- y2 ^创建和修改实例时,只需要输入以下三个字段:
    + J+ n2 ~" P" K  x) S" w2 b' w$ e- K, e! {- x) u
    5 L/ |* e# m! p; S
    4.2 mysql客户端
    : b- [8 V$ b9 S% u& v2 Y" [: k在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:: E( B4 ^  G) }5 Z* Q; t
    4 V7 r0 L8 ~/ [

    9 k4 A7 F/ Q" Y: y7 s. g; w4.3 执行外部脚本
    - p$ ^* S) o1 i: N8 I- @如果选择Execute SQL File,能执行外部的sql脚本:
    9 O8 F$ V( B4 F* l! f
    ) b5 {& }2 p0 k/ f# K: {6 z
    ' F( L/ p: V6 A4 t: L" y
    4.4 表导出- G. o1 V- r+ o' r( ^) f' @. V
    如果选择Dump SQL File,能导出所有表的数据:目前支持两种:
    ' h' a* A& y1 f) H
    ! ]9 ?! O" y& X% Y# e# z, W

    + k  d4 `! L5 c% E8 ?: k* Y导出表结构 和 数据9 ?- J6 g  O8 i# x; E  B4 K

    8 f; _3 j7 A. ?: X" E/ Y, d
    " T5 d4 c3 p4 l( i; @: t' t% O
    只导出表结构0 U5 K) }' r( d8 A* ~0 V1 Y+ [
    8 a- E6 n5 @6 ]! Y0 A: E
    4 Y- l1 C3 L' Q) s7 x& E% x$ r6 u! m. V
    最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。
    1 z5 e. H' L) T) M9 v1 R7 u# A, u+ _3 B. C) v& m
    * h) ]# ]) t$ t2 W) r  K2 }) h
    4.5 打印数据库
    * Q( ]3 `" U7 [4 z如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。
    ( M8 z2 @2 T* m0 I* O2 ~2 ?& K& _* Q* ]9 X( u& V0 O
    " q9 w1 E' T; N$ |( V& k" I9 ]4 ?
    4.6 转换model
    - q4 k$ ^1 |2 y+ ^9 W$ |如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。
    ( \: ~2 ]9 ?6 W. A, M3 i0 H$ G
    5 G7 j7 }8 d: L
    7 y7 A  \) R3 T
    4.7 找到数据
    . N1 n9 C9 Z+ V% b8 E+ @如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?4 h/ z1 u) J8 y: n% o

    + V. f3 ^9 g* V4 G- t* b0 S

    , ~0 ]' q* u$ h! s$ D5. 表的ddl操作* p0 K/ @5 J. B
    相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:8 Z! F. t; E/ X2 g$ |

    # S: ?: Z) @% u1 L; z+ J$ g) c
    $ r+ q% U) q; C( Y. o( [
    如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。
    $ J# k6 T7 g* ^) K( T% {8 D8 T* ]( O: K) i. g

    2 X- O) g  r) t9 `5.1 表的设计窗口
    " E, V7 [3 s' J, H8 C- b4 E& ]如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。
    8 N$ h& [" N! p3 y
    4 {" T& }- C# |) d$ r- c

    : i2 t! f) S6 O3 |# F它支持的字段类型有:实在太多了,列举不完。& H/ L, Y$ I& |3 e0 F
    # O2 a9 U- [; `: N
    ; B. A& ~) g6 y; L0 m) @
    如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。7 F0 c1 G% r# j$ B, S2 j: b, u

      f2 ?' K) X/ I7 j1 f
    ' [/ u9 v3 h9 L) O
    如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。
    : r: t  y9 P( n* ~. D+ K: D" v
    2 J" E" u3 j3 N# o- n7 ]

    % ~  c' o) X, c8 c1 ]) w( P# _Comment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。
    % \, f! j* q$ u5 V0 h3 a# V3 D/ h. f% D( _5 b2 s& I5 l& b4 o

    3 Y# N  h' W, g# N  A  I: Q% n如果选择SQL Preview,也能看到该表完整的ddl语句:$ v3 o8 F; A$ r( V4 E

    , N, x/ p5 r4 x+ I! F9 I& q

    4 O) _- }3 N1 |" c4 U  e& @% g
      l8 a# e0 b+ ~4 L6 R

    6 [% O5 v& }( R9 U- w
    $ ]- I# p8 b5 W: a4 E

    $ j( q$ W- m6 b6 v. [; ~3 Y5.2 表的删除
    8 n6 P6 M' \+ s+ Q上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?3 v; c1 n6 }# B
    ' |' i4 U' `- O8 i- {
    ) Q4 a! B/ u7 C0 ~+ ?% a1 c" A
    主要是通过如下三个功能实现的:. k. e6 l# t9 b) ~
    # p; c# S+ t2 b" T' ]& X

    1 _% p( S+ M9 uDelete Table:物理删除表9 S7 ^, v2 N, T) p0 o
    # Q( z' B( l4 O8 X! ?- X4 c
    ! _9 M$ \3 m7 [. R$ R
    Empty Table:清空表中的数据,但表任然保留
    + D1 Z5 s9 Z% g  t; B, _6 z) m
    ; @+ C" \/ ?) l7 Z* w9 o
    $ V. |: L4 F1 B7 C) D( y
    Truncate Table:逻辑删除表
    % B( \" Y, k: i$ ^/ K, S8 L3 L
    * Q7 b9 d& o. v3 ^! C9 [5 S3 ?) r0 t
    3 e7 P. x1 p$ V" a( t
    5.3 表的复制' e, H. T! M0 s. O  {9 a5 R, J$ R
    有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:
    , n5 \* T' A' l: c9 L  q) t$ ^+ p3 c4 ], A$ w0 ?
    6 R: O; y% ^/ j/ d  Z, q/ Z% Y! `
    如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:3 F( a& \. o' ^# y9 X: y
    ( [/ M# w3 L: I  S! ^! g9 z7 `6 f
    ) J" w( |. ~4 g  r6 k/ {

    3 s0 X0 q0 p3 Q  U4 R- \

    % t: R' l; p8 }/ ?5 f  V
    8 d$ Y" a1 Y7 Q

    ! z. \/ k2 s# f. w  s7 J里面包含的数据跟原表一样:0 V+ B# b* i$ B( {& n: G3 }
    ( ?+ a- k6 K+ |. l+ w9 ?
    * O0 \( I4 I" _( E/ c
    如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:, ~- @1 i' N, ~( j$ R- B5 W
    ; J: y! P6 ~8 S* L) i
    1 Y; p; K: D4 A7 J/ l' B3 X
    5.4 数据导入
    - \) l6 G$ }2 t  t- [) q# c在实际工作当中,我们经常需要导入数据。% F2 Z' ]8 U5 _  O* |) n: ^* h

    9 R' g2 y' [0 }4 f9 E2 p8 e

    4 x6 T# @5 r0 P& I2 Q: v, E比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。
    6 e. d8 U' \. x) Y5 W- R* ~# v# y" e, l3 O8 Y' y( N. C

    8 `1 R3 v( w( `3 ?# C我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:( D- K; k/ ^7 a
    ! d! h: T6 a0 c- i

    ) b& ^0 P' I4 @/ O6 r. F可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:
    ) [9 W* ~8 q9 X0 A7 G% |
    / t% `, G" k% h1 ]) A
    * B  G2 T6 z8 I3 u# Y7 g+ W
    5.5 数据导出! J9 ~* m$ X% ]1 w( n
    在实际工作当中,数据导出的需求偶尔也会遇到。* a: z% Y/ b0 A& @5 P) b
    3 i- l0 W; F6 z! _6 \
    " d  A. l+ |1 T/ U7 G  |9 m/ n
    这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:2 a% m, G  z3 m. e# B" w
    " N) \! x9 `% ]# f9 t! y

    % ]) c' W' N, L: L" h( `可以选择要导出的表和对应的sql文件名称。+ s: I3 i2 U0 A$ R; H

    % j; `: Q/ V4 X3 u
    0 j6 ^0 T- o# j' a! n" p# O
    接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?
    % ^- J* C6 q+ G/ ^9 v7 i
    7 J1 t. y* D; s+ A6 n! k4 [' V
    8 v- l7 |7 M5 `; ^+ M  k/ z+ R
    6. 表的查询操作% ?' m2 [1 v7 P2 J6 f$ d  T
    查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。
    7 h' s/ j% c4 o3 x6 y
    . S0 U' v6 Y# L2 h0 F
    # W/ S7 b- N7 v8 b0 Z
    选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:; X! ], l* J4 n3 M* I0 W
    0 L1 i) K8 P( i$ A
    % ?/ q/ O6 ^& X
    6.1 执行sql语句:
    + q* s+ V1 a) b, l3 m  ^在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。9 b2 p+ I5 e% N9 s
    ; b9 H2 P/ V! `+ i

    % F' @0 `, H+ S4 T6 l. W2 Z虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。& n( @* s+ T7 m2 O; s

    / A2 r  ?* f1 `: X  }3 w
    , j  k, t3 o+ `: @5 M% p
    6.2 保存sql语句:1 o# Q  P4 C" y6 R" p4 R, Q+ D
    有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。
    6 N- {1 O8 E/ P  g3 I9 P$ W& C( g0 |# Y% C3 D

    8 L7 M5 v/ i1 @* i+ d2 Z2 K这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。+ S+ q! ^0 z2 f; d6 T
    1 @9 H* V' \& H3 _# \+ w
    , I( P. }  R- p. z& Y; v$ x& e
    这样以后就能在Queries中非常方便得找到该sql了:, ^* v& S3 }4 [
    & n$ o6 J: L% W. V: X7 Y: S
    2 [. Q" Q1 A4 o7 v
    6.3 快速关联表4 f, G" E7 x4 J& {
    我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。4 p6 j1 Q; d& {9 Q+ }3 m4 e9 }; {
    ; K1 D3 b) E3 W4 ~

    % @8 U/ x2 X$ I3 N这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。
    7 v+ n( r$ o1 d% [+ U' L: k7 q
    / j* K, r! p7 [1 Z' `8 f
    # A, h# m" z" I: \6 M
    难道还有更高效的方式?$ ?$ W2 z. E0 A$ {) ~$ P) _

    / B) G% d' }' m' A7 C, j# y
    + Q+ X! m0 E: C& Q2 ?1 [
    点击下图中的按钮:
    9 @! R0 Y9 V7 d/ C' |
      I! r# V9 \% q# c

    4 n1 \& a7 F* D7 Z% t会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。
    $ E2 \+ H% {% S. \* k6 p0 `2 `% p. m. l4 g) I

    $ E) H& ]( Y8 s7 D然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:* b. [- {5 x: f
    $ w5 d8 R3 j' ?6 T& i. q

    8 t' i, j6 z4 _& L太牛逼了。
    7 _7 Y; _& d: L* Q' l' ]3 }) z
    # ?, }$ ?2 H% g* i- N1 D
      d  b! I' x1 P4 g) S2 W5 c
    6.4 格式化sql语句
    ; x* F1 R" D  \- x: Q有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:. I8 B# u4 ]/ ]2 S' z  Y' o
    ' W5 c" ^. [# a% G9 M! ^

    # f; W% ~/ [% x1 ^看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。3 V5 ?6 ^+ \- K
    3 }- c& l0 E1 F, z0 x
    & @. N- a* Z$ D7 v1 b" V
    6.5 执行计划% U* h# L! k' d: v& B6 n
    有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:
    8 r8 f2 k% e, S- c* j& T
    7 _* ~" `4 G$ Q: @& C
    : n/ V8 k- N9 _
    这样执行后,就能看到执行计划了:
    9 c. B/ D& h, ?$ v6 s/ [- a4 `' N. d. L, ~0 f
      g' N, u+ {. W* q
    但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。* G+ \$ F; ]: q: h: g  c! K4 I

    ' B& u/ Y* y  t9 g2 O' l

    2 ?# e. p) G$ Y! Z( u$ V' R6.6 切换展示方式
    / ?7 t/ r+ V0 ~5 t: X' i我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。/ C" t# C$ l1 U

    5 U2 Z) a0 E) {$ x: _. o

    8 S4 `3 W9 E- d" K3 B$ F这时可以切换到form view模式:5 A/ a& m+ A7 f

    , R8 E9 h& @/ X1 u! j
    + o4 \7 \  d# o/ K) C
    然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。6 B/ b/ }, ^- d5 o6 _) Y

    6 n3 i2 ^  o1 t  H3 V

    4 a, [' O: Z- c- m$ k6.7 新增和删除数据
    5 q: f: {# R+ n7 l4 O# H/ k我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。$ F1 Q. F( X& k2 o/ u

    - i+ y0 P% v6 C0 N
    : p' W/ b, \. b, Q7 N# Q  K# P: r
    同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。
    / e* }- T" U  H1 U7 I8 c0 |! ?4 K9 q$ Z

    . J0 y9 s6 l" v5 B最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    4 h6 G: }' z1 W5 M) W2 SBAT大佬写的刷题笔记,让我offer拿到手软
    ! ~; Z# x5 I2 Q% D+ F; t- v————————————————6 \" b2 E5 I2 K2 w4 d
    版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    9 X: ~# }5 ^7 p; U5 x原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369
    3 J% Q& V* u  z' n3 i, ]9 ~6 o3 v' i/ y
    * ]1 i" F4 d" d
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-9-27 20:40 , Processed in 2.426255 second(s), 50 queries .

    回顶部