QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2855|回复: 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

    , F, J1 d- X7 G" t4 U7 _+ ~- u& }这个数据库神器真是太diao了1 N8 K' f$ v5 J3 o
    前言
    4 R  u/ v; T4 R' W% w对于开发、测试、DBA、运维来说,数据库再熟悉不过了。  P& S. w) h; s( {' B" w2 y
    3 ^% J& O) j$ W1 T) l
    : W; `7 A. x) s% f, M
    很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:" n' Q6 v. N8 t' k+ \/ i
    9 D6 P) D/ g: o4 u

    * E5 |  {' L; i1 ]* ]% O) [1 Y$ f
    0 }" k4 l4 B! e: ], M; c# b
    0 @0 h4 q! h" Z4 I2 U+ N& D: ]$ m9 ?
    : }  S. [/ ]/ p
    用过的人基本都会吐槽,太low了,极其不好用。7 h  I) b; g' v5 r
    - L9 W5 r* e/ U. J- O  ~
    5 A1 Y  q/ j% h3 i  _
    写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。# V# C! }6 b3 t7 z' g

    1 ~* ^) @5 o  C  x$ r4 L# [# M8 M

    & ~4 T' |3 i. R: C/ ?& A看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。
    : P' O* y7 U4 g' V" H5 A0 U$ J1 c
    1 H: P* l& u* R7 c. n+ e

    ' D% |7 q8 Y+ w( D对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。
    ' E9 {4 R$ D0 w* Q
    ; f7 {8 ^6 ~: r

    5 [+ O2 X8 h! U  L1 b$ A/ `很难看出表和表之间是怎样关联的。" q7 I4 k0 D5 l) |5 y  o  o* R  f. V

    # P7 ]0 H5 ^( ~/ @5 |
    / ~" ]" L" a& c, W$ ~- G
    导入导出数据就更不方便了。0 S0 {8 E3 Q' d+ A  W
    - n+ |2 d( I: z% l

    ; U* A( V# B. R! v3 k& p, ?最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。! N5 g; ~: c* }* W/ e: i
    BAT大佬写的刷题笔记,让我offer拿到手软
    + C/ L( P6 ]5 k
    * K+ D8 {! E2 y( p. V/ u7 m) a
    + s, J- m$ B0 z& K5 h# i$ D1 l
    有没有一款好用的工具,让我们能更高效的操作数据呢?( j! A$ v+ K5 q

    0 n, o" x. |; A4 y; ]
    % E# W- }! l/ p4 c
    这就是今天我要推荐给大家的数据库神器:Navicat Premium。; u: W; Q% ?3 I' H/ H

    # H1 T( n+ h! B, d3 K5 H- A
    ; p7 v! D: q% Y' E& n( t
    下面我们一起看看Navicat Premium有哪些牛逼的功能。+ h; x! h1 y; k

    # [9 f, O) Z7 w. V$ {9 [

    + c! B5 F( |5 ^& A1. 支持多种数据库
    2 g# T5 g0 c6 l+ e. M0 e" I在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。9 w5 W5 y. Z5 N0 k' f& P

    5 y9 c$ y9 `$ a* Z
    9 }" D+ q8 P, w  t" A7 J' o
    点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。
    + a# L. A5 g, Q2 i% J' f% T- X2 f+ N0 y9 Z2 Y" |( d

    , j, I8 L! @7 J- }2. 轻松管理连接9 _. ^& q! w( w
    2.1 连接数据库' ?! X& W( d& H  G: C
    之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:
    . e) ~9 ?: L4 {2 ^+ @" @9 ?1 M% m3 y
    * C) \5 s& p. A% |' E! t

    : ~, D, p. l" q2 emysql -h127.0.0.1 -uroot -p123456;
    , ?" W# D: a# z$ i
    : a' @1 o  h% _. d
      m1 {- {* ^; P9 x# l
    10 r/ F6 A( ~/ @% Y: d
    21 L& S2 s& @' }! z+ D8 E2 x% @& Y: c
    每次都需要输入连接地址、用户名、密码,不觉得烦吗?
    ( G3 j' U2 T2 b. ^  ^5 h9 t# j0 R/ w  I
    ' W% l0 I6 G# I  a* q
    恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。
    : _8 c' ^) q% x: T, ?6 e: d& O
    ( d3 c6 k% e$ E+ T  {5 S2 Z
    " N. r, `  c1 Q1 D6 n
    以后就能通过界面双击Connection Name,直接访问数据库了:nice。
    3 [+ o) b0 J" E7 w1 d: M+ Q4 Q
    & b# D# ~( c) S0 b
    & M) S  R4 R; k5 F" ]* G9 _; J
    2.2 显示指定实例* `- m4 y. ?+ ~4 @- }9 J
    有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?
    6 [' F$ \  N# e+ U' `
    : M; l( z  E6 R: w# y
    & s% h+ l) e- f! N, t
    这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。2 Q1 [+ P" ]5 C

    ' o( A5 W, ^* a3 ?( \' {

    1 ~5 Z# X" Z  m4 I; R3 [3 i这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。
    - @0 a# o7 B! g7 [; {. Y* [6 C: Z+ J0 N6 @
    ; G; x; h! V& U2 o
    3. 方便查询表信息
    $ _8 w- U* x" x* @以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:
    3 z9 h7 b5 u" i& f" U& _- ]
    ( V& e+ x) c/ b& c' z

    : [7 `5 Y/ L- Z( u& B/ P' S% Rshow tables;2 k; G& E( c6 P- l( p# P7 {
    5 R, O2 E. V1 J) x+ ]& Z9 e

    * T' v5 S( O  R, d1- ~; P3 l! U: w5 T0 z
    2
    - A9 C- L7 u0 a" T5 d- o2 ~9 d( y/ S/ y/ n9 Z: P

    " I# Z% n7 {& S& e: B% }0 r2 P: T; d. I. p
    ! S/ v+ \% y8 f/ c; g
    不好意思,那已经是过去式了。
    : u' q7 V9 m% ]/ i. i; `  l
    & f7 I1 D8 J8 C# ~8 Q) \9 s

    1 M9 O# @# \7 R) o现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。
    ) |0 ^. ?, U& a7 z# p! s
    2 ~. Y6 ^  `6 o# V. u6 e8 z7 R

    ) }3 q7 |: M2 _2 u! V( B如果想看数据,选中双击某张表就可以了:
    3 @' {& g! A  u7 h: Z% i) t9 h1 i
    9 A( i9 b- l* m9 G) C0 ]8 y" ~
    - [3 G4 p% W$ `% c5 v1 Q( m2 R8 C
    如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。
    ) m6 D5 M  u* }3 A+ J1 J% G' \9 l- l, s

    7 X  s( q! o+ n如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。7 _# a1 M' I# z* I) G/ h
      o. T: n  _: }* f
      K* a$ o2 D( v- f6 W: L, i
    比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。( ^( g. a3 W4 l! j
    , m, M& k5 m3 y
    3 l0 b; k5 A' v' N5 L% f
    当然我们通过如下命令:
    7 K8 I" T2 O4 D  |' i5 l+ c) Z0 o. g& W1 ]
    8 j' ~- ^( q3 B
    show create table jump_log;
    - L+ W3 |! T; y4 @2 j  [/ ^# X' @* p- O, E& F: N
    3 x3 Q! s2 N. M1 H* {: f
    10 T3 f5 y7 U# p( x, h6 |
    29 ?, K/ s- E. k" C! n
    也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。
    * g. E3 \  L( ]) M+ v9 a. w: T+ ?
    ) l1 m1 n' E& K
    4. 数据库实例的ddl操作
    ! u# t9 o- ]0 c  U通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。6 x4 ~' N3 H  ]( s
    - G. S- q4 Q9 G: D) @' y

    $ Q! \' `5 V+ b, S6 ]' m右键单击某个数据库实例,就会弹出如下窗口:0 W+ {, r& F' [$ N
      o/ D' w) w$ [

    & Q$ F$ |8 _  n# R* }里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。
    8 F6 L0 }4 V2 T; t9 j9 {1 n' j- t% y; l7 {  D$ m8 [
    : E5 |) a. V* J* y
    4.1 数据库的创建和修改, X# N4 M: p& R1 l
    创建和修改实例时,只需要输入以下三个字段:) }* D# Y4 A( l
    6 r1 E+ N& `7 A) u

    , M! i9 W; \/ K4.2 mysql客户端! e( @3 C! `! K9 p7 f# j
    在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:- x; C; N/ J! u6 l) z
    ! p9 z6 [1 ]& P6 m
    2 p: y& P6 s" ?$ H
    4.3 执行外部脚本
    0 e0 q! a* C2 U6 [; O; c如果选择Execute SQL File,能执行外部的sql脚本:2 E8 O3 z2 |# X& F

    ( w% t* K5 j( ~
    3 f& C' A8 U7 \2 k, x
    4.4 表导出4 Q4 H5 @$ `: U4 |/ Q5 S- u: u
    如果选择Dump SQL File,能导出所有表的数据:目前支持两种:
      w6 `3 r5 T% P% _
    2 r* d; F) [. [: X7 B/ y7 u$ N

    6 J. U7 c  T( F% P导出表结构 和 数据9 v4 U% Y# s, M7 L

    # B) Q  r" Y: }' x! A! r

    % s- g" b5 K  t只导出表结构& j& i1 Y, K4 W5 P% [% n

    $ _% l6 Y7 v) z! g
    6 r: D5 n$ M5 V) R$ ~% Z
    最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。
    + U% [: Q  I; e3 c' r) ~: v, C. m) n# k& Y% f" r8 G

    , r5 V* x, l( N7 h. K, m4.5 打印数据库
    " I. F: \( e" |! k  g' }如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。
    7 l7 s! h) i1 {+ j( ]9 a
    ' \$ V! p. o0 b( f) U6 I
    1 p. Y  e9 `# @: f) @& R+ m0 a; ]
    4.6 转换model2 H8 P8 L  ^" ?. G, Y5 v
    如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。* \# U; e0 M0 E% A
    0 I% i# O: v. ]( n2 Q

    + ]) g7 B0 e& r: U7 @# {$ b9 h4.7 找到数据
    ; n6 L% N# {0 S6 k' t/ \+ x如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?& M, ^$ B' u( v9 X+ `

    4 w' Z4 B/ w( ]5 @8 i, T- ^7 B

    ; u& U7 x: G5 a0 P$ k/ j8 s* e5. 表的ddl操作
    2 x  |; G* `6 `" f8 b相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:: e: Z0 g$ o6 F) K# I

      a- Y+ S- \/ M' N8 {0 e

    : z4 t* z9 m" s6 {如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。
    8 ]7 M2 Z6 N, s+ j& t; p
      E8 x7 R& m( J
    2 H3 L* L* m4 N
    5.1 表的设计窗口
    4 d5 [3 |  m7 J6 p3 ?" U如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。
    8 L# f5 K4 D8 N" l6 G; {  A- k# O$ m2 H0 V

    * a* z6 n) m% q* w它支持的字段类型有:实在太多了,列举不完。
    7 _8 k  W$ ]$ z4 N+ M( c9 V& O, R/ j* {8 c8 \- h- K: D

    0 `) y3 l  d) H如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。3 T' S1 Y4 ?! B7 ?2 l

    9 i1 \8 ^3 i& ^& K6 i  u/ |
    5 `% _7 @& m6 T% \; b# o+ [
    如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。
    ( p% r; w! @1 M, l* }4 Q4 Q  m: Y" U1 C* G+ F/ r
    # q3 ~' G: t$ g% L5 S4 l* o: e7 w
    Comment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。. y, t, s7 a5 H# I) P: g- p
    0 X, r$ f" J4 |/ R7 L
    : r: w2 @- i3 R7 y/ i
    如果选择SQL Preview,也能看到该表完整的ddl语句:
      @3 e( |9 p+ a/ v! b
    , E2 ?$ P2 e1 |: K, P9 S

    ) f" `0 P) y) [. h4 p/ h' F+ `0 S, V' x6 A" r" j

    9 |' y- Y7 D# }) ?' ]& B) D( U* ]3 d( `4 e% h, k4 Q1 g% ^
    + c- m- O) i' m, Z
    5.2 表的删除3 k& d) V6 x+ j0 w9 U
    上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?& z" D  B# ]3 z3 t9 l; f: i7 Y

    3 N3 ^  u+ c! ?' s
      w6 n9 D6 P5 ]) q' y) V- ]
    主要是通过如下三个功能实现的:, a; |) x+ z& v8 G$ ~  P1 X1 A6 P5 F/ s
    8 R2 _  {! D9 k' n! L1 O. I8 B
    & X* i2 z  |9 c0 O
    Delete Table:物理删除表+ S+ W1 I6 i& h! y; ]

    4 }  ~- g5 z1 Y6 \
      Y& {! ?: s, W3 v% k6 y
    Empty Table:清空表中的数据,但表任然保留
    # C2 }9 c' O/ q/ K7 x1 O/ O! x* q% G" d8 m. F0 @# Q* n
    0 i9 ]1 r) q6 }9 h. M1 \/ Y4 _4 s# B
    Truncate Table:逻辑删除表5 T7 R7 U; j& ~2 Q/ O/ E( Y- K5 b

    8 B( ?$ b& ]( `" e) ]

    ' i/ ?$ y+ t- p9 U5.3 表的复制7 k' {7 }8 d6 m* r" C
    有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:6 U9 }) {, {; A

    ' F8 e, g7 h2 \

    1 t' \) T& V" [8 H, r4 z1 H如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:) E! l* V3 T" w* A; ~4 p) q' w
      u, ?8 ?4 x& T  ?
    & [% z& L. a) R# r

    7 k% |4 c. D6 @$ n  s5 a
    2 e! X9 {7 E, @! M& \( H( e: K
    $ @, h# J/ e& X& a

    $ M( j$ l! R3 T& u里面包含的数据跟原表一样:
    ) V  a1 k% l6 f( e, ^- i( A
    ; B+ P; L' H' }1 H0 h

    ' ^7 |( d0 F0 L如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:
      ?  H. n; z# }  r* T- E1 |& `5 E2 w
    4 W8 V" q! e8 P" G

    , O: a9 b- O  d, P5.4 数据导入
    6 G) e! k4 S& o$ c$ Z7 i在实际工作当中,我们经常需要导入数据。  J! e0 m. P/ W$ ], B% W+ y

    + c: N' v: a. p& B# `8 Q
    ( l/ e5 E6 \( K0 ?+ Z
    比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。
    ) ~# h5 {9 y1 Z" P9 A. [% `# S. J# J* a3 H, ?( h
    ; u2 b7 x- [+ k
    我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:
    # P" i+ ~. k8 K0 W& V4 a; T2 ~$ }" B" I

    5 q* A8 W! P4 T) r6 Q, i4 ^, r: i5 E可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:$ G5 b2 E, K. J. m1 E$ J
    , O1 C( }" ^- J. ]% B( d( @- V

    2 r+ L) Z6 y/ V* U) X1 r, [5.5 数据导出
    3 e! }( U3 Y' n在实际工作当中,数据导出的需求偶尔也会遇到。
    " V, c3 j  E3 a0 \$ u, N5 M2 f6 L- D; N9 u7 R1 x: W1 C! C% j

    # F7 M. O+ w/ s1 Q- l1 O# R这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:
    " |8 F7 w8 T3 x! I% Z
    * c( N4 I; y- ~3 g* L$ _

    6 o$ }0 b2 x6 M! h可以选择要导出的表和对应的sql文件名称。
    . X0 N$ M5 p/ M
    ; f8 S: ]! c2 }2 o3 r# [2 Q5 Z# j
    8 g7 e) s* h# d& d* l5 C- g' g
    接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?3 C4 s: B; ~' ^5 z% Z8 ]
    % y* F% j; d! j! g, P
    2 N4 U! Z: W4 `5 _
    6. 表的查询操作) P# Y* Q& Q' p. {
    查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。/ Q" j$ Y8 k# A" x4 _* A

    ; ^* k3 Q! m+ d# c" }
    , J; t- b# x0 T. R% K" {: v7 p4 W# b4 n
    选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:4 s+ B- _8 a- |9 B% K+ o

    ) V5 |8 g9 S; g3 t. `) L  {

    ) O" s4 }& p6 d6.1 执行sql语句:
      f# Y" v6 b7 T4 n在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。- Q3 P: q9 P8 x
    + e5 P* L7 f2 C. d. K

    5 p6 }$ `+ m! e7 j( d虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。# q7 o: D: [( a
    2 X7 ]- U' f; y* f  `8 |! G

    2 t4 _6 z  F3 t) U$ C. q6.2 保存sql语句:! k* t" s' a6 K! A5 i
    有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。$ g; {9 {5 Z. k) h0 ~/ f
    7 c, v1 `+ Q0 Z. a( U9 G3 Q" o7 p
    / p' R  {7 L. [
    这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。, B+ Y% C5 o, v) {; p  |
    $ c1 ]6 s/ @; R8 k' C/ u! s( y

      v5 c  l0 R* v4 |这样以后就能在Queries中非常方便得找到该sql了:, v! [2 @7 F8 T! m* \

    2 S' L5 Z% F" \& O  @

    % f1 i; [! [/ l6 Q: I/ Q$ \0 j6.3 快速关联表* I) ^% T1 }: p7 E$ W% s
    我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。+ e8 r0 R/ {3 M3 S

    2 J  o4 B% {# L7 d7 H
    ( S& p9 Y$ D% e* X
    这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。: \# Z0 D" q- b( K+ ^/ E) H

    ; |% E) p) j4 b: E5 U
    + m3 {; Y. Y" n
    难道还有更高效的方式?6 X" \4 O+ I, f1 C8 S# f7 f

    8 Q9 u# r6 v* s4 ]- r! U

    9 [% j; W; s- v4 [8 |1 `  P- e点击下图中的按钮:
      N4 A: n) F5 n# t5 D
    4 _8 m9 {/ V* f/ E( e0 O
    ; S8 p+ J6 b  z( W1 K
    会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。( T8 Q! p8 D; `  a( B' d( p
    : L4 f+ S9 [$ ^5 e- x/ \
    + x& ]( v1 }; Q, [* I
    然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:
    % x; X2 a/ g; N2 a% z- h
    3 @7 I5 U  \/ X( I$ E9 H0 V

    : u0 [, ~5 Q, y太牛逼了。
    3 B2 L/ r  V$ N- }, [; t# `! l
    & H! s8 F4 _* q8 O
    6 {4 B( s! q1 V* G) z
    6.4 格式化sql语句
    + X2 N" v6 j" c' G. a有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:+ S* P6 {7 V/ ?
    * B: P7 z6 a! `) O4 a& Q! o8 A
    7 S! j) g  e, s! R" |
    看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。! k- w6 w& [- r9 a5 [

    & L$ q0 X- Y8 p
    - W2 a. X) D/ ?( x
    6.5 执行计划
    % p* g" t6 a9 B# v" Y. q5 I) h, W有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:
    4 F2 D) V* r) S' O+ k# B1 G0 x/ [$ @& o; d; P1 ~+ y0 H
    6 x" ^' f) O' n9 U$ H
    这样执行后,就能看到执行计划了:$ l/ X- N" j$ D6 A

    : y; h) a; i/ ?2 i8 a, W

    - ]: M0 [8 v$ _) S5 s但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。
      {6 m5 s9 M( W$ R5 d! U- c0 F# `1 w+ h9 O

    # E; f8 g- M& B7 O6.6 切换展示方式- o) N0 q- t& S3 v' X8 m" W: z
    我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。9 ]& h6 r' x0 F# s+ z
    0 {; F# v- m! S8 v$ d6 }

    , `, z, |4 Q/ Q% N) u' p8 ]6 B这时可以切换到form view模式:# a* m0 \2 ?8 o# E5 j' T

    " o7 B" X) v" [5 _( f
    2 s7 M. D; i# u. h. f2 ~5 D( n4 D- P
    然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。
    * W. _! G" J% e+ O) J* [3 ~) q) [
    8 Q. S( [" G* ?' T& ~% T) O

    4 t% q, O5 g8 }! h; B- x  G! r1 }6.7 新增和删除数据5 G8 W: t- ^( l& Y5 Y
    我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。" f) W, u0 c) W- K/ M

    ' I# D4 ^. D6 k) g! R8 g2 b
      ]/ Z+ k5 J- g' I2 T
    同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。
    4 S: i  f; J  i! b; D' F+ q: {6 x" T% ^8 L6 ~4 k

    6 L9 }( ?& y. x( f. h最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    # A  B$ o% S$ o, @* p6 ~BAT大佬写的刷题笔记,让我offer拿到手软% h5 y. h  \, K$ a' h
    ————————————————
    0 s  R/ {! Y% ?+ T版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。" |; X9 r: v) Z9 ^
    原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369
    - c# `; \. h; f( p1 w8 i3 n0 e0 G% S" S! j1 W; x5 G
    2 \% q9 j( f1 N  T
    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-4-15 15:01 , Processed in 0.618902 second(s), 50 queries .

    回顶部