QQ登录

只需要一步,快速开始

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

    - ?. J0 [0 P) p. a2 E+ x5 ^4 J2 G; [这个数据库神器真是太diao了
    2 G8 n' ?5 ?6 |7 S前言7 j( i$ |5 P7 Y4 ]0 t/ ?
    对于开发、测试、DBA、运维来说,数据库再熟悉不过了。  d2 i( g' Q% w
    % u" z) D9 ~& v( h: V+ o& v
    ) {, J* }0 A# J: t  k7 M% ~- r
    很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:
    + ?/ C- Q5 a, C3 A. s9 c2 {. Z2 F6 u$ M2 X/ M8 ]
    ) v$ p' J( c; n) P9 W

    " w2 w# L! \. D
    $ G; E: v& {' Z
    / V0 }( ^) I' `8 W! |) }$ V) o. F
    & \* ?4 C: h" t9 i' G) l( p
    用过的人基本都会吐槽,太low了,极其不好用。2 a% m' y; i6 |0 T6 V$ N
    9 }/ s& n9 a+ U5 R6 M; L2 L
    % y9 u, L0 i. C
    写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。" `4 N# ^% Z  ?; V

    9 X* ~5 k1 F' d- o8 D8 h- ~

    2 D. G7 L1 }8 s, ]看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。
    6 ^2 @5 W6 y4 M" ~* r5 Z; @
    ( ~3 D! E2 m, f7 j$ B/ E

    8 I3 W3 ~# l+ O9 S: x. r对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。
    : K/ o' }  }" Z* S0 J5 N5 q) O& D  |
    7 b4 q. l: ^  K7 y+ ~
    很难看出表和表之间是怎样关联的。+ a0 h6 a9 V. ~9 q" P. }  G

    # S# `/ f6 R! `" `+ w4 V

    + E$ W# e/ }: W& l/ h导入导出数据就更不方便了。
    ' b+ E: `- W% @: Y3 C* ]/ a
    1 D5 }2 n1 x9 }" C6 ], ?" E$ ]7 K

    + U+ G1 ?* j' N6 A& N: ?最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    & B' x  i0 J. U/ G9 lBAT大佬写的刷题笔记,让我offer拿到手软- m, l! b9 F2 N( n
    7 _/ s- R* n! r) s4 z7 |* B9 U1 I

    : ~  A/ W& y/ a0 l: s8 v有没有一款好用的工具,让我们能更高效的操作数据呢?. m5 @( _2 C: x# R# {- r+ V6 ~) z  O
    4 u; q. f. Y) w- F" k) X
    $ ?. T3 j8 ~& q" ~) j% I
    这就是今天我要推荐给大家的数据库神器:Navicat Premium。: D, n* X- ^+ z$ v+ i, M

    $ A; b1 W- @: W1 o$ Y- i
    7 s  N" {8 D" z  U- h8 U
    下面我们一起看看Navicat Premium有哪些牛逼的功能。) i: }8 v" Z8 d2 {8 Z
    8 F" @/ n  }2 k5 y5 Q* F

    7 v0 _; ^" H+ C+ z" k1. 支持多种数据库
    * L! C& h+ G8 m/ R. d4 U. g3 G4 B在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。% p% F: a$ w/ M1 k4 x& G" ^
    " c; c) ?' @, i$ y* y
    5 a8 J/ X! U& j+ i9 n/ y( g
    点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。
    ! G+ \* g* t! [0 C" D! }, I" n2 n! I. ?/ U: H/ L4 v
    ! ^  m* O0 B5 t* E0 ^
    2. 轻松管理连接$ ]' ~% N4 E$ \. f  a: T
    2.1 连接数据库* K4 d, m7 b9 y" ~
    之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:0 R* t3 Y9 w; U$ I
    5 o9 w; c6 i# t4 k" ?

    8 P, d" I. ]8 S6 o7 smysql -h127.0.0.1 -uroot -p123456;
    4 c7 v( Z3 M! m* M3 p; c3 O- c! p1 g8 U! M1 o9 p8 V  w

    # M& Z) L  g7 X. b' j12 w0 i* P: [9 h
    2
    3 k; ?# d8 k" o每次都需要输入连接地址、用户名、密码,不觉得烦吗?
    7 g' Y6 L# j( a$ q' G4 ?/ T7 {. }; ~7 k/ X$ `
    9 Y7 `4 u+ ?# ], m0 Y
    恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。
    3 Y  x9 O+ S  J; @- h% |2 P
    4 `5 X! [$ y, l  V3 K; i6 j% n9 V
    2 }7 A6 I) ~9 B; V* J
    以后就能通过界面双击Connection Name,直接访问数据库了:nice。
    . _+ ]$ w1 m9 k0 n, V
    0 Z9 m" X' T# h, V1 Y$ ?+ c# F. C
    6 n% Y" B5 W$ E
    2.2 显示指定实例
    7 `) U; O# ~3 V1 c9 b! B! h有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?
    3 r# G! A9 c8 V8 e# a- x; _: t
    * P( n7 T5 _' H" A. x8 B5 ?' n7 A6 R

    7 n: F2 M4 C( A% f: B+ @+ y这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。- K' Y4 {/ Q9 U) ^6 S" y% z

    - C# x* `. X% a8 g. v2 ^
    ' G/ a0 m2 W! Z/ F* A1 R7 s
    这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。
    9 E# Y- d! z% R) j3 p# ^$ I( n
    4 M. R; S+ T( {9 N( d
    # k9 s$ A1 P; ]9 g
    3. 方便查询表信息( }: S' r) |$ M" g) o! b
    以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:
    0 f: y" v) S+ c$ n/ l: V
    * c$ S" G2 W" Q/ p/ N" `; }

    # H9 R" k: B% G5 ?6 Nshow tables;8 j! T$ ?  P" n+ A. b6 I7 Y( I) k4 U7 B# t
    " a5 b7 h8 e  H$ H! Y0 y

    , `/ Y- w3 r, O4 v1
    . U5 i: O( y- r* D8 h" x. \2% `! B/ a+ F; T7 w0 S2 a

    . m" @5 q2 g% z+ N  D6 _

    $ U3 i2 `3 H% r3 A' i$ _3 j" C% v
    ( S3 E7 F9 w, t: j7 h1 j

    ( o" B1 L& f% Z# N6 y" Y4 t- l不好意思,那已经是过去式了。
    4 e( `( e( j8 Q' @, \5 N4 k# R
    ' Z" ^- u# m6 M; h% U

    7 _& M/ m8 e( p6 }现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。: G" ~0 S; U) |- U: r, H7 n

    1 I2 _. Q* {4 S+ w5 k6 C5 `: k

    5 t4 D& l6 J0 D' r& `$ h如果想看数据,选中双击某张表就可以了:
    . _) D8 Z; Q1 A
    $ _- o# F+ w, S) J( h5 ]

    - y8 ~) Z  l1 _, G5 C# t- Y! K如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。; D/ H6 V0 G; l( F' V- u
    . _2 L  z" M! Z3 F( u0 b
    3 V# t2 S/ C, z6 `1 P/ N+ ?
    如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。! v( p1 G+ e+ D. \8 E
    7 h; D  J" J7 ?. Y. a
    + D7 g0 u; U( B: X# i
    比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。
    ) Z5 k8 c! m! r+ ]; T5 x; r
    8 q+ Y+ X: s. e5 ?5 V
    / c3 [! t) w, e. e. M5 F1 Q
    当然我们通过如下命令:
    & L2 L/ x* |% S4 S- g5 u( o. z  r; A) x# v- z- z: _' W, Q
    + o5 i' y7 ?; i
    show create table jump_log;
    / v1 [, e* D+ \5 _3 t
    2 G! s, j# `8 m0 b

    " }) F) f) \; B- Y1
    ) J% `" s9 g' x7 X# }/ W24 ^: r  y$ W% C: J0 [+ q% O( Z
    也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。
    7 N9 U' E9 `# e0 H# l7 V4 e* p- a# z- ?& ?: q
    , U1 ]3 o" H/ p, Z! j3 k
    4. 数据库实例的ddl操作$ q2 U  s. f  }0 }0 r+ s7 V
    通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。2 i: ]; m/ g! u3 K

    ' L2 ^9 b( v% [1 n. G

    - [/ i( e0 E0 i( |: w' r. K右键单击某个数据库实例,就会弹出如下窗口:
    . w$ f1 N' q' F- H' \" Y8 K6 Z9 b6 }3 b3 |( O# t5 ]+ D

    4 i. `# w& q9 f( t) N  F! Q/ h4 _8 U里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。' e$ i" l/ }9 W) \9 y- a9 a. h

    ' t4 A4 K: [+ f! t
    ; M- g& {6 D# ^
    4.1 数据库的创建和修改
    + `" I2 l  ?6 D  }- D6 R2 L创建和修改实例时,只需要输入以下三个字段:
    4 i" T1 V, r; S5 f) }3 d8 Y# k  Z# ]% Q/ f5 a& q! u0 Z4 R

    4 o- D, Z, ^+ u' n4.2 mysql客户端
    5 M. D: z6 k5 B8 s9 T在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:+ Y; O- R9 K" e1 n1 v  m
    $ q: Z* z! q6 w# m; y

    ; r, z* R. Q% J4.3 执行外部脚本
    6 j4 x* ?" `$ ]! I2 s3 n如果选择Execute SQL File,能执行外部的sql脚本:
    8 H+ x# {* r5 O, ]
    ! x2 H4 ?- g( W0 U/ n6 a
    3 ]. _. c, [  f. y5 P4 b. M7 E
    4.4 表导出; W2 T1 k$ V  I0 p
    如果选择Dump SQL File,能导出所有表的数据:目前支持两种:
    5 s* I: B$ X/ _' o, c  D$ n8 }7 c  i% I6 X, z

    2 @5 I5 u8 D) D4 F3 U+ ]2 C, x导出表结构 和 数据) s- E: M* H' w
    + N9 V; x) _) r* b5 E; e& v( v
    - {: W7 x( e$ x" Y
    只导出表结构3 o  G4 G9 x5 W$ P
    1 s/ F+ ~5 Y4 G8 m0 X' k

    & Z5 a& ^) D1 D$ H4 t8 u最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。
    # {  C3 {. b5 f" I% O. @# G9 _/ N5 i4 R: s1 n1 U" D$ h
    ' o$ T( I! q+ u- K0 W
    4.5 打印数据库8 e# `; O, j! }' c
    如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。
    + B) [( x9 N" h2 `! r9 `9 {* Z% M+ O! A
    3 R' K- N/ y% i- g  j/ ^' B
    2 o" x+ n( C! m) F
    4.6 转换model( W9 ^1 o  v' Q7 C1 w
    如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。; z5 G$ j4 P( R1 w, Z) D" ?

    # q/ b9 D$ \$ u% k3 S

    ; m! L+ X! T( k+ e% I  m4.7 找到数据
      y& X# j2 m. ?9 b如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?" n2 g1 ^4 T  A2 p& f$ X* u

    ) d" k+ E) m1 D5 y( g% r. I

    5 |+ b. @% Q( K. M5. 表的ddl操作% ]. b- t$ E+ S
    相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:! ~% D8 _" k2 J
    ) i2 X+ R$ P* l/ v
    - z2 g. |% o3 ?: P% N2 C$ |
    如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。
    * f5 ~; z- r4 g1 \3 @- E  k4 j% g  R4 _* Y7 Q  l9 K

    ! m2 o  y+ ^8 t* ~' J! r* T, X5.1 表的设计窗口; n5 t7 ]; H' f: L. k! `
    如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。
    ; U5 O  M, H1 {& q4 l( W4 M; i1 R$ z

    8 }. W% {; F5 J8 C3 y; H$ w4 [它支持的字段类型有:实在太多了,列举不完。
    4 L! \' F: }7 o# v# C  B" _5 j. p3 V  h! F' p

    * |+ G3 F' z+ F* @8 S+ @如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。# K0 ]5 h! Y8 M

    ' I, k8 L, n8 K) s  z7 F& L
    % f$ |  x( J' [& n3 ], n
    如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。$ V' y6 P1 M, L9 h
    * ]) @. O& e0 y0 J% I5 d

    9 L& a8 X4 ?- `3 Q; cComment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。4 C: A/ t8 N8 q5 u$ s( b
    ! X7 o: n7 ]- N1 j3 R# T
    + b3 i$ ~+ n0 [1 n& h2 g
    如果选择SQL Preview,也能看到该表完整的ddl语句:
    * @5 ?3 k1 j) ?2 q7 c. o% H
    + h% f) I% a* J
      i# {  v) P* S' _" U" ]: R$ m
    ! y# m7 U" P0 e0 Z& f9 J
    " a3 e2 Y. P/ ]
    - Z8 F4 ~6 u; j" b; w" ?9 P

    # x6 k; S( w: N- r' ^- o' I. G5.2 表的删除* ]) W: h: y: M$ t4 g& r/ ?
    上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?+ t! J8 _" n7 g  w; ?  w
    * H1 R" ~- T' W. z  e2 Q/ j+ r+ \

    ( q6 A2 E' H; k# |# z- G" u' m主要是通过如下三个功能实现的:! c3 q. ]* [8 ?" L2 W2 V
    ) f$ Y* v  Z* L7 n
    ; j% K" @0 ]6 f: X( ~$ p/ _& O
    Delete Table:物理删除表
    $ _9 t- P2 k4 Y. y1 N' I& ]+ y' @, ]# D7 U3 ?
    " h$ V' M$ w( f. B) e
    Empty Table:清空表中的数据,但表任然保留
    / x! N# ?9 @- k3 h8 [0 W% H8 _( H% W/ r8 Q3 X9 [; L! x, q9 x

    * J, i* g/ w" }* g; y' U+ \Truncate Table:逻辑删除表
    : k1 o  g0 N$ B$ f3 A" ~
    & z  ?7 M& O; Q
    0 E: b6 ]. F4 q4 t+ q. g( p4 j! N
    5.3 表的复制
    6 Z# q* V# M: l3 \6 I' w有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:' ~! F+ }+ r# h) m1 Z

    , s/ U9 s' G4 e" U; x% ?4 y" z

    : E8 j: Y: ]6 g! |6 i  m; A6 ?3 \如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:% q" R  l: M) u- x9 \! q1 A
    ! M% a6 S8 ]: e; |6 a0 n. n

    " Z9 I' G1 N( C1 U+ \$ s% }& }2 E, \% S' F: ^) L' K" z% p

    ; |! C3 m* ?9 X+ N
    ! ^9 Q9 b6 F. A+ R3 O7 v

    1 Z" ^1 u' F- K/ w里面包含的数据跟原表一样:; A5 z" W" m2 K2 K
    4 _5 y& q% Q  x& u' Q# i

    * k3 `: t5 ~% F. m如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:
    4 q$ `1 x6 z1 o% J9 E' w3 F. H0 P: k  y  H5 k/ X. v7 O; [8 c

    ! i! ?# A  ~% p8 _0 t. |5.4 数据导入
    9 }# M2 c7 Y4 S4 x  u0 U# m在实际工作当中,我们经常需要导入数据。1 q' U9 g) y! A7 a9 F

    1 v. g2 z1 L/ E- H

    4 L$ b7 |" y9 i, ^/ F比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。; v1 a" x: x  p- R

    8 ]& Z0 n2 Z* R4 ~/ f7 V1 f

    # u& @. d. }4 n7 _/ R: A6 G( Z  F我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:& z& }# l" i' x4 K  b  d

    4 n7 ]+ _; P: E- w: X
      N, C7 v2 R1 l* c+ d0 Q1 m" J
    可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:3 p, n+ `' n/ [* Q9 u: w

    3 G7 T+ ~. _' }, c

    * a( K: y+ l5 ]5 d; h. o8 K5.5 数据导出- x) X# m0 g; v; l4 U4 b! @" l
    在实际工作当中,数据导出的需求偶尔也会遇到。
    6 ]# r  g9 I! k6 ]/ R: [5 u7 v2 P5 u, g4 c
    ( ?0 Z) z3 D0 S
    这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:: |4 L- ~" Y2 `0 G1 z$ h& X0 x

    - i  ?% v+ v# E  z. E+ B0 V5 i7 _

    2 B8 Q" V0 o4 P0 v; B% M% e1 A可以选择要导出的表和对应的sql文件名称。# Z  d" d( O, f" \, B/ a& L& c, h
    4 e' m' x9 p5 f( v

    8 R1 A1 [0 e. ~# n+ a接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?, F6 G6 F2 i( p( Y+ `2 p

    ! [9 E$ {8 |- q3 r

    , a3 D/ E8 j2 K6. 表的查询操作( ^1 L' {, S9 Q. s8 t$ k( f. p" _
    查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。
    ! Y/ o, A% X" N0 O4 J2 V3 E5 `. `* _6 f

    7 S% P" O# H% ?$ A选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:
    1 ^/ N6 z5 ^5 a. Z& `
    ) J4 G/ ~8 h6 T2 H& E) [, g

    ( _9 P  j' t1 E' ?5 t. z6.1 执行sql语句:
    + u: a% g2 Z+ k9 u/ j2 {在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。8 @6 `, u! ~5 X/ {
      M2 L2 Y& v$ G! i! I3 A& h

    1 |5 C3 d( l+ E# C8 c$ ]虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。+ i& N# a& W- \
    8 W# D+ E( V0 i" w6 {2 z, U
    6 ~% f7 K( |8 [
    6.2 保存sql语句:
    : Q0 A" N# f3 ?+ b, ^有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。
    : `3 e! T# M4 a  D1 [5 n2 [0 m. r! W( d

    & E- {" n9 W+ t" \这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。& }, h$ R' s( K4 A
    ( V! p7 e8 p2 E* h0 C

    & y( n; V6 N1 d) V3 s这样以后就能在Queries中非常方便得找到该sql了:, T( U. {/ _9 k! Y8 g" O. i& K( z
      h9 Y' a* [8 V8 ^/ n' a. B8 X; y% c

    * O& f- E. f. c5 |6.3 快速关联表! C! Y/ e: M& M: k
    我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。
    4 e: W' C, I$ m8 I9 O& v0 T; q, n2 g" M) P
    & B  x! F7 ?3 p4 j" t
    这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。/ b* ^2 C: F+ x6 f

    , ~4 V1 o8 \* [: z

    # {% E$ {& m# o# `难道还有更高效的方式?
      s% s4 @- q4 A/ s7 L. e; R. d/ a; h" ?) k; l# g

    . q  s; C4 ^9 x1 p7 g- n7 X点击下图中的按钮:
    4 u  v3 J9 k8 K' ^9 s' J9 |9 g
    ) f3 u- z; {) A2 `6 ~0 y! D% ~

    4 s5 C7 V- U! @* `+ @3 S0 Q会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。
    ) e0 q; s% f0 g4 `4 z! ]1 a: S4 y3 O0 Z5 X
    & i! Y0 s! L: u
    然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:
    $ d; Y8 a6 D" |. K3 ^
    + B* [7 G2 S& V& f' k7 [% }2 i
    5 z0 e: J: H* V4 [+ i1 o3 }
    太牛逼了。# A! D4 ?0 E3 p: }1 a7 F; T3 ^
    . S2 u" p; a1 H) w/ A

    : C! f" F( X! j. y% ~' r6.4 格式化sql语句
    ( A. ]6 ~% P; s+ l; e6 a# v7 M' ^/ Q* g有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:8 _" U1 y' S7 E( x
    5 M$ n. C1 [# K8 S" x7 ?7 q  I
      X) Y  Q3 ?* B* Z
    看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。
    ( ^5 e% x" n6 T% q* C8 Y2 C
    9 m/ R+ h6 f! a2 p5 N2 b8 J

    ) D7 W& Q# Q# f$ @, w6.5 执行计划! A- V0 r5 l& C* [
    有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:
    9 @: s- a; P' C* N9 G9 M2 m% T- G+ s: g$ X5 P6 l1 G. k
    5 B9 J7 ?7 ?: G9 ]
    这样执行后,就能看到执行计划了:  u1 ?( C0 v  Y0 ]* n
    + Q4 G1 v! N- M

    , z( u( g, d4 ?$ f/ H! C; q* K但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。
    ) g3 F0 Q& l5 Z5 A4 J, Z, v" x# T3 A$ ^2 T- W: L. q1 k4 ~% ^

    0 H4 r5 G8 n) d/ N3 H) d0 o6.6 切换展示方式- X% i9 x. N# O: i& r7 K# y, G5 ^3 `
    我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。% v4 k) M! E0 p2 L! T* c" a2 i$ i
    & g) f- }0 }' j' ^7 _; y3 p3 T. ^9 B
    # w. n4 h% }2 w7 n: ?# b% E/ q" S
    这时可以切换到form view模式:
      h+ x  q% ?+ ?3 c6 `6 O  u7 G: i# v3 C& t2 \) i. W9 G
    1 W+ L9 y( P. U
    然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。, j2 D, o$ T9 W5 o, ]

    2 G' M3 S. ]4 `; Q

    2 k  i4 E" }$ E8 c2 Y! a# ?6.7 新增和删除数据
    % g2 E1 u5 U, k0 Q我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。
    , \$ e  n9 V/ d4 |9 l' v: V
    3 ^; n' s. X" f2 K6 ~

    8 u' L$ A# ~6 M4 W同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。9 o0 Y  A2 h6 r' e$ f4 C) |) D

    - @8 C+ ~* N# q- X! Z( P% x! a
    - l, Z; C5 S, q, F0 j7 _0 `
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。+ y* T2 Y$ t& m- a
    BAT大佬写的刷题笔记,让我offer拿到手软9 A. ^6 S9 G7 \( W; l) W* t
    ————————————————5 ]. m% U; {0 g/ |& P3 t. P0 I
    版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。4 A7 `* S& V9 W; O
    原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369, Y6 x% ]. X# n' j% e8 Y+ o6 l
    7 m4 w. ?2 @/ R3 A4 p
    ; a& R: @0 x) {/ A4 O/ ?" h+ w
    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 10:22 , Processed in 0.381086 second(s), 51 queries .

    回顶部