QQ登录

只需要一步,快速开始

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

    . `& G' Y3 l$ ?" ?这个数据库神器真是太diao了# S: J" H! z# N) J
    前言! g, V) _/ h* `& {  \; Q3 b
    对于开发、测试、DBA、运维来说,数据库再熟悉不过了。" @: P$ G, |2 w* v: |+ F1 J- h

    , h, x: [, x! ^7 y6 R  z
    % M2 s4 D7 g* n. B* x
    很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:( Z& {8 `: ~6 i0 I# p" g' b  \- L

    . w. o+ t5 w" d

      P$ _8 [9 B1 P) @4 W0 U% D# h2 O; w/ \: [: u# \
    8 V. i8 B! Z3 C7 e2 P
    , `6 G  ~/ T7 l$ U& b
    5 N4 u% z4 _( H! M8 Q( F/ k
    用过的人基本都会吐槽,太low了,极其不好用。5 S( x- {8 k7 x7 |. T4 s
    3 H- m6 q: `& W: P7 @
    5 o& h. T% A/ Y% S) }& d0 `
    写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。
    4 F9 B3 ~# ?6 F. N4 A6 a
    8 c; L8 s( f5 T* R6 O# ~* {& F
    1 @/ w; T3 k( z# h7 g+ {/ s4 Z
    看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。* U4 d1 T, t7 }' D) h0 H, U' ~
    % Z- d% ^4 o. g8 P9 w- U, O

    + V. q, u3 F% L对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。
    % Y6 z  {9 r/ t" g
    - P& `( G! L- s' P+ @( [/ W3 w
    # l: [7 W5 N% d" Q! @  w* t
    很难看出表和表之间是怎样关联的。, W( C: l3 Q( s- b

    ! o: F& `8 s, r% E* Q
    4 i, P/ d% H0 G( q
    导入导出数据就更不方便了。2 L! _/ r7 O7 V  [' U" e
    , a( _2 J; M. _$ [
    3 q4 {5 z+ Q* H/ [7 f9 V; Q: b# M
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。( J; @! J+ O2 J" c& k3 O
    BAT大佬写的刷题笔记,让我offer拿到手软
    $ ~& Y( y+ I+ e( p% o! [. w# ~- s
    2 A  l0 {3 x! r% i' n/ q

    ; e# R+ C- d* r0 R/ ?有没有一款好用的工具,让我们能更高效的操作数据呢?; N0 [* L5 F" W9 [# W7 K( }* l. x
    2 S7 y& z3 c$ x' j9 ~& A0 R" b3 H
    / B# a4 w# b8 U5 u! z& K$ F
    这就是今天我要推荐给大家的数据库神器:Navicat Premium。  a6 i1 G+ {% [7 E
    # |# l( e) F4 G5 q* k3 @

    & L7 P. E  v. F3 a5 R' ^4 `! Q下面我们一起看看Navicat Premium有哪些牛逼的功能。
    3 p$ n& ~; N3 f0 S& E
    6 W6 ~2 H7 E: y+ ?& \2 r

    $ S3 H7 n3 N1 P% U1. 支持多种数据库# e% W' [' r6 B* w7 s
    在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。
    6 V1 c- [* A% b/ y8 C& o0 F  T, n. m$ ^  a) @7 c' f5 H

    - R2 G' }$ b: X9 o& j点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。0 `4 b: H3 n. d; C  v# P# M
    - a! h- D0 D+ W. V* |# c' v9 k
    . e: O5 G# e5 ]4 R$ |& l
    2. 轻松管理连接" D/ ~* U3 l6 `/ w
    2.1 连接数据库7 N0 a- K  ?, k* N  L" D+ U
    之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:
    ( B' t% |  E7 o; v7 Y4 e; s& n/ e1 z  K6 x0 x9 ~, J
    : X# L# M, B/ x, u7 `
    mysql -h127.0.0.1 -uroot -p123456;
    . `0 f5 y2 f+ l& W
    $ v, v9 j% m" o* C0 M" J/ f! }
    6 G* G. M$ F/ S3 z
    1
    . y- ^, m, j( ^( u+ X2
    6 E' \1 d& c; L9 D每次都需要输入连接地址、用户名、密码,不觉得烦吗?
    ! J* l/ N9 g: A5 s0 J
    9 g0 r" g5 z) o0 Y1 k
    9 m) C& e! \; M- f
    恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。4 b' l% O2 R, H

    2 |' ^4 c# b9 C* D1 d' m3 A
    3 H: }! Z6 @* A8 p5 @" M# X
    以后就能通过界面双击Connection Name,直接访问数据库了:nice。
      v8 v+ @7 u* o6 x9 g  P9 E/ N- r
    % ]6 Y+ k5 \; D* @. a1 v; I
    * W" L, {- S2 c6 F
    2.2 显示指定实例
    - v- w* O9 E. l- p1 N有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?4 I6 \% s7 |9 M

    ( J0 g0 x. S/ Q( ^, c
    1 \. e  r1 ]6 F! |
    这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。
    7 W; L) g' f3 o2 l2 t! N
    % A4 B* R* {9 t) [0 N( d) @: d

    6 q& r# |! |1 \; M这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。
    - h/ Q7 S& k' F8 F, u4 R4 s. ?  M8 G8 U* x* L

    ; b& t' t8 m( v3. 方便查询表信息# U1 C# h2 H2 y: d8 G
    以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:
    + L! [* [/ Y9 a8 s6 z% ~% p) V2 v4 a# X+ h9 C3 o( G4 A( b

    2 Y9 T2 I; ~- R2 c8 y. O$ b4 u! Gshow tables;! u" n! i5 C+ K5 M

    1 D% g" L3 o5 ^4 s3 p. p4 ], J: P

    1 K' @  W( o" d+ u4 i9 D1
    3 b8 C' j& w* W- ~8 K% p* Y7 L2, M2 B4 k) Q* |" e
    2 T4 e& b. u, U; k* w! S0 J

    * d& [; |8 S& u
    8 [& |6 g- V" v$ m
    $ z% @8 I' ?, V! F- G; K/ `4 q3 e5 k2 b
    不好意思,那已经是过去式了。( }3 q, |) z7 U9 u0 l! P
    / K; d- g3 u; d6 V$ W! t" P
    6 i" j) H$ W2 w" o  b
    现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。
    7 m1 X5 p1 t' R- v/ `6 Y/ g+ v( D3 R# R$ k; \" U+ ], O. y. h

    9 g$ X# D, Y- r% G$ R6 N如果想看数据,选中双击某张表就可以了:* d# g" g$ ]2 s6 H( `

    " U9 c  r0 T: @  S4 f4 j

    ! l% o6 Z1 [! [4 z( a如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。, ^+ A( g* ?, _+ I
    4 ?8 I1 T$ K0 f8 N5 W7 c3 g; Z7 n# \

    ; `& d% {# X5 P8 d5 |4 `) e  h如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。3 f0 F" }# y7 g) t  I. b

      D1 O  n$ B# M0 e! o

    % q0 C2 e: p; ?' g+ G比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。3 H" \' O& U/ h

    5 I1 T# j/ f. D( ~9 r7 I

    * m. h! C; ~3 a: g8 U# a0 o6 F当然我们通过如下命令:( y! _) j; ~; n# H* f) a7 o$ r  b
    1 L4 o* K$ b) h$ A7 I

    ) A( @; ]; f' q0 {) l( ]. Yshow create table jump_log;
    , E+ m4 v; I/ O3 I- B% C8 T' u& V; a0 r. G; T1 c. _

    5 l1 ]8 P/ [- E: ~8 |& ~1 F8 d* O2 Z" N19 n7 l' u/ d1 c4 h$ z/ p: B
    2
    / L) z* J7 D6 N( ~( c也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。
    * F4 R7 ?, S) W- |% O" z! l" M  ~; T4 d8 _7 E4 r# Z: u
    , I3 ^1 ~8 P( W5 ]2 |: A
    4. 数据库实例的ddl操作
    8 ?$ B9 w! ?8 `" I通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。
    9 p! Z* j5 ?) T2 B  j& M
    7 ^: H2 K; G* C+ _- L. A  @6 t

    6 i* s+ r5 Q) L5 L7 `! N- _右键单击某个数据库实例,就会弹出如下窗口:
    7 t% l; I/ k( d! c+ a8 s+ c! C2 Z
    6 r4 x, X. f2 V6 [' c% v+ b
    . Z$ E! J% c* {; s' f
    里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。/ G" O, x  z; M

    + T1 D7 y! S& b, m
    2 c" J+ b/ b: m# D! y# I
    4.1 数据库的创建和修改  j8 [5 Y6 N' ^! w: {
    创建和修改实例时,只需要输入以下三个字段:
    3 y0 [3 \% z6 ]3 D* w  v) K$ M3 V+ a+ z  Q

    : _4 b  [7 e9 R4.2 mysql客户端/ u' M+ e0 m6 s' R, j0 c
    在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:7 v& @/ n7 T6 d, }
      ]! i! Y$ f! E& K

    # }4 A' ^+ i+ u. K) x. x1 ~0 j4.3 执行外部脚本: q$ n( H; R% |
    如果选择Execute SQL File,能执行外部的sql脚本:: h- M! e, Q- [. `1 ^

    3 L5 |2 D& Q3 N7 _/ E0 e' I; a
    7 \1 p7 X; O* w0 v% x- i2 c+ R, M
    4.4 表导出
    & W: B* H0 F' z& |如果选择Dump SQL File,能导出所有表的数据:目前支持两种:
    3 _# D0 A5 d7 B4 }
    7 ]3 ~; ]4 b& n/ g. `4 l

    2 o1 z  W9 B- r+ \  d8 H  b9 [2 ~导出表结构 和 数据
    4 `2 S( ^, P" B# r5 o4 O+ ^7 J4 y  P# x  k  T% P

    8 S* J; J5 N. Z) K% A只导出表结构" f4 n4 m0 ^, P' B  {, ?( L
    : Z. |% f! k5 d& J$ h- r
    ( n, ?$ E) B# l8 m
    最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。
    3 j7 g9 A" D4 M6 X. Y1 w4 y
    5 t2 p$ C% ^7 F' D: L0 V

    . O; s3 x* c& Q# O7 Z4.5 打印数据库- i& F- \0 G2 r& T8 M* G" S
    如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。
    0 r+ ^4 E0 L& |' O, ]! I; y4 I: Z5 c" p% J$ b+ R5 Z

    8 ]- e; H1 Q' ?8 R4.6 转换model* k/ u2 \# V3 i% z: y- O
    如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。3 U0 Q) L( K; k( Z9 b# o/ A! V
    4 r& r8 w7 l  P0 F# a2 P9 B6 P, l
    ! h+ V* |  Q4 a  u  E' y: E
    4.7 找到数据! |: W- ^% Z0 M- ~
    如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?
    ; ^: D3 g" t; H" [6 h
    + \! U$ w6 r( l6 c+ u+ B
    ! s5 v$ ?9 G3 F  n2 w
    5. 表的ddl操作
    . e. N$ ~, ^# A$ N4 M" o相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:7 X& k" i! a# w5 H  @" S2 [) s

    3 _  i7 e4 Z8 g4 @0 r

      ?+ N2 ?+ t( [如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。
    6 [' }6 I/ N0 s9 c- ^9 h# L/ S! A7 g3 L& M; U; k- J8 X
    3 J: q# _" D' T& B1 W
    5.1 表的设计窗口/ n; r3 N; P9 r. C, W
    如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。
    . T- V8 T" o1 A# X1 y! B5 I2 C/ H- f, M  ?! E$ v+ e

    5 {3 q9 d/ ?: K1 `) X* s/ Q4 [它支持的字段类型有:实在太多了,列举不完。
    # \8 y$ O. p9 K8 x$ g4 N4 g) ^3 @9 c+ @& E: @! V! J
    0 v& E% P) o2 G& `/ z
    如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。6 D: B* B( S7 H* O- w
    4 |5 c+ |% g4 D
    $ N( f9 S4 B7 u9 }) p: [, S
    如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。
    : d2 O) v  P7 \0 I/ K3 J. R( F- T2 f+ V4 }8 x  Z

    1 X' j* t2 [' O3 Y) GComment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。: Y; E* U- K$ ]- R5 ^! n% @% W, Z
    " Q& p0 X9 H+ ?1 E+ d) R

    3 ~1 B. F7 h  r- C. ~8 A/ x如果选择SQL Preview,也能看到该表完整的ddl语句:2 m. Z! |( H7 Z1 @3 Q1 o- I. F. B

    " ~- B3 {1 D) y( B2 n, L
    , V& K9 z4 F5 v/ h) `- n( _9 }1 i; V

    3 J! s9 ^- \: }% t4 P

    ! r1 K6 X* z7 V: B8 u9 A7 _4 t! d- p+ G+ I

    ( p: i  n/ z" c+ w5.2 表的删除
    6 p- [7 w: W" L: Y上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?+ B& r  p! [( y# E, w! {. _2 J
    " g9 A' |8 H4 e9 @% o6 k

    / k$ D) T$ T+ h9 r$ e) S主要是通过如下三个功能实现的:
    # U$ C' p& j- ]" m9 Q4 S
    & p: M5 j3 h( H( l& D

    8 S# F: d/ v6 B- z3 h: Y  ^Delete Table:物理删除表
    6 x8 F# s) i( ^8 L, y% V1 X5 |2 B/ M
    * I" Z; [( H" a# k; N, Y  l5 L1 y' Y
    Empty Table:清空表中的数据,但表任然保留
    ! q4 K  |: l  ?5 j8 q$ }" R' _9 P# t7 {& h  E$ u
    ) l" u( o4 ~5 T" G' Q) B
    Truncate Table:逻辑删除表
    $ l8 f9 I- ]1 k$ _0 t
    . \' W3 }' T" b/ G( P( P

    9 j& c6 u7 |: O4 u6 O- y7 e5.3 表的复制
    8 z! o) g, l  d0 f有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:7 U1 [+ F. a- x3 Y6 u% f. v: C7 a' i: U9 ]

    ) L, ~$ m9 p1 G7 T" ~6 r
    * N  d: r1 `$ g  F- S
    如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:( A. v/ _5 \5 d- N; x2 i
    : q* o& t3 v5 d( I& h! x8 S: W
    , j! Q  ^8 M  J; P. m6 @( m! b

    ! ~3 R  J. o+ H2 J: E

    " v" c! Y1 X- z% D- X* [5 F
    ; C' _3 H! f) o8 G4 C

    4 e4 O; V2 a* U里面包含的数据跟原表一样:+ S  W: I3 H* @

    6 X1 e" }/ N$ F) g  I

    # @4 o( Q2 c' x如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:
    # g/ N* n4 r5 d, _' V1 h, u7 @8 ?& Y0 U" P

    5 i* q* s- U9 `8 y, I* `5.4 数据导入4 q! M( a! j0 n- U) Y
    在实际工作当中,我们经常需要导入数据。
    - M: O& o  ~1 _; N' x$ |* o, c% D8 `1 C

    + b( _  S! n3 V, {2 P" S比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。" i8 f; c" n9 b/ A8 ^

    6 V& e& c: L; u  y2 \
    $ B$ e) J2 o7 ~. C% {
    我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:
    # W, P8 w! @8 S
    . ]; u. m7 `2 D2 a! x0 c7 Y* c+ [

    - A8 |! q" C" e) f& ~" C! x- `/ w可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:
    3 A" b2 c6 L7 ]; l. P1 g: d
    " ~. u3 ^/ H( E
      \2 L4 [" T& h
    5.5 数据导出
    0 U. r! c$ o- W. R5 E在实际工作当中,数据导出的需求偶尔也会遇到。7 r$ g* O" C, ~  Z2 q2 H" C

    & N2 T. S5 \0 `

      A+ |! ~9 a5 w% q7 B! x% L- p/ X这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:. X7 Y% L; ^7 J/ O
    4 B2 F: X9 _  J$ v! k

    : J2 b5 q/ N; L1 g/ M' G可以选择要导出的表和对应的sql文件名称。
    2 Y9 Z7 f& }: B  M8 J8 {
    1 ~; t! T* S$ Z, s( d! F) G

    ' Z, |" `) G5 q3 \$ v" ~4 o4 T; @' m接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?
    # G$ W& D: M; j. p* u
    & c8 o0 C% y8 v8 \  k$ m, T
    " y, V, F4 E& I" w' O/ b  i
    6. 表的查询操作
    1 t3 n/ ?; X9 ~* c$ L0 Q查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。+ D6 K7 Z- j2 h" _

    4 x' A/ I, d0 c$ D1 d5 c$ d% s

    0 Z1 P, Q: u8 U4 e选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:3 t* x) m) D! l, e
      s- [8 h9 \, M! i

    / ?0 Y1 e2 h9 o+ y" v1 o6 p( w& K6.1 执行sql语句:# H7 N4 X" A" M% O+ J( }$ O
    在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。$ u, _6 u: J9 t. i; _5 }
    : b2 h/ a1 C, G* V% B* x& D& L

    , X2 U, g, e6 r* \; ~虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。" f9 J% l" O8 e8 f; v% R, K- b
    7 o5 m/ L& ^& K6 g8 g* r
    1 y0 O9 @( a( U& s" p
    6.2 保存sql语句:2 f$ N- z- i  G. Q6 ]# M7 K
    有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。0 Y+ n7 W7 }* V& a) \

    ' ?. H1 e' L0 ^" `
    6 g0 k5 h, c! n3 ~7 G0 |5 {1 r
    这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。
    2 g9 o  Y, |2 T* c) f0 A' [- Z% P

    + g% F1 W' b! F4 P( e; O) Q这样以后就能在Queries中非常方便得找到该sql了:8 B8 D; {7 o1 J5 K* E

    " b9 R, z% P  q/ e5 w$ F
    - ^) o9 G! V: G  {. q
    6.3 快速关联表/ V4 v7 z" Y+ ?/ i4 e6 `! _. O
    我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。' S/ m. D7 V7 f" B0 G
      G+ j. `( m9 `$ D
    - @$ I# Q/ h- |5 g
    这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。4 M0 d% M: v% M" t0 I
    / \# F/ P( L  X4 K" U1 O' k

    5 |0 e' Y) M/ A2 z8 d难道还有更高效的方式?
    6 S: E5 F  E$ v3 I8 W2 H; E5 L8 s& t7 @2 E# m, q
    ) b: D- B" U/ x$ i9 U! s* }( X
    点击下图中的按钮:
    / z) X( B- z- _- p9 D. K: j) e
    3 }* x# f% X' e7 i

    $ |) g- q! U- ^% |会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。/ R& C) P7 t# P8 c4 t& u

    . f% G9 n  s! W

    8 D9 ^" k* E0 C+ f) [然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:5 H$ n7 X1 o& R& J( W
    & Z3 R# y/ k. {

    : s7 R+ z! l8 e; y' \太牛逼了。; ?  B7 s" T6 S( H( P& b$ {- g# F

    ; P5 Y( e6 g9 m8 d
    $ |/ l* m  y0 B5 D$ F2 S% ^( j
    6.4 格式化sql语句
    5 V% ~9 X; P, A/ m/ o有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:
    : f, d& |3 M  V, [
    & {7 x# P/ e1 t" r) y) t

    . S* d" n+ Q1 g% E7 E) m' W- n看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。
    ; L9 C% U; W" n3 ~
    + h. m- G5 d( h2 T3 x5 B
    - I- z2 t  ]" Q1 B6 i
    6.5 执行计划. \' v1 B0 S, K' W/ F
    有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:
    " W7 Q- v- ^5 Z$ y" U  ]
    2 u: h9 r* w1 d; G7 W6 \2 {; i7 K

    ! J( N; i  K, K2 C8 h这样执行后,就能看到执行计划了:+ }2 {2 R# L' y4 q+ c( t
    5 m; F% B, Z0 p  q1 e2 s1 z

      D8 [$ g2 c3 ?; O( [但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。
    5 y6 i8 \2 Y- X$ l% P9 u/ M* ~- Q
    # D% ]4 _' m+ i! H- j4 z

    8 p2 Q5 z# o( P$ j; D, y+ }# Q6.6 切换展示方式3 a+ F) {4 K; n, i, k
    我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。
    * P& \; Z' U0 `# u3 m' @( |
    ! k% O1 J+ J+ ~2 d8 q
    7 S% S* I2 R% r- _8 k
    这时可以切换到form view模式:
    # V8 I' }4 ^; ~6 ]0 K
    4 X( s7 L$ x$ N6 k' j: W/ k2 m
    + H6 h. g6 }4 c6 ]
    然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。
    4 h" [, I  n3 q! \" x5 }0 ~
    0 P3 I% x1 F! V  m$ I& h: Y7 `" A& y

    8 F) I. l. {# Z7 j! B  T$ ^% P6.7 新增和删除数据
    / v# W4 R0 Q9 D3 F我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。
    9 x. ~& A% q3 k6 R0 g$ y: R* M. q$ |- t  B* M( p

    ! t3 Z' c7 `) j" @7 m. R- c同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。
    / Z4 g2 B+ b# Z9 Y! m* i# A- w. [7 `7 V, Y8 c* k) l/ O+ c+ v0 n
    5 X& y7 j  X; {9 m* f" `* G9 X- j& {. `
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。; Y5 A% N: I2 f) w8 X* D$ x
    BAT大佬写的刷题笔记,让我offer拿到手软
    1 r# t/ D; y6 l4 M: V- \————————————————
    ! F0 d' U$ m7 L# ~5 r版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。0 i* p( w9 Q+ j+ h+ Q
    原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369. |+ A) F& D( @7 i

    ' Q& O! T* A/ E; }
    ) U, {# t+ d- W) A
    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, 2025-8-23 10:55 , Processed in 1.727085 second(s), 50 queries .

    回顶部