QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2907|回复: 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
    1 @* B- S1 ?& t- I, t
    这个数据库神器真是太diao了
    # j3 I& t* M  x2 @前言% T+ R9 ^3 }& n7 c
    对于开发、测试、DBA、运维来说,数据库再熟悉不过了。' q$ k  f8 Z/ R

    ! ~" f# G$ E2 N* ?* ^; ]1 J
    ( y4 I7 i4 |) C9 S" y# v% A4 @
    很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:
    - c. M* s8 J/ b
    - [& s) i* l* W  P

    % {" i, ~3 |2 O5 H# d/ i% c4 D- {; _2 M" `1 H

    : W- j, J2 R# |5 l& ]& Q. A% K* t) g: a6 W
    6 h' ^! _( S* X3 C
    用过的人基本都会吐槽,太low了,极其不好用。( O7 t; ]# T8 r( V$ q

    0 j9 }6 Y4 W: Y5 ^' y2 g

    ; P0 U' }1 _, k! U6 I  T2 _* H" l- w' H写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。
    2 N9 j0 o9 Z8 w% b1 f: r9 D  S, K; N6 M( E! D8 I: [
    & z5 d' q; Z! Q
    看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。# U' c. T$ d% B+ }/ S2 W! F3 k1 o4 J+ v6 _

    . w* p' X/ x1 y- ?
    ' ?8 F- P' |" Q/ z- u% q# Q
    对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。% x4 H9 _! F5 u7 p$ S# Y* n% z

    ( W* Y4 `) Z6 t, e% w
    ) U1 O3 D/ P6 R: I/ i: {" N; f* i
    很难看出表和表之间是怎样关联的。
    5 p, [9 J4 y; T/ I5 W6 C/ V1 L$ Y8 t* h# N* P, `

    $ e3 N* f4 f- t; U导入导出数据就更不方便了。/ Y6 [/ f% E0 `. `) o! F4 L
    ) P! A) A/ p" B( e) o' v; {5 T6 A7 k+ k
    ; D* L3 F2 }* y( Q3 G: R' R
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    , L7 i% ^0 ~: }$ b) v1 UBAT大佬写的刷题笔记,让我offer拿到手软' \) a6 M2 x# m( e" W& r" l
    7 M* }2 m+ M- C4 G3 ^

    ( B1 ^) k/ o: i* I* D有没有一款好用的工具,让我们能更高效的操作数据呢?" ?0 p; q* v* p4 V$ S

    5 U; B3 y# r, s* G

    - j2 M/ Y$ P0 y. t' p  p* P这就是今天我要推荐给大家的数据库神器:Navicat Premium。9 A2 k7 G' C' Q( q! J
    7 F( M: i. P9 Y4 y9 b
    4 I# J+ ?% L0 S1 q* V
    下面我们一起看看Navicat Premium有哪些牛逼的功能。
    / A2 v$ p1 J0 r. k( l! J
    - E! I# u1 l& z8 v2 \; O
    0 D  c, i+ H; A: p! j: L" W
    1. 支持多种数据库% C$ }8 A$ G2 W& f/ @2 s3 F
    在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。
    + ?. m- |1 d% e
    4 E# G4 Y8 U8 L4 W7 P# t& r
    2 z3 w; v( |' O/ {& N$ E( {3 l
    点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。
    7 t( ?& O; Y) C+ E" b$ i3 {' F" ?/ Y$ m' m: |. E7 C
    : n8 O6 H$ }& x" [' Z+ L. d, E
    2. 轻松管理连接
    ' x9 W8 V! J+ p5 Z# H2.1 连接数据库. |! X3 Z, o( P7 o5 l
    之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:
    ! x( P4 f; |6 [3 K( L0 u1 d+ e1 ^% x- X3 e- T; w
    ; {8 l3 V4 [0 T3 d8 b- a
    mysql -h127.0.0.1 -uroot -p123456;
    $ d  T6 q7 y0 N
    + h" f% R2 C, y8 f
    % X8 P# k# T$ X
    15 x3 @( d: Q4 w
    2
    & b& Z' }4 A. U& L- ^- j每次都需要输入连接地址、用户名、密码,不觉得烦吗?
    1 j) d/ y: Z7 z. Q3 t. s! {9 n  P; b# z! g
    7 i$ u- @- O" S
    恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。2 z0 @/ F! o- ~0 J/ |, M$ ]# K
    & u1 @# i& B4 r9 F5 h+ e' W

    . I* ^- A4 R1 S5 d2 A1 k: b以后就能通过界面双击Connection Name,直接访问数据库了:nice。
    / E2 M* t% |$ X' o5 G) L! e% J0 M, I6 }7 ^
    7 I% l9 K. Q0 q; f0 n' N- R
    2.2 显示指定实例, N! }. L5 f$ _* S' @
    有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?
    + W9 z7 C; D! t0 |) Y1 |* Q" K* w
      l& J5 i! M9 J7 ^
    这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。
    2 D# X" C' B2 z* ?. e3 n4 q
    0 f8 R% q* e( A2 t' d
    $ j/ Y! T, \( e& P; j5 Y
    这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。" l, ^4 L) |( `3 {# O
    . j& i  v: J2 b; H$ B7 G

    ) s: ~4 b5 ^6 d9 e) E4 h! m3. 方便查询表信息
    & h! X! ]# S  n9 Z, f( k7 O以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:
    ' c, B( J/ O: M+ M3 V' G8 q* [4 F, Y3 j1 I: e( ]
    : w2 I# d% w9 d% H0 \
    show tables;7 G8 y2 L  ^+ S

    : ]5 [( J: k- q/ ~

    ) i2 H' A3 B/ P$ ~' ]8 q; T1 w0 Q6 p1
    . C# ~& f# Y/ k! ], ^24 _" l7 H1 q1 N
    2 k& X4 U1 z" W

    6 w# G: Q' w+ m3 Y
    # I; r7 a# }- }- F

    # J  W" {$ A( Z2 u5 X不好意思,那已经是过去式了。
    9 p" h0 f  \' z) ]3 u
    . y1 {* w2 P% x5 d$ t

    ; F$ J4 o  y2 T6 \5 @" x/ _现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。( v! a& i$ {% ?  j

    $ t# l! k6 i' x% \4 U  {5 ]

    ) _, F7 L2 j8 A: N$ z- w) I) s% C如果想看数据,选中双击某张表就可以了:0 B. K, {% ]2 v
    2 l; o. d2 B" b7 y

    * @. L3 X: L- t如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。
    1 h5 @% J  j$ E& L9 t' J) k) ^6 y
    ; d" v( f) o, n+ \% W; ?9 ?
    如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。
    7 ^5 l6 l( w3 n
    8 Y; q' l+ C' a) U  D" O

    : k# \" V& d- l3 A/ w比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。6 ^+ }7 E) Z( z; z2 ^, a
    , U/ N9 t. j1 `6 F% H$ a: Q
    6 r: P7 Q! e* f2 M8 D: D  M
    当然我们通过如下命令:) V5 u5 `. t' i; |$ I
    - x' _( P" ]( \4 o

    9 d7 W3 U: r6 t  _8 x5 Bshow create table jump_log;
    : a! _2 f. Y# B2 g. x! d/ n
    7 m7 R  C% _7 M

    1 \/ j3 k0 A/ t! Q4 {3 e- C" t' S4 r17 b% W# Y  _2 b! z
    2
    $ ]! i4 Y+ T5 f8 w也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。
      `1 L# z4 p# ]9 @7 y/ n2 l6 L9 k0 J" T7 Z

    . I2 Z* c& o# _4 r- w* j4. 数据库实例的ddl操作
      W% \+ P! W# s$ Q* S- \通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。3 h" b( ~# w8 J* u. Z0 k

    9 J  ]' X/ n) n% A9 D
    ( y& a! }* G8 w/ o- ^6 l5 h/ k2 e
    右键单击某个数据库实例,就会弹出如下窗口:& B* o1 D" I4 J! B1 O( n

    . s# q8 F% G# N! Z( `
    " f5 j; H2 q; k+ \' p$ ]" o* d; _
    里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。
    4 V) b3 S; A- F) t
    5 r2 L# j" [* v$ Z+ z# Y
    " c9 Z% m, N" F  i( S; Z! E
    4.1 数据库的创建和修改
    - |, V* B# j' g/ W% w创建和修改实例时,只需要输入以下三个字段:
    . l$ d& s+ U9 T% G5 l9 S8 y+ Z. K6 t- E0 @2 D9 R5 h

    4 ?% }2 s. l9 ~, R, {5 Y/ b  N$ o4.2 mysql客户端  d  g7 l" r2 \! p
    在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:
    ! m0 g/ A9 a& I  N, z$ ^' V9 ?9 s
    % _! Y- C7 d5 k
    1 V0 ^, g6 ?) ~  K( F. P+ v, a
    4.3 执行外部脚本8 g% h: ]3 b* O, E
    如果选择Execute SQL File,能执行外部的sql脚本:! b/ x: V" G8 a: Y$ ?* Z
    3 R3 o4 Z! |, X, Q: r* p0 |

    " @7 ]; t# C1 s* ~6 ^$ V4.4 表导出
    ' L/ Z( L' H5 W3 X4 W  O如果选择Dump SQL File,能导出所有表的数据:目前支持两种:% u1 g4 n4 O/ m! \* P# c( }

    " Y; r: f1 l5 |6 C6 ?: I  v
      @6 P0 K: o1 P9 L, K- E
    导出表结构 和 数据2 @1 U1 y+ o, Z: |( V

    9 `3 M9 R( F2 b5 k+ B9 y

    . D/ R5 p( d( c( a5 ?% f只导出表结构
    + Z" e% Z( A/ w2 z( P4 c: n
    0 H" {3 v' x9 H" a# V! k6 i2 E

    ' Y4 @8 x3 _% D$ Q4 g% Q3 r- }) P最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。
    , x$ c- `* f6 f6 U- @  t! t8 y2 c
    - s; x( J9 n% f* {( {: n* n
    ' m: w1 n" l; `/ ^/ b/ L0 U
    4.5 打印数据库
    $ b6 c- u% o. L3 E9 S如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。
    , ?; M7 g, F  z" n- L, H1 a3 t
    2 S/ K8 q3 ]" i8 w

    $ o6 b- a! a& g. i" P5 m4.6 转换model0 |# c. Z2 @( U  b- w6 U
    如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。
    % D3 f5 g: i0 w: ?* r# V1 {% `7 q/ [3 d4 r+ y+ ?, I4 X! {6 Z! C

    1 \" A( z# Q7 t4.7 找到数据4 I0 j% @* Z) ~$ ~/ g7 w7 m7 ?
    如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?8 r+ l# o! q! l  L! P. m; s/ ~
    2 G& ^$ p' D' [- P
    / R2 q! T' k  t3 \
    5. 表的ddl操作8 L& ]& F7 ]* k  V' A
    相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:
    # G6 G! {0 f# h) `# U9 M  |) g7 h
    0 m/ }3 D3 @  ?2 q8 u8 m1 w
    # c% \- Z- p$ [: s" A
    如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。
    # H* S6 t8 y0 _( m, ^# C, u) i. ~8 h; \; t: C
    1 R5 L$ H+ {- \! h& O
    5.1 表的设计窗口
    9 s6 o) d3 \4 N: ]; g' q' @7 ]如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。
    . T9 _4 Q( e$ ]2 X5 p4 s3 ]5 e
    9 f* T7 X) r4 r) `6 l$ H6 n

    5 ~) u: a9 D! }  _5 c" @* u它支持的字段类型有:实在太多了,列举不完。$ g  \0 e3 w9 k  I2 @
    & q5 s" t  S6 x' ]/ X
    6 Z, ?) M  M% ~4 c2 t2 x
    如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。" T, d) [8 ^6 |& \! t4 c
    # d) L- P! X% g+ Q
    2 T- v7 ?$ ^; }, P2 e- h/ S6 B/ P
    如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。
    3 e* Q  @# q9 I; M2 `& u" u' h+ X& ?, \% G$ {0 F( Y- Y5 c3 F

    % K9 _& [5 O" J+ k1 R6 }Comment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。& s1 J6 ^! y/ G7 J. w2 l* W

    ) c5 B8 F5 I) H* Q

    * j$ q$ l" l: t5 I1 Y" G, ]如果选择SQL Preview,也能看到该表完整的ddl语句:  Z6 n( l5 a) E  N9 G6 i4 g5 x+ P
    6 U+ {3 ?6 ]$ a  E; t: w
    2 F/ M/ U6 t- I0 E7 l

    , t* e- \, _  g+ }- y0 ?
    3 o* R! d8 ]4 r' Q
    * z) [, j! e: I( R) @. m

    6 S4 i( N+ H( I7 \5.2 表的删除/ [9 c* e# q9 n( _. R8 Y
    上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?
    6 p2 W' e3 }) P2 M1 j2 X+ B% _. v/ D7 Z7 U" g0 J$ l
      P1 }- L/ o. k" l7 r
    主要是通过如下三个功能实现的:, g# P! V& q0 y, x/ z+ j  U
    , c# Q/ N3 J  b5 E9 P2 O4 k
    0 k( A2 N) g7 ]9 p
    Delete Table:物理删除表
    3 T+ w+ g% ^* u' i2 X' p- j: a+ \& O+ {$ J9 u  s  g/ w

    ) `) q- |% D: M2 c# |Empty Table:清空表中的数据,但表任然保留
    ; g. \0 j1 ~7 g8 ^$ J* K
    & B! Z9 B5 @$ [! d! D- G

    0 V2 B' f+ y$ W" L1 nTruncate Table:逻辑删除表4 W5 B# }; G3 C9 c1 h' q- G

    , t1 o3 F8 f. m  e

    $ p9 ^% [, e! O- r- _9 W' j( z* s5.3 表的复制
    ; \* g/ i' t; Y' o有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:& v" X+ ]0 E+ Y& j& o
    $ `6 Q8 I# @' a7 v4 ^# d
    4 b' h/ @) I( B; i; Q4 O( @6 {1 a
    如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:" A, N1 N, K0 _4 d9 d0 ]1 x

    / G0 S: y( |0 F+ e3 Y1 J
    + ?, `3 r+ t6 P
    % m: C5 Z* G6 u
    8 a( T7 Q, j/ V/ ^& v6 {4 Z

    ) t; C7 c5 u$ G6 \) c

    3 ]6 }$ N) p+ ?( a) J2 f里面包含的数据跟原表一样:* ]8 g8 |- |" c/ g
    ! }6 V( V+ K6 S( `+ U; \

    ' Q6 z  y. s3 ]( F( U" l如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:7 n1 T, Y8 r9 K' K9 n, k

    " H5 `2 ^* T+ D& `  b1 D! Q
    # ?7 j; O/ j$ M, @( O- \
    5.4 数据导入
    3 w1 y) u0 y) m" K9 `% n2 t在实际工作当中,我们经常需要导入数据。
    / ^' W  w% Q) x0 P. M% l8 n% _" z' G$ `; c0 O
    - p# w0 j: w4 f; e* p$ S! ^7 u0 x7 G6 Q
    比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。
    1 b/ b2 P. S. ^% [, y8 }
    + V* V+ T, ]. J) M
    ( Q/ d0 m" w6 ]( X6 C' X
    我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:
    " S- m; T& N$ [; @7 t3 G% S- F+ u8 k/ J; J, d( V  c! s5 e
    2 _5 ^% w* \# H& C5 D- P
    可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:  m* R) M- D% }. f. }! \9 Z
    9 z# Q% S8 T7 r5 G
    : L# F; B" \  n6 Q! H- @
    5.5 数据导出6 h' I8 _' R- c6 `; Q+ K
    在实际工作当中,数据导出的需求偶尔也会遇到。( r- \% f; Z) L2 v) C( }, ]6 Z
    . M1 W; x8 h8 S
    ( U( W4 d9 r  W4 Z3 Y  J4 h
    这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:9 i0 A1 W3 }, p- G

    & w) q. ?/ U4 P7 m$ f! @3 l. t
    ! R! }% c: ~6 k: H1 g7 b# k/ G
    可以选择要导出的表和对应的sql文件名称。: G) P  T) x3 t2 V! J
    7 V/ q1 `6 {2 K: U! Z& b% `2 x
    / i$ c: Q) o% z0 z/ c
    接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?
    - ^- ]; X$ k( p/ P- h/ |
    ( u  \; L0 g0 Y1 D9 T8 m
    - P& r- L7 i- N2 ^! V, B, t; B1 }) i
    6. 表的查询操作& m) n! H) |* Y; u) M+ U
    查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。
    3 ^9 a/ e9 \% K- ?
    ) [6 h2 v: {7 T1 p& n9 D

    6 R: C3 E7 ^2 l& J选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:
    7 D/ x$ A- c7 u0 v+ @
    4 W+ [, M# b2 g! H4 p

    7 `3 k- g( d2 d2 S  i6 c6.1 执行sql语句:
    2 Y6 _% A* ?4 a8 \" J. V; W* e+ N" P在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。
    3 S$ g5 x7 d; ?) [  k
    / o; ~$ w0 P$ v* M
    2 d8 j. D: p, s! E
    虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。7 D4 H3 R9 i+ E5 }* u
    / V# c: V3 W, _0 p5 V
    # \- a  u, M% p
    6.2 保存sql语句:
    ; q1 V% R/ P% O2 ?* Q. C有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。7 n2 K7 B6 `8 R. w- X7 N" L* e
    / {- a$ }: P1 r  K4 g( b- L
    7 s  Y( M7 N5 o. r* r; X. _  \9 N5 D
    这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。
    . t. h7 c2 [) l* v" w6 d7 d# m. M. Y+ K5 K* U
    2 c5 p) B* `7 ?
    这样以后就能在Queries中非常方便得找到该sql了:, z% P5 q  v1 Q* u; v9 g

    9 O# k% N2 j# F+ u3 i9 O0 r
    , U" P. i% W2 u1 c% V) H' p
    6.3 快速关联表
    5 n) _& j* [% _$ U我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。
    ( ?# }0 f7 b" N8 {( u+ ~8 B$ Q
    * J6 e0 O. K5 I

    ' c- H7 t& t$ h% d$ |这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。
    ! t( h$ {7 ~. f6 P3 z! V  i( i' A0 R- \
    ( T, E1 c& p0 t8 o
    难道还有更高效的方式?
    ) b, D" L- a' i! U, _9 a% o( O- h) f, @5 f' j: \

    7 [8 B, z% F" c9 |9 w+ n: D# s( J点击下图中的按钮:
    5 r7 X8 |! L/ _' E4 U$ [; g7 B6 D3 |" M. ]. e  [/ C0 n) y  c

    - c/ i, z& \+ T, A5 M会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。
    5 D: s1 P. F# [4 j: e- g0 R- @) s* o  r: @! t
    + B. P/ h- E9 P! }4 t1 g* h
    然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:
    $ T% n! ], a9 ~# s( z5 D
    " L. T/ k% y7 h

    , C& }' L" g8 q' X# w, B' x! j太牛逼了。
    ! z. M, @1 [* Q4 Q; A2 b, w! R2 U0 I. {; {4 i

    & u$ t+ C( W# ]6.4 格式化sql语句
    9 Z$ m- V+ ~1 f# [! d  ~有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:
    ; \5 B) z6 x7 Q- w
    ( c9 O8 S. B' B4 t

    # V6 \' Z$ O" m: [看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。" D$ `7 @9 A3 `# f5 ~

    / V9 \8 R& d; f0 y$ c8 b

    - l' a' h! c) X, Q1 c8 L2 h9 {6.5 执行计划7 `' R  T$ d" W" l
    有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:
    : S# X; Z# F+ C) e1 R7 L
    - o, g: n1 e/ p7 A

    0 H) P# o% A% }0 J/ P3 G9 N这样执行后,就能看到执行计划了:# d( B& L6 w9 u
    , I7 v& u2 r+ {' n
    ' W+ g- N4 p; J5 |8 Y1 q$ O. [
    但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。# @  Z- H5 e; ~' ~

    / Y4 ?' ^  F0 `  `* V

    ( L9 |: y6 ~% {- ^0 ], x0 K6.6 切换展示方式( P" q( I( ^( x6 r: r  U0 G
    我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。' V; h. G( D0 p- i; U
    . K' l/ Z8 _3 h$ g  |! W# E

    / N! \7 m( h6 g3 l9 H这时可以切换到form view模式:3 A1 @; ]" X$ q3 K6 M- q+ N3 w

    & a. X$ f. r+ x& V+ |
    2 P+ q1 }' T  v. `  Z: N! V
    然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。
    * w( c& G, \9 X- ?( q& ]2 t: p: v2 x* ~: T' h

    9 \) Y* M5 w/ H6.7 新增和删除数据
    % b4 S, D, N1 u+ K我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。2 N+ W3 Y' C* {( y+ l( h$ L# H

    4 ~( L8 b$ m" n$ r/ r
    7 m2 Z) U* @9 O; J
    同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。
    1 I& k# V+ r4 ?( y# {0 J  S% r8 b% u
    4 R, P: I8 g: W+ e3 g

    # |  k4 ~+ S) {% D( n+ _最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。+ n0 M* X8 G' e' C7 Z
    BAT大佬写的刷题笔记,让我offer拿到手软- M4 g& ?: k/ A6 @' Q$ M( l
    ————————————————3 @7 {1 Q0 P0 U2 i. N
    版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    7 q3 m7 V1 l- |* ?原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369% Y' o7 w% s: U, P

    + T; S5 A8 [. N% L6 ~3 }  u/ F+ R* d8 T( B
    ! G! J! V8 n; x% M! F* k* h. }
    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-8-3 03:10 , Processed in 0.583621 second(s), 51 queries .

    回顶部