QQ登录

只需要一步,快速开始

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

    - ^) e  c+ F; s8 L! E9 ~) W这个数据库神器真是太diao了
    9 y, E1 J$ Y2 [6 K前言" f% I# p$ W& P
    对于开发、测试、DBA、运维来说,数据库再熟悉不过了。3 l, w7 e/ i0 Q# K3 I# S3 r

    2 ^. s- ~- {; g" N

    # @! C" w' q' s  `! e* g很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:- U; V0 z$ {" o& r

    ! ^- X3 a* ^7 f
    % p. U' `: {; {( n) n% ^& }, t
    ) g# [1 G* B% P4 z5 r* R
    . K6 e% ~, e/ ~  q. J
    6 s8 U# U- k% Y8 L* `
    3 U3 n; v8 }2 h  K* M! t$ g) e
    用过的人基本都会吐槽,太low了,极其不好用。
    & J9 }. F& m' `% A( I# b; Y: o5 b" j

    % `2 y7 Q3 ]6 A) y" k$ J* s1 q8 V' n写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。
    1 X5 X& o- X) T6 X1 w- y. Z' y& O" Y8 Z
    / [6 @. b3 H9 i6 h: ]8 z' @

    ( t) T5 u' r% _# ~3 j7 p看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。
    * R6 N+ M2 @9 @0 n. I
      a: m: O! U3 V" @. W" V; [" E, H5 h

    ) X% z& o) p7 G% C% {对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。
    * q  D9 R7 D6 ~" E$ v4 C1 {& I) D8 ~. n7 o6 Z% j
    - r8 h9 O7 u" [" |4 |
    很难看出表和表之间是怎样关联的。
    1 p3 [! a4 X  O; b1 _- ]
    . N( P) m+ F2 B+ L0 f

    ; X2 |0 K; R, ?! n  y& S导入导出数据就更不方便了。; R& M/ Y3 L6 H: m3 f

    ( U9 A% Z  p% Z3 R: U
    / w# e* C0 y4 D% W$ Q! z& @
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    9 D3 o! z! H: bBAT大佬写的刷题笔记,让我offer拿到手软0 @: \$ Z- s4 `* ]
    # e. E( I) D% r, }' B% N

    " [1 j1 I9 h$ Y1 y. K3 \  n+ z/ q7 m有没有一款好用的工具,让我们能更高效的操作数据呢?
    1 e* |5 ]& C6 ^. H3 n; Y% r3 G3 @/ x- o2 z. r

    1 o$ L: x1 m$ Z( G% H" c这就是今天我要推荐给大家的数据库神器:Navicat Premium。
    : a- N: g6 u; P  _+ Y8 D  {. h4 `. M! ^& g# i* |5 X
    7 I/ R/ V% M$ I- P2 G! n
    下面我们一起看看Navicat Premium有哪些牛逼的功能。# K/ Y( v/ y2 ~! r( w) Q" F
    # q  X- E" A' u& A& r. Q

    5 \3 {# X' F% u1 l) }1. 支持多种数据库, h* s) n! k* \/ S. K
    在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。
    9 c8 d) _8 c; M) m
    4 g3 ^& j0 C9 S6 a4 ?+ o+ c

    : A, u4 S& B) O  K- W点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。
    " I7 e9 C3 h3 y8 v
    5 i4 s: q+ |9 t. {9 _; j

    9 j8 `5 _$ F- @- X3 s7 L# C2. 轻松管理连接. ]0 z* j* L3 o( q8 _
    2.1 连接数据库
    9 b! N$ X+ _% v7 p8 Z4 f之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:% X* I8 k, x3 k9 M: P
    / |* ?" |' a7 U4 w5 Y- `& B: Y) D

    & T3 }: @: f" H0 N3 }mysql -h127.0.0.1 -uroot -p123456;# v9 }# F4 M0 a8 @
    . ~. ^& n+ @9 C" r5 M
    : T" h- L- ^4 T" ]% a6 y
    12 A0 O' f7 l% b4 n$ M
    2
    7 O2 a* ?1 k: K5 p- A) \每次都需要输入连接地址、用户名、密码,不觉得烦吗?: _! B+ ~" Y4 h+ b" `' v
    ! j7 m" z5 n. b6 ?

    1 m! D  U: v# }; M1 N恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。  a4 S9 _6 P8 K" D: |
    " _  ~6 b# O5 l  E& j' x

    $ z) A  e: g2 j! ?( h/ |以后就能通过界面双击Connection Name,直接访问数据库了:nice。+ }: c) ?1 \5 C9 ^0 G4 k" f9 X

    ' S+ U; f! W7 h9 z: {( Y

    ) O. {8 C8 G( K9 M7 @8 Y( q( W1 L2.2 显示指定实例8 Z9 x  F& f7 k
    有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?
    3 m0 q1 K  ?  S# z8 [+ P9 X+ d* A; D' D9 \4 `$ L
    & J4 _: I" e% F- Y+ A( ~
    这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。
    % c( Q: i: Q" X8 k' T; f+ T/ |
    1 j. J3 K. \4 _- ^7 J( p2 P
    . H8 f( a  v1 h# Q2 x
    这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。
    ) V" ^5 N! S/ Z1 ]$ B! P
    ' m, N* W; }3 _5 Z7 o$ I
    0 G" C0 I$ t0 l6 T0 Y& |3 {8 ?# a% r
    3. 方便查询表信息
    4 S' b1 n5 B) u3 J/ n0 V& y% X以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:, T0 L0 u2 S2 x' L# [* T# j  V

    + B. _: E( K  M9 c( D
    . R- a& c" h2 V  z1 ~! z
    show tables;
    + J% z. L) x0 E5 t4 \0 e, `
    6 t( n! L2 U8 d

    8 }, r+ ~4 l5 z3 o0 R% D# o1$ \* l3 f, M( {4 c" `- m( L7 p
    2
    + k; l; h) C+ g( I+ _' }" ~4 p* ?
    ; D8 i3 S. ?4 ]( ~& x! p
    / R+ t. d: o* \8 Z; [

    $ o* I9 _2 L/ t0 O% E
    8 z: C' o: w! ]  _! w* r
    不好意思,那已经是过去式了。
    & y3 l# f: X2 |0 Y+ l. y9 v( c! y/ m
    $ {* w/ l: ~# Z. h
    现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。7 _1 h1 ]. {7 K1 v+ X  s
    , k( L* x9 o4 N

    5 y) B( m5 W) l; ?7 b+ d如果想看数据,选中双击某张表就可以了:
    % U8 A4 S& O2 F. T- u
    & ^& F) k, `, Z8 J  j
    , x. w8 S2 d4 u; Z: i
    如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。0 q  F$ u, C, ^( }4 m

      X8 l' {' P& Y2 N+ s/ b

    2 t9 P3 w0 M% ]) r4 w( `: i* O如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。
    ! \5 @! D3 P' W: Q1 T1 W$ {9 L8 f; H; [0 ?9 j: |

    7 C$ i; l: _: T1 o& d  _比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。) [  I: N8 E( m8 w

    8 M! t' Z, w5 r  {2 v2 b  _7 k

    3 j2 U$ A% g8 d* _3 p! y# ^0 S9 {7 N当然我们通过如下命令:; t5 Q# d) w$ q2 z/ `( K, \
    / X2 g/ X" S3 I  x9 Q+ b. G
    9 ]7 Z* p4 E- {( n
    show create table jump_log;
    0 @8 H; [  r0 S
    5 C. f8 O; S! A/ i+ f$ s

    ) J% m6 W. }2 q# g9 M* Y6 C; I# t1
    3 O  |8 ~; l, n! g: T3 \$ B20 U% {7 ]- j2 Q+ z: r) d
    也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。9 u) s  n  q- L( b/ x
    # i0 o: V: B) \9 |

    % v1 [+ d6 [( ]% \4. 数据库实例的ddl操作) d; o9 m! E) n( R' Y; Z' ?! z
    通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。
    2 E! v9 Q+ F: W9 Z1 N# d  X4 G! ]4 `5 A1 w$ w

    6 _5 B1 c) A8 }8 g右键单击某个数据库实例,就会弹出如下窗口:% c# i9 C  F& j

      I* {: S7 U$ e  o% g2 K

    % ^& [! |  {2 x* p7 B里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。
    # Y5 n% U8 h1 E4 X
    * s) o. |" |5 x" x  y! V
    9 E# y- j5 T5 \# _! Y0 B; Y
    4.1 数据库的创建和修改  {5 s* }$ \# E& w5 M
    创建和修改实例时,只需要输入以下三个字段:& P+ ]# u. l) C) [5 G- h
    $ x) v* t- H1 d+ b4 K0 W

    , O" w3 [4 d% U2 G6 L) {) `, z4.2 mysql客户端
    $ x& i6 Y( k- }' A) r: T( L$ w在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:
    ; h6 r/ ~* e# J/ o1 D- |2 h! F  c1 V# M. D
    3 u' N1 o0 R4 |; r: v, Q
    4.3 执行外部脚本
      t0 J% D, x: c) W如果选择Execute SQL File,能执行外部的sql脚本:
    " u+ `4 [: F1 m5 ~7 @+ P  G/ I# W$ J& k' H( f, Y# j# _
    3 l& C* t% ]  V$ I% G1 X; e, F
    4.4 表导出7 _% e" v: d0 V5 D: f8 `
    如果选择Dump SQL File,能导出所有表的数据:目前支持两种:
    , e1 S3 r' z) _4 ]" J0 p; ]  G0 p& g( D2 N2 ?) R3 h7 m1 y

    " z0 d  \( f8 `- |  |导出表结构 和 数据
    1 E7 {( ~" a/ ?
    ; P2 b- E! L+ z" f8 I0 h6 ?1 ^( P
    - T" B% ]- [& }: \$ P4 }: ^" H6 J* A
    只导出表结构1 x1 Z) a4 `& @! p5 s6 l( A4 _

    + L, i& g! O5 A& \$ r
    ( o) K1 R, E5 [3 G
    最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。
    / {! G6 F- W3 J! a3 F- \8 B' f; B' J0 P5 ~* ]0 J9 u, O

    : X( B  c' }8 h4.5 打印数据库4 [8 U0 t0 }- a7 T
    如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。
    & Q# N: c9 j4 v% ]( O  @
    ; `* ~; c5 Z9 y: U$ O
    9 E- {) W" |* S2 q6 t4 j
    4.6 转换model$ \4 s- [/ k+ _$ G" J
    如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。
    8 a9 L; m3 f% {; f7 e, f( u" t& {  d: L
    1 @/ B  S! m4 C) v
    4.7 找到数据
    " i) }. T! l. w! z如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?
    # D0 @& F: r- x: Y! E0 X, X% `  B0 [4 d
    7 O2 ~# m; g5 P5 M
    5. 表的ddl操作
    ) h5 O, {; Q- w$ K4 A( V2 D相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:
    9 L) c' t3 l' B: C3 K) z1 ?, ]" H- ~' v6 a
    2 i; g: e  i/ B
    如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。
    $ B3 v# m+ v. `7 V
    * }" r3 m0 r0 Q9 T
    3 F. q5 y2 y+ k6 f
    5.1 表的设计窗口
    7 j" f' a8 p( O- @3 U如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。+ @4 T1 k# X4 ^+ |

    ! l4 ?; o5 @  L! d8 X( W1 e
    ' z. ]  I' }2 Z% l9 s
    它支持的字段类型有:实在太多了,列举不完。
    $ m3 W! M' U* q+ L' W+ |- L% T# A  o2 B. K, o, T! T; c( s

    6 X- s8 a2 }9 r1 ^如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。
    9 }6 d  s1 p2 k  g& [8 }* N1 X6 J; ?( j' x- L+ e

    , o2 E+ b. O; C如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。; J" A) V0 l) m9 J( V

    5 J% n8 m+ T8 c8 H

    / r$ L! g: W& v$ UComment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。
    . K* k, Y. J+ e0 |  s- q7 L1 E
    : ~& F& X! x: g1 u
    5 J0 J) i5 ]5 ]6 x. Y
    如果选择SQL Preview,也能看到该表完整的ddl语句:; ~6 W. f/ p' n* @7 @

    . L1 ^' U- e; j
    9 w! s( z7 r3 E

    9 L1 W" t& @7 s4 U1 `

    3 o6 Y! [8 s" p6 I( Q: Y$ H/ U
    . Y1 Y1 k6 [, q' H3 k
    % t$ e) R$ P+ M
    5.2 表的删除
    ; ^; A9 e* |/ S" Q6 D3 r* R1 p* {上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?
    # E- ?' l4 `# S! N& e) J9 ~/ k: c" {  k' v5 t! B8 {# ~" f; d

    " C' K0 K; b* N/ M/ F; M( _主要是通过如下三个功能实现的:: W) N' ]5 o/ J/ h9 d, l, L
    * ~* {$ c" \/ X: f- E. D

    & ]# G( r& I. S. z/ x4 `6 sDelete Table:物理删除表
    " P+ e; Z, L* y& f
    ! C% P; C' M9 U
    0 e& w" E- \# |& V- L+ m
    Empty Table:清空表中的数据,但表任然保留: z+ W5 A0 h+ D

    3 D0 _7 J& S$ U
    : g. A$ d- m" q- j7 M' L
    Truncate Table:逻辑删除表: j3 [$ n8 a- ~: }% t

    ; C# O4 K& F4 ]5 k/ l! g
    " K8 A: P2 \' d7 f6 B* J/ e. s
    5.3 表的复制
    4 J6 R1 f( Y& j% E有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:
    : m8 l" `: E" a" d9 |6 y5 a% L
      U. ]) C; i; f5 m; `
    0 D4 r( H6 t( q) x7 l
    如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:
    - p0 B8 h- `0 q9 k; @  o0 T. t
    5 b# N! C3 j6 }/ H: z: U$ ~0 w

    + m0 T4 U# ~1 h; V) ^; ~1 y; T. m9 p. K% Y4 N, s% i( Y! ?! m

    ) m+ C( S% J7 {4 h4 n
    - P) ]2 J& {, \  ^' D
    , L  u; W0 Y0 U  C
    里面包含的数据跟原表一样:6 H: t- G- L5 |) N- P! u4 Z: k
    2 ]# [& e/ s* |, H0 u* u

    + I6 W  d- H$ y1 ?) ~) {# d7 P2 [如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:
    * G3 r# c) T; {% E( r9 H7 z! [( k2 J1 r  O  j' D% Y
    $ a; ?2 q+ w# e, x2 e
    5.4 数据导入
    * o: `4 z& G% c7 P7 R在实际工作当中,我们经常需要导入数据。7 N8 U+ [% P: r  {2 S* x
    + E( Z4 ~2 ^+ l* R( v, l; h
    * H) n! ?6 ]) p3 i' b$ U/ s# ^1 h
    比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。7 @; q0 z' I# x3 E
    7 B) r* W6 E, ?) s) s2 C: M

    9 O. m; L5 u, l4 x' n7 S/ h, T我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:
    $ `2 n' y; e7 E* W1 f3 A
    - h- a' V6 O+ t  x6 S0 E
    * r3 n* g8 x' b5 m
    可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:
    * y' B* j6 U8 Q( L( q9 d+ m6 S& g5 J6 Y1 |) b1 V2 V
    6 O4 [1 F! \" C1 R2 x+ D
    5.5 数据导出
    & n- ~5 H% K7 Z- L* T) _; \在实际工作当中,数据导出的需求偶尔也会遇到。
    ( z. K1 M. d) K( t) |/ F4 {
    * s8 Q9 B+ z5 `  Q; e( y

    1 |, v, a1 U, D5 T. q这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:
    1 `+ h$ J2 D/ R7 Y' C( i. \
    3 q6 Y2 \: M/ P- b  d

    3 W' N$ z# f/ j2 N4 t可以选择要导出的表和对应的sql文件名称。
    5 a& n, f, [1 U- n# J/ V
    ( R4 p3 G; \2 W: b- K  W  y6 x

    7 S. t( @8 m& U4 t接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?
    7 N% g0 O: c5 A* @' \- ]" q! O0 I3 T9 v" \

    - B! N- H$ V9 B" \6. 表的查询操作# l# q8 U9 e) V4 M9 j- c5 U/ E
    查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。, a" j! @& i3 \: Z

    4 R0 Y! Y4 t, ?  I! S
    3 g2 N$ ~8 `" Y( s  r' D# v4 K% ~
    选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:
    + q+ x. X1 Y, q
    2 F! D3 a/ g5 A1 y: J4 u( S

    : m) x- m* |) ?: ~6.1 执行sql语句:
    $ \3 ^0 l+ |4 X; S& A8 L7 u, Z! c在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。# ~3 Q9 \. X( V7 |( Q( x
    / b' n2 K' K! S& g9 ]  t

    & I' n) g9 Z+ b7 @$ ^9 }虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。5 M6 e) w9 g& I# l4 \" t7 R% y
    # c$ S' B# ]/ f- ]" t
    ' n2 S% v- l2 X
    6.2 保存sql语句:
    8 d  E6 `5 g1 F! q1 f; }有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。6 }8 l+ u9 }' ~, V8 m
    6 x! T5 C# T( I" u- n# E2 Z

    ) ?6 x3 S! b: a0 K/ x这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。9 z+ D1 y4 P! |8 J3 W  }+ }4 i
    ; t4 T- R. e1 I. P! ~9 i/ H

    5 C9 C$ @, f# J- \9 v. ?2 g这样以后就能在Queries中非常方便得找到该sql了:
    6 [7 \4 z, p* \% A! d4 {9 i# k$ P. Z& d
    6 I5 N* c. D) J
    6.3 快速关联表- }# _* ?% I' D; ?
    我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。
    : J6 F" P5 T- a/ A% ^
    1 c  f, E' Z8 a& k1 _3 ~$ `4 i

    - q1 K* l8 j- I! p  {% @0 K3 X, g+ R这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。0 ]- {0 B% g) V/ ^7 G; l6 z
    7 s7 Q# v, c' |5 y/ Z- l

      e* a/ Y: L, o( m难道还有更高效的方式?
    7 ]% J8 k8 o7 W5 o4 w9 W0 R; ^/ Q% S) r$ M1 T. K" p

    1 d+ P0 p# t, ?1 P9 e( q, v! E点击下图中的按钮:
    6 u# z+ `' I" V( Z7 {/ R/ K2 x, m6 r* F

    8 e& ]' V) }- E0 \; g0 v; Z- o会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。6 T! O* X: Q+ H* [( q
      e  a& a, H" W3 r; ]7 g+ N

    + }" n0 U5 s  ~然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:3 J' a' v9 @/ i( p
    ) r; O) F* u' ]( L$ |

      |' T4 U" ^6 i& c太牛逼了。
    4 b/ [  E& q8 W8 X( D* ^( S- I4 g0 }# x5 p  I) L
    % @6 u+ g9 ?" \
    6.4 格式化sql语句
    / }7 B7 r* E0 u! q有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:
    : D  Q( o' I2 J4 v
    ) N# x9 a( m; J; U
    - x. K% L* |+ {2 U! g( S0 |
    看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。
    ( I2 [- Q' \. p6 Y% Q4 K+ ~9 N; U# M# M

    " |- Y2 q; y2 B1 l6.5 执行计划
    ; Y/ w3 W: g7 c% i# n' j2 C有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:
    ( [& f$ ]) u' W, L) z+ O+ M) i0 a2 x8 L( I/ h0 m
    . a1 Q) T* Q# ]
    这样执行后,就能看到执行计划了:- B& r+ T) I1 e* u, w: c

    : g* t+ E$ @& t/ G/ F
    # L$ }: P! M0 {2 C
    但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。$ q0 z# I3 G2 q
    8 R+ e  t3 S9 ?- }5 A8 q2 _6 W+ e; g
    6 M+ @* c5 Q" Z! _, K) F
    6.6 切换展示方式8 O2 M4 K) g" u) d/ x
    我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。3 p. N% x, |! X; _+ E, p; ~; X
    % s/ s9 S# g2 j7 U. M% Z4 |+ J
    8 l% B: k' I  S, |0 s, h/ ^
    这时可以切换到form view模式:
    ; D0 l+ W% A8 J" i6 @0 c9 x2 P
    7 s/ j) |7 G& ]9 z8 y" r3 l1 j
    然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。* l: V4 I4 f$ `# N8 \+ Z
    ) f: m- S) b) T1 R7 c1 `
    7 H# ~$ \/ b& [# o: n$ d
    6.7 新增和删除数据
      T9 A5 t" M% {" L: S+ @- a0 B  }我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。' E7 C  W$ k# `

    * H0 g2 M: }3 v) q; [' n- D

    " y) S. Q) W0 R' d同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。
    , e& z5 _/ W& }) ~: Q3 q/ \
    # O5 g# e. K' r9 h

    / _6 u& n/ T! F: y- z6 b, i' e最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。5 w. [; F) G0 V+ @. i3 Y5 v/ `
    BAT大佬写的刷题笔记,让我offer拿到手软1 X$ ]1 N6 q# {! _8 R  i
    ————————————————$ t, `2 q6 a/ m4 k: J0 r& c
    版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。! F4 F+ Q# p! S6 N& v6 ^" B9 K
    原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369
    6 F& W9 N4 K+ h% {) y- L& P' O, v2 q
    : e/ \. D6 y, m& n* H; h
    * U8 F- d  a/ z5 X% Y
    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-6-16 18:52 , Processed in 0.416656 second(s), 51 queries .

    回顶部