QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2856|回复: 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
    ; K/ ^: B# l0 F2 Q' `
    这个数据库神器真是太diao了) {9 d" u1 y7 F
    前言2 o9 G- H! ]7 P/ g! y
    对于开发、测试、DBA、运维来说,数据库再熟悉不过了。
    ( o; S( x" y- {" [  R" N  }( d6 Z" H4 [3 a

    , o, k; K/ n. x4 X8 a很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:" _3 Q+ B& r( t1 S+ d
    # f6 U) }8 z; c3 \4 }4 q. R

    7 c( L0 C2 E4 _
    : [) ~+ b2 N" X2 h% y

    % R& z- G; o% i" I0 H1 F! Q. n3 e5 }' r% u

    7 ^. g1 f/ b8 O. x$ h& I, ?用过的人基本都会吐槽,太low了,极其不好用。
    5 u, g) M/ L0 O2 p2 A% x2 b/ k) a3 o3 @+ s0 B8 F- V

    . z" F: g& H6 j0 [1 R写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。* I7 [, g4 d" q
    . [7 i3 M/ k$ p2 v! J

    1 ^* k0 ]" Z4 Q$ R" w3 B0 d8 u看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。. q8 D- p+ q: Q  i. }) b

    / J2 E/ k$ h7 j+ ~1 g4 @( x
    ! w' ], c/ D6 u: H% q, J
    对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。7 q2 g. s7 h; J
    # X7 I! \  u, Q* H

    9 I/ I9 B, D% o1 j& i很难看出表和表之间是怎样关联的。& e3 R/ q! S& e3 B$ T' |& }% G  B

    ' _9 s  A1 T; C' q) Q9 @9 O" ?* Y
    5 ~9 }6 P; ?7 _+ [* C! p
    导入导出数据就更不方便了。4 x% o' A, M" Q; J5 m% W
    & O; H$ F( e6 Z! E: Z  ~8 x

    8 b/ l5 N5 `& B% u- O* N# @+ M- R最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    - w: L% S6 X& p) @% w9 k9 sBAT大佬写的刷题笔记,让我offer拿到手软1 p$ h) L% Y5 V  ?* c: b) k% W

    $ [8 G6 u' P( }6 ^6 d2 b$ D
    7 d8 \! ]( X6 r# l0 o) S) m
    有没有一款好用的工具,让我们能更高效的操作数据呢?
    : u# Z; t( z: _# c0 }1 ~% F: b/ x! V/ U1 |; l: V

    / A  E% f: V8 E2 @0 |! C这就是今天我要推荐给大家的数据库神器:Navicat Premium。' b2 ^/ z9 z7 U: e4 Z8 Y0 Y
    6 o( K$ v. u# Q8 I' \4 {
    4 ?* [6 g* y) }( j+ Y
    下面我们一起看看Navicat Premium有哪些牛逼的功能。6 i$ x2 U. t# r) L0 ~1 k
    ; a# ?2 |0 M1 j8 m( R- a' o

    : |- X- d  v( ?2 U* ~5 U# T+ Z1. 支持多种数据库
    " |& m- N5 C1 J7 S/ W0 C& x在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。( C( s% F0 i8 z7 `: r$ M- \9 g

    3 }* d4 n; T- ~9 ^9 i2 G" m1 m& s! y

    % {* F% Q- m. j2 G" g$ A点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。6 P1 X  l( J' u6 b
    8 N: ]' P" q& Y) s  N
    ; @4 u( J. L8 a9 o" Y& k9 x
    2. 轻松管理连接
    ( z* D: \. @% O: |6 w2.1 连接数据库" E+ ~( n3 H6 Z4 p4 E/ }  X
    之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:
    1 }4 A. k  x$ N: {6 A4 a/ `
      N2 J0 z$ F+ v0 A, Q1 [. Z

    & e- g& B7 h" i- Q2 smysql -h127.0.0.1 -uroot -p123456;' X9 O. O; E) p: c3 P- V* x6 m
    - j4 M+ ?' b( T/ x- I

    6 ~! x9 T5 u3 I. t1
    . {6 N- E( k. N9 w1 F5 b( v' U' B2
    4 m% K; Q3 N5 V2 O2 i; U每次都需要输入连接地址、用户名、密码,不觉得烦吗?
    ; Z. `1 R2 P5 \( Z' Y9 o! Y6 h. h( y: y: \* z5 L

    8 w! b. p% B' H' S- `# c8 `, h恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。4 z9 |2 }7 x3 }3 z/ K9 C: T0 [

    6 D4 q* y: v: M3 u  t

    8 U' Y% b8 ]/ X3 b以后就能通过界面双击Connection Name,直接访问数据库了:nice。: K3 Y! B0 C; b- @

    ) y5 u1 d) m% H/ W: p9 V0 S( B+ A
    : ]$ P1 Y' \; }
    2.2 显示指定实例
    6 y6 O; P. I2 Z( t' d有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?9 b$ i/ O2 y# J0 a# W& Q

    0 y# y* N3 {' X! @& @5 z/ Z

    1 q! f5 ]0 C% _. n& h; z( i. T这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。
    4 k# c& d# h  C9 J* M1 Y5 C8 ]9 d# t; R; Z

    ) Z, p) z9 j$ Z这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。
    ' ^9 c) Z0 u/ v, m! I' a* S. P. J+ ~* S" J

    7 s- u' l9 X, L2 r! I" i2 k3. 方便查询表信息- U3 g- w3 h+ r  \* e$ ^# ?) U
    以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:
    ( o; E# n2 h% l( z
    : R4 ?. o0 J- J# m9 H
    0 o& R' |/ I# z* j
    show tables;
    * e) p+ e  F- r' c8 E' _  P! ]9 A, G8 u' z* _, n# g. J" [
    ; Y* V8 e. t% U. t1 E
    13 J1 M: P8 f! n" x- M, J9 t' E
    2
    + j3 r6 M1 Z9 @5 p+ A( X0 `  w1 i. S# ?

    0 S2 p( }! o' K6 X( P' `8 O1 V" p9 C7 L8 }3 }/ L# b

    + e" ^0 {. M: d6 n) n) E不好意思,那已经是过去式了。
    8 Z5 k4 d7 M4 _/ M) ], s
    ' g) c! W& y/ E" U  k
    $ D1 \! j6 o# ]
    现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。
    ) g. @9 t  J6 l2 [* B4 C3 s& Y' m: |1 p# }' W

    0 N; V% l. ~% \' g: R. n如果想看数据,选中双击某张表就可以了:
    0 A  I2 K: t% a' z2 m
    ( N' a' @" C9 V8 k) B; M

    9 ^$ l( @3 `7 _2 N如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。  z5 l. y4 I% k; _1 U2 G' |6 I' d7 B2 Q

    ! t( U4 |# h9 q9 M

    2 }/ @# a1 M2 _- t; _如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。
    / N& F8 x" R9 g2 r# m
    5 ?' L1 z4 W# r" ~1 ]& `2 v3 c

    6 P6 n- O" B% o: w! N  L$ C比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。# X" Q6 {3 |3 L* t, w( m

    : t! h% k- ~( M/ W; ^
    , Y4 ~8 u0 |9 ], g) u" Z& ~$ Y
    当然我们通过如下命令:
    2 v0 E- f  {, a* Q
    , [/ E: G" R% i# U. x* k

    ) K& V2 z( E3 R3 Zshow create table jump_log;: e# X' `% X; F9 D% W
    9 M) i* X8 `$ X9 m5 |  u

    # j' b, v; |& v8 e) {1% {6 t- i6 Z$ k6 s2 Q' w$ J8 L2 O
    2
    1 U3 e# t0 z+ q也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。% r; u4 X9 A# g9 [9 [
    4 L7 n6 G6 R2 u1 M! }2 O( a

    ) P7 q/ P7 U- u4. 数据库实例的ddl操作
    4 F. k& n  p$ a' [通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。- T, U) z& j9 s( o  [

    # F# n0 k: q7 A
    $ M2 b( ]& J: |
    右键单击某个数据库实例,就会弹出如下窗口:( ~0 `" V) d4 x7 [4 t. h

    - ~0 D" p* U% [* c& D  s  J
    + d  M; z, Y9 B# l: C3 J  G
    里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。  J, _7 i3 v7 i; {9 ^7 X) h+ ]
    & B6 V& X3 J/ @1 E$ k

      ?$ @$ g3 v! d' k* y$ G+ C4.1 数据库的创建和修改
    ! i) f. }( _6 Y# A( `( c9 T3 y) y创建和修改实例时,只需要输入以下三个字段:+ U4 D% [' Q3 {' n$ @( n

    7 _6 m: D, Y' z# _6 u# E

    7 t3 C6 b4 b7 w6 O& \) r" ?4.2 mysql客户端0 l/ D( o- O# n5 w
    在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:
    " L0 ~2 U/ m1 S9 g4 @: h: D' n' I0 g2 j# O( |4 ^- G

    / }5 z7 _8 l4 D3 U+ ]4.3 执行外部脚本: a/ ^# ^4 l- Z$ i
    如果选择Execute SQL File,能执行外部的sql脚本:
    - g) |4 a, n1 Q3 f
    $ s7 S/ {5 F0 X

    . c, E1 ]' c% N# d- d( |& X4.4 表导出; U% D& k- A0 ?* B
    如果选择Dump SQL File,能导出所有表的数据:目前支持两种:+ T8 {. K3 p9 t& U: b

    ' E: l- D" C& T; F8 z
    , L) P* I5 W# o' t5 |
    导出表结构 和 数据2 }# @( r  ]% u+ |
      h' Z1 D) F! q0 n# H' h# q6 }

    ( ~, ^1 D/ O2 O9 v  `  f0 w只导出表结构
    1 X9 V" }( X7 N8 c
    ( X& ?& A9 I( ~* b9 k6 D

    . H" W" C1 G2 t3 Q最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。2 |  r/ G: a& ]5 @' g
    % u9 ~3 ?/ q4 }- i8 y

    0 P# M* `& Y7 `4.5 打印数据库
    4 I7 M8 f% _5 t1 j6 V" a" \如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。
    $ P2 }0 I5 x1 p* F- d
    $ }; ?% v7 l0 Q. F3 @# M% |
    # R# B& b1 j1 c2 E- t- {5 E" d8 g
    4.6 转换model
    6 X- K  Y) O/ v& @6 O6 b' e& ]3 I如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。4 I$ B! g2 J2 D" y+ K* ~
    - h1 L; R" K. W" c" {8 k/ T
    & m# G! `6 K; k0 g) ^' k
    4.7 找到数据0 E  ^' F1 C8 o6 q/ ~( {
    如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?: q3 A: a4 F& _9 ?
    ; q; w- `+ ]7 \" k$ C! U# ]" U+ _  p

    + x' a5 h5 s0 C+ t/ U7 i$ e5. 表的ddl操作
    9 [- M. V  @7 C0 T: X相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:/ r9 L6 T* c4 l3 a, h1 j

    , D, G+ J1 `9 [1 e

    4 J" M4 ?3 J5 z: w; W. q- g如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。
    " X4 e3 q0 F' _( ^6 g2 K% o# v& I: e( h- |, o1 o7 X

    7 h0 q: p, }3 x4 w5.1 表的设计窗口7 a8 r4 W; {0 H! j
    如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。
    * n0 R! i, R9 l) u/ [$ a
    7 i- O/ m8 T; B" c$ E' W

    4 D7 A; ?5 K4 w6 O, s8 S它支持的字段类型有:实在太多了,列举不完。# b5 z" P+ F' U8 V$ t+ e0 S
    ; I  Z8 A. T: Z, n0 Z

    % `, \; M1 }! [如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。' Q; Z( s& D9 M; v$ H
    6 r* |, Z* `; c. H
    ) C1 T  ?+ M; c8 Z; K( q
    如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。. w- T5 J1 c, P! K& [! U

    9 t8 f0 A: v! ~

    3 U2 y9 U* ?. I. tComment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。
    : x; Q7 w8 l1 V$ U4 l7 R4 i* M& q& B

    ) o% p( S: k8 r. \& A) |如果选择SQL Preview,也能看到该表完整的ddl语句:
    , P# N2 x6 L; B$ O* q) q3 s3 Q8 ^1 z* B  k6 R) c
    ' s! Y, W' Z7 }

    ( D* C2 L" u$ P9 k4 V  H+ p5 _7 ^$ W

    - U$ m  d0 y3 s5 M6 G( S! z$ l7 k2 x) U& n

    ) h# U! Y  Y+ ~2 L: [2 _$ T5.2 表的删除
    * e! i- K& O8 A9 T& r上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?/ Q: n1 Y6 ^; G' w" l

    " h4 P. b/ O  h$ d, N

    ' E6 B# N* g' ^* i" s! {. v主要是通过如下三个功能实现的:! e- e3 J8 j5 b1 G0 d) x/ {* y* u

    % @/ U6 `) `5 x; W: ~+ a6 |0 D2 V; V

    . y9 b8 S2 s4 a8 b  g. V- eDelete Table:物理删除表
    7 U3 M4 y  X9 }$ H/ o9 k: [1 N
    ) i" S- G1 C$ G  A! h  S7 _

    5 q# j4 V  }( `Empty Table:清空表中的数据,但表任然保留+ u' h9 m+ ^1 f/ w0 h

    - V6 N9 F# C5 _' _- N$ U4 A; H; Z

    5 i$ ^7 Q1 f3 H. T; c9 nTruncate Table:逻辑删除表
    ' f0 r) A: ~" ]9 \, ~& f: f  N$ [2 y$ [, w5 C4 t% c: K, m
    ) ?. q- Q! s& a  [( W
    5.3 表的复制1 l$ }' D) K' O- C3 U
    有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:
    ! G8 ]" ~; I" @9 `. Q8 ~: S1 P6 `8 V& w  B* A( \1 l# G

    % s2 ]! Z4 w- B- [9 w4 T8 a如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:7 [1 E: R9 S$ [, o9 `- t
    # L3 K9 e# ^' k, b

    : G, A8 f, i. \  ]) J" m: N2 ?. X+ s) f! n8 `7 s

    2 _: l$ y) g- F4 ]- L& B" g5 f7 a% q  R0 f0 Y8 ~
    + O* L/ B& j( `  d
    里面包含的数据跟原表一样:
    * w$ z  d8 X' t* i; K( S1 @5 Y
    8 @9 T  ~/ N% V# l! ^3 N
    ! B/ E9 t! p& U7 x' E, b0 z
    如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:
    : |0 z, H+ I: c; P9 o8 d$ e0 E2 S$ }. U3 f3 u4 d
    2 z" T) T" n4 V: ]7 N+ a, }
    5.4 数据导入
    , J! `" X- i) n在实际工作当中,我们经常需要导入数据。
    & ^4 k+ B- C$ M( e. y# s5 w+ x  F
      ]) |' R7 _& t+ w
    比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。/ a& ]  E, f8 L! T. }; x: I; V

    ) v: P* V+ X" e8 J' K
    * v7 d7 z& ]8 K7 w
    我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:
    / N% [9 l% A0 X. ], M: @
      Z+ d2 C/ w" J- A& v4 O' V

    ; I" p2 P( Z6 Y; @' j$ I可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:
    5 {, Z+ r# a8 M) }. N/ y1 m9 c1 e, y$ M
    9 Q  Y# X* E' \1 l( y3 d7 u4 T0 Q4 |
    5.5 数据导出
    ) U, T0 J$ x! j在实际工作当中,数据导出的需求偶尔也会遇到。
    ) w# W, E& J: F0 _  W! z, N+ I" b1 S9 b. ~# l; o2 s

    1 v' P# O9 b  I( ]4 W- `" o0 \- {这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:
    . M6 W3 d- _; [7 @) O7 |5 w4 o+ ~+ m( B# d5 c* Q/ T! |* ~

    7 X+ N, H- @* z' k$ _2 @可以选择要导出的表和对应的sql文件名称。% ^) C' C4 `. Y! N; `) U, }% x& g

    8 l5 w! L# j+ p8 ?

    2 G# H) u) H: u; x3 |8 C% A5 ]接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?: u2 }9 l$ q' c( S4 l

    2 t  B" _0 M9 x5 _- c( }, k

    + B( H- P/ A& J9 j, [7 u+ s/ e8 G6. 表的查询操作
    % i0 X) k1 g) E& N查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。. j8 A8 @9 ]! O6 n* v5 \
    2 G9 y  H) [' W( k9 J

    % C" M# V8 y9 l4 Z- c2 J选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:
    ! \$ |& d  [( D$ s
    2 o( J# J7 }% A/ x1 f  t
    ( ?( D. J# n: x$ q
    6.1 执行sql语句:0 u5 f5 G9 t/ t8 S
    在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。
    7 u" E1 l8 o' j2 J, \  [
    ( V1 i1 N/ f/ b& Z

    # Q+ s/ c8 Y( U+ Z; F) T. z虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。
    # }" k: k0 e- |; z1 e! w0 e8 s/ g7 B1 y9 P" f5 i" J
    6 ]( E0 W6 J1 J) x
    6.2 保存sql语句:
    5 n0 s& y3 m# Y/ w( C' P- [: L有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。& d9 l" T4 V/ l* e

    " N: {7 I3 w% m9 h& ~, w

      W4 M3 }+ W- N这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。
    3 ?$ q9 g4 O/ i/ S+ ~2 D
    ) J& {$ w. Z8 B+ i3 q* E) _5 X
    ( x$ p. J( w, g/ H
    这样以后就能在Queries中非常方便得找到该sql了:
    8 m' \- @( v0 `0 P4 [# {4 o; n. S
    1 X- T0 |8 |: L+ o. {) B

    % \! N5 h3 _. @6 s9 \2 N6.3 快速关联表3 r& b9 @# I0 _$ n  @6 I' \
    我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。
    ) T& C  m( T5 \) Z) k
    ' I" d) f& E4 X6 e! {1 z

    ) m8 \( t2 Q/ ?# _2 x这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。
    7 t% L+ S5 D0 c. P
    $ L2 T# t2 R% i+ I! D! E

    9 o; f0 ]7 t; F) X难道还有更高效的方式?
    * J: \* N/ h2 c1 g- s2 ~" F4 K9 ]) E) v

    5 ?$ a5 e( S4 t1 y$ F点击下图中的按钮:
    ; ]( m. S: O; U  e) N3 @  _- `2 S# O' D" [

    , u' b/ j" i6 ^. j会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。
    # V. r. f% O+ M9 \+ Z0 a1 X: s3 E% M8 c; k% U" G

    ! N1 c& e, m6 r* S) G然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:' J# a& T" P- Q+ m1 k+ p

    " ^2 I% i: f' M& i
    + W9 p5 N9 e0 K# |: L. x
    太牛逼了。) r# @/ n# i; t+ s. P# @

    - C; i: M- v+ G; c4 @
    . D( u1 v1 N* @0 ]
    6.4 格式化sql语句
    ) {- j, l+ [7 I: a: _& I有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:
    * m/ v& ^, G! i& S+ v) {) l7 ~4 N* U" ^+ h* C9 x. D% c1 ~
    : |$ ?# V$ z0 W( M
    看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。6 X2 m! p$ ~+ m6 r1 u
    - V; e! f6 d' `) j! Y5 Z4 A' Y5 U

    8 Q( J3 F3 D+ F6.5 执行计划
    : p5 {2 d4 `( n5 E% i/ Q( D有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:9 T8 @; q. S3 B6 A+ D8 w0 i
    . _/ I1 i8 E! q  Z" y  d

    " T9 g  n# c/ ?这样执行后,就能看到执行计划了:6 E" p8 l% k: I6 y  y
    ( _4 Y  s5 n5 T

    $ i& k2 C$ |; M+ V  |% ~但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。
    * ^9 k3 y% X4 i& h1 i9 E. B" A7 o; T* `, O- H2 [
    8 X! p2 ]  W+ W3 F, A
    6.6 切换展示方式
    + a+ p3 [/ s' r% u  h: ]# x: U我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。
    5 W. Z/ t3 F8 r/ e- L8 k% I) n* V1 [" I: v
    5 u7 D- W8 L% W8 d; B
    这时可以切换到form view模式:# ?& h1 }7 ]6 o0 |% {+ O( ?' s* p

    - u. ]) u1 {5 Z" D$ t/ z% u

    * a6 R2 z4 _& r/ `- j% H* ?然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。- b% l% J3 O5 _5 e# k

    5 W2 {6 Q( H: O% y8 _* I8 x

    $ H& }* z5 F. T% o) P4 X/ M6.7 新增和删除数据
    , D; _! A( s$ {* F$ |, h我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。
    ; l2 s0 h& p0 V- w' ]2 C4 S1 W# m2 {( X
    7 X1 @6 i8 Z* y7 Y& n6 U0 K
    同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。
    / i; ]& W; i8 J/ c" C
    2 w2 _3 p8 b& ~& h
    9 {  B9 n- h  R% H
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。9 V% `% I$ J8 |& Z7 G5 m% F: q! A
    BAT大佬写的刷题笔记,让我offer拿到手软
    ! s# l2 F$ U8 p5 H————————————————0 G6 ]1 A5 w: S4 t* T( c" @2 _
    版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。! J8 n8 q& y: l/ K
    原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369
    # M. @/ Q& X; M6 W: x; K7 G+ D! T; [3 |

      Z' h8 i( |4 }7 Q; r
    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-21 05:12 , Processed in 0.662369 second(s), 51 queries .

    回顶部