QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2847|回复: 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
    ' @) V& |% F& E1 \
    这个数据库神器真是太diao了
    / ~; y! q/ t# P- u前言
    " a8 `# j, Z  J  Y) B( C) @; t对于开发、测试、DBA、运维来说,数据库再熟悉不过了。
    & ~2 u9 b& m. y- _5 A: b: m8 K# g" ?2 t; e! h" n5 P
    * w& q$ D( T) V3 e
    很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:$ g, Y( \9 n' q9 u" I
    + x6 h( H7 k- Z1 h( I* V1 L) r5 ]6 w

    # J6 ?1 x: K1 Z" _# g* s1 H5 M2 O; T; ^  t# k1 W  J2 {+ _% z: @

    9 a) ]6 ?- {1 I- u. R
    * s2 L2 K3 C4 S; d% X( |
    4 O/ b. V: Z2 X! d+ C" [
    用过的人基本都会吐槽,太low了,极其不好用。7 [8 a; a% a( Q( ^; w% T
    1 M* t3 x8 v2 x

    7 U% \6 T4 z6 m$ C; m5 x' {% q写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。9 m" _2 `# }* }
    & l2 D# {" P7 ~$ ~

    ' w  O( E" V* L7 v. v. v看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。5 Z0 R$ M, o- v: v
    6 _1 [$ P; G8 J& _
    , t* T* \% i( D( m3 b  X
    对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。$ Y. ]+ J+ o0 q* s$ [+ Q- U

    + E! l8 s9 a1 ^$ }% b

    0 ^- z, C3 O3 c5 @0 _很难看出表和表之间是怎样关联的。
    " K# I0 H7 g2 g5 q
    7 ]5 \) z3 P; p4 M" k8 z$ t* q

    0 g7 c& y- m. @% S5 W导入导出数据就更不方便了。2 n4 ^+ Z* }% O

      c( X% n0 v5 h$ k! B/ M
      p0 j9 u! K6 b& v, r
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。0 @) \, n% [  f- W; w' n
    BAT大佬写的刷题笔记,让我offer拿到手软; E1 k) A) {# W; A/ C( w. C8 B0 o

    + ~6 X! Z4 `9 d, F

    / |* g' x1 C- H- r0 _& Z* }有没有一款好用的工具,让我们能更高效的操作数据呢?
    $ z! {* i$ q3 H
    / z% ~# Y# }& m* Z! ~

    0 ]6 J6 M$ ]+ e/ r6 g1 P这就是今天我要推荐给大家的数据库神器:Navicat Premium。
    / P# T# M. R' ]" {9 H& I7 G0 k2 [0 L' }' p, j+ m

    ! [- p2 j9 ~" ~5 e: d# k* O: A下面我们一起看看Navicat Premium有哪些牛逼的功能。, p9 o4 L0 L: p
    0 H( F5 U! U# h6 v$ ]- {, h
      V9 J5 Y  c- H1 O, y4 ~  l3 o9 t
    1. 支持多种数据库
    ; R5 ?; q3 U* G1 G8 @4 K; m在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。
    # ?) S. b; ?5 H! L( z1 Y& j* v
    # d. h$ n5 ^6 k$ F
    / J3 X3 ~: e$ T- z  F" M: h
    点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。
    % s0 C3 b0 D9 |$ V1 _& `+ h4 U8 P" C. G6 a1 Q0 E3 X

    , b3 M) ^! K  @8 n+ m5 \2. 轻松管理连接& \) T. ?( J5 v0 h
    2.1 连接数据库
    . P( C; i# o+ f9 b  n- Q之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:
    + ]6 h5 `5 p- L
    3 J7 l9 C& ]- X2 {- e" ]
    ' R  f: l  p- ~& J/ G
    mysql -h127.0.0.1 -uroot -p123456;+ |: C, A& y6 e6 m+ _

    6 l/ ~) ]( S, [5 X* \
    : v* @3 a3 D4 H3 f. |
    1
    1 t/ i0 g4 J) M# o3 M2
    $ o( I) {2 Z+ Z4 G! `5 D每次都需要输入连接地址、用户名、密码,不觉得烦吗?
    + @. e+ R7 ?  `  ~  I
    , K' [' Z7 _& |

    - Z4 Z5 _$ v/ @) V- y# ?! p4 ]恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。0 t, f- V) E1 H1 O# k, @1 G

    ; I6 [$ T  f- L& U

    + [' j" i8 G2 J5 [9 s7 v以后就能通过界面双击Connection Name,直接访问数据库了:nice。
    6 @- |: V! i! C8 I; ~% z' S; ~, v
    7 ?! k8 A  a9 a+ w3 ]) O/ L# i  D; I! _" V
    2.2 显示指定实例) S) C8 s! g; e8 O6 _$ o
    有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?+ a: N  R6 f: q" |
    2 @* t! w" p- s, A2 Q1 A$ H
    6 I1 Y) ~- E. l
    这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。
    9 m6 [8 Z' P; W5 ~( ?: U8 g$ K# Q9 z5 a0 g, x
    + l) d: ^; `* v7 S- ^
    这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。
    $ y% U' @/ P1 @' r* `, Y& g7 `7 a% y
    ! W* G8 x3 ]+ y! q& t# S
    3. 方便查询表信息+ T: y" ~- l" `
    以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:, U% p/ D* A: k3 k" s

    2 o5 l2 P- K" q; M
    $ [7 A( ]2 |% f& u
    show tables;
    ; K9 P# T" a& b( ?; B0 n
    " L' R& K2 h9 D/ Z. p& _
    7 ^: Z( Z8 s5 b4 A+ j# Q
    1
      M/ g( N* |& k+ M0 V: m& W2
    * l9 D' f; C5 G4 C( O
    & I  H0 `% c& t5 T4 P# {1 S* ^4 Q3 m

    * H1 I7 G8 ?: m6 k
    ) Q$ x# S: K* @; c; l1 ~! p
    + P  S3 y9 i0 g) L
    不好意思,那已经是过去式了。
    1 t1 v2 {& {/ z+ g" _4 E
    & A. M! p# M8 D# V5 U  q
    2 l; B& ?( ~* F: ?9 j6 h: ~
    现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。; a  `& ^: n1 }# y3 _

    1 t2 I7 P1 v2 x3 \' C( W

    6 T8 s; D% L  ?# W: s如果想看数据,选中双击某张表就可以了:
    . ]1 i! t  M$ s: ^& }$ @; w0 E$ A4 V/ w, ?4 ]
    " y& K9 W' r, O- o  r2 g# q
    如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。
    2 ~+ K& y5 \+ J0 Z! @
    % g( L3 a2 o! n) g1 g, ^

    1 a0 H0 v+ }8 U% i. T如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。
    7 x/ K1 k* E( N* p7 p: m4 |+ T& A. `8 p/ O2 Y
    / Z: b. u' U" Z9 D+ h, p
    比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。6 A9 S! x' e- O! ]7 \9 o

    . K) {/ n9 Y& s# U
    2 J$ i; }8 B2 A" \' o
    当然我们通过如下命令:' o1 ]& `) X8 K! E, c) S

    8 i  c- D# j, b# s( A' {  k

    ' I, L+ q$ [2 L% i0 K  ~) ]show create table jump_log;
    1 i" t7 G- s; v/ b4 R
    : q1 p8 t# U, x9 y
    % _# N+ N4 `# m6 Z1 C% S1 e7 @* d
    16 j7 K/ J+ U5 Y/ X
    2
    , w; d. x6 s* p$ L7 L. j2 B也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。
    % Q3 M5 b7 m8 `7 K4 D
    % |" X5 R7 E3 F0 w- g1 r* h' W+ ?

    ( V2 d  a7 b! B4. 数据库实例的ddl操作' ?: R, o, y3 O: x" k: m  f
    通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。& H. s$ a8 A+ W$ }

    - K. y$ [5 ~3 ?# |. d  j

    - j' ~# h0 X$ I( o  v* I4 H' f: H右键单击某个数据库实例,就会弹出如下窗口:
    " q- o) [1 Y  \% F8 f. \% z* U! ?6 Y8 R: p6 E3 r' O

    / z! O* I/ f9 U9 c) r+ X  s里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。
    / L' N' r8 V7 l4 f$ u- b$ `  T& c4 K  j. N$ X: f

    ' [7 C4 j/ ~' ^) j! Z4.1 数据库的创建和修改$ k; }7 {7 j+ l! e
    创建和修改实例时,只需要输入以下三个字段:: j, Y1 o# U; m0 f+ H3 p

    5 W1 }2 E$ N# H- M* ?! ~& o0 C
    1 @& O' m! |; t& Q$ J, Z
    4.2 mysql客户端" \; I& ?: Z* ^- {0 N) i
    在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:
    & H: h) ?0 r9 J2 D0 ?: v3 U) R
    5 V0 w2 H: ~$ f, Q
    ) f! G/ I' c3 r; \: [9 ]) d
    4.3 执行外部脚本8 v! K- l; V0 V0 H9 R  Z
    如果选择Execute SQL File,能执行外部的sql脚本:4 Y9 [7 W/ @, I! J

    . X$ }0 D8 u( e( A/ g

    $ m2 Y) b  m! I9 o; j. i) ^4.4 表导出2 P- Q: Y2 a; \! l5 l, c% u
    如果选择Dump SQL File,能导出所有表的数据:目前支持两种:4 @& A& H9 G2 t9 K- T* V

    / J8 g- P! W9 R( D8 Z
    - v1 F6 }7 {: A) v7 @% r, Q
    导出表结构 和 数据
    1 \( g8 _3 H2 v! X) u! u$ h( l3 U1 v
    + n( Q9 @0 M5 }; Q( v1 \
    2 i: u3 f) a9 p1 s, @, i( c0 r9 }
    只导出表结构+ r# W' u% j# p

    1 s. u. W* J6 K- h" h! k% V7 f
    / U. V! Y. X, X& r# s' }
    最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。( {2 ?3 S9 c: o) E" l% C" V
    ! K. p. H0 V) F6 P" U7 q
    / {2 g0 F; S% z* l( D2 j" Z
    4.5 打印数据库# h9 @- V0 C4 m, z7 y
    如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。
    0 N2 {( B- P6 l" e/ g  G, S! z) K0 l. T. i$ e

    . Q/ }" o/ ]! G( g4.6 转换model
    % r9 B9 o- X" b! @' T/ k2 X4 N如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。4 `& ^. U# p: d9 ?2 D% [! A5 V
    7 z# D) @& |  p

    8 @- \. f2 F6 A  V( P! _8 h$ K7 [4.7 找到数据
    ' S" l, h/ }% C如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?! o9 d& }" X- ?9 p

    - C1 k4 ^; H& Q/ ~

    * w1 x2 y, |7 h5. 表的ddl操作( ~: b, R9 K) j+ {8 p  Z0 {% A& i
    相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:% Y8 i' O& g: ~( s
    $ g' m. d; c  {; b6 n
    , g' S* Y- W8 h1 V
    如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。  h) m, o: s4 l* ^$ `7 |
    6 S7 d+ d6 ~. q" c/ z1 p. e

    ! P* w7 b' ~' ]+ ?8 o+ [7 b& q5.1 表的设计窗口, P" @4 s& K9 K7 k) W
    如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。
    5 [3 w+ y) ?3 g3 t7 Z0 J3 V
    : S' _& H$ u9 }1 A

    4 W" t: M( E- e0 i2 {它支持的字段类型有:实在太多了,列举不完。
    1 N% H! u/ K+ \) }! I1 Z- Q$ F) i9 j
    ! K$ D7 L% l. D5 _* c( M/ G% ^
    如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。
    8 i3 w% y+ [( T# N! O* \: y8 C2 r- L$ l& T" f/ {4 E

    7 [: v2 j+ g: m1 y  j: d如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。, H7 N2 G; [; i! l8 ~% \: ?

    , T! W6 W8 N( h# s, t! E
    , [5 f- w4 z  o! M1 s0 K
    Comment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。
    7 Z: c7 B6 o) G5 d  {' X; \# v

    5 J! p+ M% O+ }; {2 g& s( A如果选择SQL Preview,也能看到该表完整的ddl语句:$ U* u& G, b' h9 ]- j. ^$ ?, ^+ ?
    - u1 v$ p# \. w
    ) n* T! Q% w# ]
    ) m: s& G  s# D

    ; C& K' o/ D- ~0 m4 T( m9 p
    1 n- U! I' y) J5 P
    ; m2 s% ?: O; s& k" h) j- M* {  E
    5.2 表的删除
      h: g& K( K$ _% O上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?
    / f! f; p" j, I) Q) p( V  i4 p. W0 r* P

    ; ?( L1 G% {) u* _) E主要是通过如下三个功能实现的:
    2 L% N; v' G9 y1 E, n
    " O( f$ b0 ]0 T. n0 f( c
    * n+ E! b+ e& C6 p1 c7 J$ L5 ]5 R9 Y& k
    Delete Table:物理删除表) R8 z# f( S5 O) q
      ?  Z! W. b% z! H7 s) B- [
    $ e! @, I( D* n& T% s# Q
    Empty Table:清空表中的数据,但表任然保留$ `: k2 H* e" I" x
    - |3 R3 o) Z5 R6 c
    / A5 _- m5 J( `& u( }3 Y7 Y
    Truncate Table:逻辑删除表" l4 H; U- l6 M

    + B8 z5 V1 }  {6 b1 x
      q% z! X% j4 N
    5.3 表的复制
    9 `0 m" h2 r6 g6 F* U0 [/ ]6 o有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:
    ( F* ~' I5 |* Y* L+ O. e
    . c% B1 |1 a1 }8 s3 L+ l! Q% T

    ! b, d8 Y# o5 b3 q4 s. j' {* Y如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:
    2 }& b3 h0 D' w1 s
    0 k7 n2 m$ x. M) A# V
    : `% i8 m5 K7 o. }

    3 ]5 I* S5 i* b7 D8 Y) i5 y

    - p+ S$ M7 [. r' {" i7 ?2 k  I- V, F) o/ x! w; q
    , _2 S% J1 R/ X/ @; G& C* f
    里面包含的数据跟原表一样:; o& A# W/ c( L9 o$ M

    $ w$ i3 k. I( L$ e3 }$ h# i( C' H

    1 n; ~8 f4 E3 Q, t2 U1 a+ P如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:
      I5 g$ x1 ]5 q- r$ V; E5 F+ T6 }- e3 E# W4 W1 [: P# l

    . ^: g" G4 k( l/ U9 o5.4 数据导入& v2 z+ @0 x3 r- ~. p* q/ T
    在实际工作当中,我们经常需要导入数据。
    * D9 j6 i# t4 |' J5 b$ h. R/ t8 F2 R& Z1 q7 |* h; Q- ?! T

    ! f0 U7 M" s8 Y比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。
    9 n; F* c0 F, y+ `1 _( V! k
    8 c" @! G- t" ]# U
    & {+ y5 G2 s  W9 _% q
    我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:
    + |4 o  P% J: x7 Y  ^* i3 G* v4 F% u% T# U" N6 G; [
    , P) h8 e9 r! M+ L9 _* L
    可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:
    - x% x( r) o1 I% O5 {; G2 O
    ; z2 A) m5 m" l7 L: u' X  ]

      b7 {9 a- q* y( N" r7 D0 Z5.5 数据导出  I( t/ X5 i$ A- r& }, A) `
    在实际工作当中,数据导出的需求偶尔也会遇到。
    / C8 g+ l- v/ `$ j% E7 l" X  a, W' z  {" M. |; M
    7 x+ |* C2 W& I6 `; ~/ |
    这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:
    ) {4 Q1 R1 K/ S
    , N9 Q1 C0 z+ S" ?0 G

    3 _. x+ X  ]% k8 K7 W$ l. M可以选择要导出的表和对应的sql文件名称。
    2 N4 V/ Z9 L; [  y- J
    . `8 q; e5 f4 a7 M1 i. ^) L

    " B  e- ^8 L! ^; i! T接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?
    ' h2 N. x' ]6 y% n2 ?- L
    1 t$ A  p4 w# D. w

    " s. H! o3 _! S( K3 B& G. v6. 表的查询操作: n9 O' \) E; H) r  p; v
    查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。% F! [# l* f- m% X7 K1 D' Z6 X

    : n$ G3 k0 T1 M5 g8 y! h

    3 C7 J: M2 |1 |$ u" h  N( _选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:
    $ u5 K& I0 p" d8 w& H+ U- ~: a  }' h
    . Y, m0 P( t7 e2 o! Q7 P

    0 V9 r" @$ O9 w& s6.1 执行sql语句:6 K( p' V8 |' \7 ^2 Y4 d
    在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。
    9 e% M$ J3 y& Z' u
    % I9 g4 G; T# P1 d! p

    8 M  \7 S! Z! Q8 v, K5 O虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。
    9 S1 e! h2 f- p$ E2 ]+ [9 f5 ]3 D" ~& F7 c2 y. ?0 g/ ^

    " a% S  X! B& H6.2 保存sql语句:5 C, R1 z9 k' Y  e
    有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。8 b3 T; C6 G1 F. B5 \
    ' K  ]" e5 I# B( R

    $ j7 O$ w: ^! ~) Q# f! g/ T+ Q这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。
    ! b. u0 s$ p' W- o, J& y+ P7 B: w
    6 t# l/ ~$ c) Q4 q- r$ C
    " i4 V) P' ]; l1 d& z2 m0 j
    这样以后就能在Queries中非常方便得找到该sql了:6 g& q  F% S8 e  a0 \0 m: U# H1 B
    3 Z! O# l5 j$ [
    ; s. \5 u/ ^% b4 G
    6.3 快速关联表  i, F( F- f' d( j
    我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。
    # \  z! ~, N* U9 U% j! B7 p5 H: F7 v: I( X! B
    ' z: E) f5 X1 h1 w2 E& R
    这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。* p  W) ~* S, t6 w5 ^
    ! k8 z, q* T( o

    " W& S' j( }: @' ?0 I/ }1 N- \难道还有更高效的方式?! M, t& A7 i, I% l% B2 t
    4 M$ y3 J9 I+ H$ c* b7 N1 n0 E& S
    ' j- u3 {! T0 J# H0 ^
    点击下图中的按钮:
    ( T' r& m8 v! z% L& @! C8 a/ p( y& U- U9 Q, K9 Y+ R, ^

    ) h$ S$ m2 m& R会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。" {5 Z( H2 @5 G- Z! n$ v

    / r% k7 e- }( P' \. T6 J, ?
    1 P) k9 B0 I2 h# d
    然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:
    # O% P) p9 h8 H7 V* }8 |) g0 X3 T& }! p; `6 l$ i4 p! p( @

    # z7 \! P. g- K' @, G5 z+ t太牛逼了。
    ( o. b% h) h5 k/ T6 j: }: o5 L7 X' W# K
    * a. {% a! o1 @# v* ^
    6.4 格式化sql语句
    0 A3 P% |" w( B8 q有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:
      _8 h7 Y2 C' ~: A. e7 c& k% g4 u+ }9 v- @" f

    2 b' }( Y) e* x看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。
    ; J) q" p9 X# {9 n1 z& _5 ^  P* a# F8 _
    ; Y% w7 R9 w1 @" J2 n( N5 E+ y4 S

    ; w) {) S. B" J  X5 R6.5 执行计划4 o! c9 f) j7 G' }# e5 {
    有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:
    $ ^- d2 l. T/ M9 a/ q) O! G2 X# S2 g0 B3 I5 f5 C. E
    * ]  k" ^2 \  D' G
    这样执行后,就能看到执行计划了:+ q4 A& q2 l; z% w, C2 H
    ; H4 ^% I/ H8 d

    : I3 K1 D) a7 a# A但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。
    ' x8 F' c/ U9 `3 }* L8 G* V* k& l+ d2 V" p
    + e: \+ G4 `8 w8 R
    6.6 切换展示方式( l) ^3 u; }" o
    我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。
    + ?+ T! p2 j- A; H0 f' o/ j) P! b1 [! i/ D6 m  |5 t  n" E
    1 i0 U/ l1 j8 X8 ~
    这时可以切换到form view模式:
    1 h" q# ^3 |! h( V) x/ C; Y- T, z5 p
    8 T1 s, s/ J. x2 z
    然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。4 H  G3 j5 v9 ^. K$ ]* }
    ! Z- d! S/ V  a

      S( f) C! A% [+ s6.7 新增和删除数据4 y% D- u( }9 W
    我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。' d: \" Q( E4 `7 g. T/ n& A  r

    6 ]% T/ w8 Q! Y' x4 n/ h/ c

    8 Y% ], f' m) b9 k3 P) P- u5 I同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。( o4 T( ^$ y! ?9 K$ E) `

    9 k3 e" p' }/ g. j

    ) L9 O3 T/ R9 G( }% b4 i最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    ; `( r$ f" l6 P8 _  iBAT大佬写的刷题笔记,让我offer拿到手软
    3 Z4 H8 w8 f! J. x, ~" {————————————————
    - E) \0 b" m- Z  e, `8 Z  Y版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    ! d  z$ ~  o  e  ^原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369% K& j% U. ~9 x7 v- B0 w# X0 j
    5 j8 \: \/ K7 P. v! n- ~
    8 \1 g0 ]" D* w+ ^& I1 R& C
    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-11 06:51 , Processed in 0.380636 second(s), 51 queries .

    回顶部