QQ登录

只需要一步,快速开始

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

    . `' [7 J: k- s# O这个数据库神器真是太diao了  g6 r; L, v% }
    前言
    9 R: C4 i( h  n( {6 B1 s* O对于开发、测试、DBA、运维来说,数据库再熟悉不过了。5 c1 a: y; {6 h. X* a; Y3 m

    # T' d. N3 Y' [; ?7 t% D" e

    8 p7 n( p# ?; q2 ~2 n  X+ _很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:
      Z, E2 C/ S9 r  _2 T/ o% C2 K, r- M7 U  |
    - ^6 J1 z% v6 w6 s$ y! E5 @

    ; }8 e% ^3 m8 ]' O3 H' V

    # L3 q7 L7 ?( {7 G5 v
    0 @5 B- w! s- X- M8 w8 X
    " J& c! K4 C; f. z
    用过的人基本都会吐槽,太low了,极其不好用。
    9 G3 O) ]0 J/ M: v" g) x8 I# p9 f1 Y% t+ m
    2 R* V4 m2 _0 p5 U2 K9 |1 r
    写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。
    % b& `9 A4 n" f$ |- z0 s' d+ A' e8 R) Y& L6 g5 U% ]

      E7 R: t9 J! j; H8 x+ y+ `3 I7 l看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。2 \* C$ `' w1 Q. e6 t* x

      V0 v* l7 n# [& ?# i

    " L; S& v! Y& P4 @" s  V  K  @对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。
    " M" G/ K6 x) p7 y: d3 S* `, P# M1 O7 U- L7 \7 b

    & n8 ]+ A/ R- q+ v* S3 k& g很难看出表和表之间是怎样关联的。
    0 ~6 u% q/ Y2 T- L% s1 F9 E
    $ E2 Q4 g2 }4 {; \' ?9 n: V

    . W5 S, `9 l: K+ I0 j9 X导入导出数据就更不方便了。
    # M# D* U4 \- y( _( ~* X5 i6 n* z+ E0 }% g3 e2 S% `+ g

    " y- c. `; K1 n7 |1 D+ U最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    + S) L2 j$ e& k. `BAT大佬写的刷题笔记,让我offer拿到手软
    2 u: A2 x0 }+ }/ O" z5 i# L( Z5 l
    7 P. s( V: D# p- h# i
    * w: }- J/ r4 \4 O( o
    有没有一款好用的工具,让我们能更高效的操作数据呢?
    6 s* o$ g+ e5 w+ d' `1 Z7 R
    / D. m  {9 H7 w3 H
    ( {; T5 `# W' B
    这就是今天我要推荐给大家的数据库神器:Navicat Premium。" e4 @( j6 j5 [' k" K% p
    ' k8 G# S! k5 R9 d# g

    + U: ^/ P% {3 f& z3 }  c' i0 g下面我们一起看看Navicat Premium有哪些牛逼的功能。
    2 N; F& E9 D: q' [; E% a. e5 a2 u
    0 n( ?3 q" j) f1 T
    6 Z4 e) Y9 I" C* I/ k+ ?! j
    1. 支持多种数据库
    , n6 J$ S& \# [& |6 }7 v4 v' j在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。0 o$ ?3 W0 L0 r! E7 y4 l8 L
    , D# Q0 `# v4 F; {

    1 z! ]( u, O9 ?5 P9 c3 ?/ i+ X点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。
    / i, ?+ K1 ~. U: N. [7 @2 C: R5 g+ U- f0 b/ b% a

    $ z5 M3 n& e; G2. 轻松管理连接
    5 ~( D$ V+ b4 g6 f2.1 连接数据库% i; z) p' f9 C' R9 a' C* v  ^
    之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:
    8 J) r2 R7 ~/ I/ `9 q% S. g- x, Y( ~" Z- B, G
      m  {! z9 t7 ]* ]' H) X# Y
    mysql -h127.0.0.1 -uroot -p123456;
    ( `: V9 ~: K- |& t8 ^3 F, q9 ]" \) w' y$ D

    $ {* |- S- ?6 a, ]1
    2 n: d  s; v: u1 r( R+ j2
    5 E- s# P3 T7 S9 i+ J& V  t每次都需要输入连接地址、用户名、密码,不觉得烦吗?, x1 N; f! `7 F9 v& b
    : D- S& u# q0 T/ Z
    5 W, h: L! R9 Q, ]( }
    恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。9 I% ^8 F0 K$ g8 E+ s1 o/ o
    0 q# K7 I" A" `/ t1 h

    & {& z) v+ ^6 c+ }% a% V( V以后就能通过界面双击Connection Name,直接访问数据库了:nice。
    ( Q  w/ v! P6 i% x% m7 x( x0 e' m
    1 Q* D) N3 q, ]( J3 y9 g

    5 q* N7 O- M, t3 N' |$ W2.2 显示指定实例) f9 m- B% ~7 i5 X# z5 n- Z
    有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?4 s+ C  w8 \: V/ u8 Z" J

    . R9 t# r: Q* W5 K2 b' i( x$ W
    ; d5 {" \2 N. s
    这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。% I3 _9 E# |# e4 N; y
    ; a0 k9 U. q% ~8 p9 G" Y+ ^
    3 |5 _9 Z1 \7 T
    这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。! d8 E9 [# Z! g9 a+ V
    ) D0 w6 r8 J! O* ?
    ! s  @) I0 O6 E* T5 R' F: |
    3. 方便查询表信息
    $ i& _4 R9 t6 d以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:
    4 c2 o; N1 J9 ^
    ; X& {: e, J* L, D
    ' U" D% q% P) f
    show tables;8 f) _" N& I8 \6 P0 \
    , u- t  _9 V3 O: p# z! J, [; B

    4 b& m) y: B2 [% q) c$ D2 q, c& ~1
    ) a5 z# u5 \/ V# J7 M9 Z5 n2( ~0 N$ H1 d" s* o8 p) |
    1 w/ o9 A: n( t$ H- T6 |

    - E. P0 {) O" h# S  C* I) t% j& w8 m+ m1 T" W

    . a& |8 K6 o/ E不好意思,那已经是过去式了。( y1 H  V! r1 H. o( a. ~( [' k

    1 c5 L  C- n5 x7 \% z! ~
    , P' h0 v7 n8 F( b4 i9 ]
    现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。5 e% ^& ~. L5 w; R# J/ J/ d( z

    , @) X3 X! t7 s" W8 g$ {& y" Z

    9 e& m$ D+ f8 ?) S$ u7 Z7 P如果想看数据,选中双击某张表就可以了:
    % k4 h6 b" ]* ]& _, j* D. H. k  d6 L; b* U) f
    : ^7 G8 G# O8 g& D! J) |
    如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。0 d1 U1 O) K4 V9 E& [2 l) M% K5 d

    . n0 A9 e( W2 J% M- E

    3 |! Q4 P6 l2 v/ N# [! D( U% ~+ N如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。0 a+ W  A) W& t4 S7 h' r
    " c) K) ?+ Y' C. _" h$ [* m

    5 u: Z+ W  [& r( n, W比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。
    : ]4 |  l0 C( Q, K/ S! q  M( L3 O1 q+ p- [3 _
    ; ?- w& @; d3 i# ]- T
    当然我们通过如下命令:
    0 B  \+ w7 L0 y* e* k: ?
    . l$ T7 N- g' j) Y+ b. p( V

    4 R5 Z# h7 D1 W' ^! oshow create table jump_log;
    ' M! M* r  E+ l( B  y$ ]
    4 _; C* R" E0 g

    " J  ~" S4 L7 ?1' h- {3 x8 [# r0 a
    2
    5 k: O) X  Q* {" [" r& d也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。! I& X! w8 ?0 c# G) U

    7 z8 X  p" m5 d3 |! P) A" E
    ' j' K  }7 B9 r2 m! j
    4. 数据库实例的ddl操作
    . ?: i7 I' e) n! e7 p" [通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。2 f, C' P) B, L! ]: G! k
    & @+ O. L9 T5 b$ n; V
    6 ]4 [$ j0 K6 k: L  W2 q' n
    右键单击某个数据库实例,就会弹出如下窗口:
    4 F& m+ _+ u! Z, b. h& E9 E' R' ]# `2 G7 f
    ( z: x" C* E2 s" O* n
    里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。, t9 N% }7 |# C5 o7 I4 `6 N6 p

    " B) c6 `, y# V4 D* E

    8 h, S( b9 M8 v4.1 数据库的创建和修改
    : n3 s+ {/ ^% M创建和修改实例时,只需要输入以下三个字段:5 L) x; h& }; }
    ( n8 |) p; l- S$ m  w6 z  r$ L4 P
    . n+ F# ^5 N1 A  R& h
    4.2 mysql客户端) B! \1 P0 b( z: W/ e, t
    在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:
    6 H. ~$ z  u- D
    , k0 ~9 Z* ]) F  ^! F
    7 T  d" U, l' c( g" t4 Z
    4.3 执行外部脚本+ ^& }, z$ {" b) s, {( F) T& `3 E+ m
    如果选择Execute SQL File,能执行外部的sql脚本:
    ! p4 X& r7 e1 [$ i( @1 [: Q) J1 Z6 x, e( t
    & l% m: B1 V, r) `
    4.4 表导出
    $ j  T* x: s/ K2 g1 V' e如果选择Dump SQL File,能导出所有表的数据:目前支持两种:
    9 _8 q7 y7 l$ [& R& L9 i
    $ T" s4 w6 D- y" M9 j
    6 p9 h7 i$ m0 ^" Z4 \4 r) M
    导出表结构 和 数据
    6 @0 H  Z! N, H4 J6 o4 J; r% L3 V0 ?: ^, B% ^1 R

    + a" M0 o" Q8 T5 j只导出表结构) O" N% T) ~  l% l: y
    0 J: x, U: Y. V  z6 p" M' Z$ T4 Y
    ) @" J: w9 Y+ k% i# U+ e
    最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。, k* F' L- M+ O4 I/ q

    7 `, c, \6 a) E6 O
    1 ]; g! F: Y; V3 F, E1 N
    4.5 打印数据库
    * V/ h& n4 g+ z* C  ^" Z0 W6 B如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。, `/ K) F: D8 I
    * W6 R6 N9 F0 Z1 }% U9 J. c2 }5 v

    9 s) o3 N  S: P7 q. F' p4.6 转换model
    . }5 ^' P* R& Z% y8 [7 U如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。
    1 x+ X3 g. q* v8 @. x% v7 b! r- ]6 p* d$ v& |+ [( w
    # h! o3 y# v6 L7 c$ S, m
    4.7 找到数据& I% }8 l7 X+ V+ Y
    如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?; a5 e1 y! S, `
    $ J- O8 S6 z- A; R
    + s: H; Z/ z/ J+ I
    5. 表的ddl操作6 u: z" F9 t" f
    相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:1 ~9 |) @" S0 C: d5 n
    % X, I7 z. w- n& g
    ! M9 ]5 ^7 d9 e, Q
    如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。6 x% L0 ~' n2 p4 G1 u

    % s% a! n- F! |1 o
    ) S( Q% e# J$ p  T
    5.1 表的设计窗口+ v- X0 j& R! c+ ^2 @
    如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。( @( j& t. i- Y$ J$ m% r- B

    3 w% f2 L: J; ~3 n* _0 `
    3 v  p6 w! W( z# [$ s, q- A
    它支持的字段类型有:实在太多了,列举不完。. e0 K2 v) {8 O0 H

    ! u. ]- U5 N$ |, R: J- X

    " d' ?# ?( l* D; o& Y如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。
    + H. L  a" F. R! ~2 P9 M1 O
    + T1 d* I* l5 A3 e& b6 z

    1 r3 w+ Z6 B7 o! U) E. t如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。
    5 K7 G1 w. o! f' K) D/ ~, {+ u6 n$ Y$ K. e. N
    ( q. T+ U5 `1 b* O% a& i' Y. }: ]
    Comment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。
    0 d% O% g, M! ~2 N- Z$ \* }0 ?+ z: S# g

    7 ~) e# B5 {5 A' b- L如果选择SQL Preview,也能看到该表完整的ddl语句:, L7 R9 m1 k2 N/ a4 H& _
    3 v. V8 V9 U- T* @/ |
    " y' n$ G3 Z* x
    3 V2 x4 W& B8 D* D% z

    / d" H. f% [  C1 V
    4 C( c) Z. v$ m1 o1 }& j; e

    - L2 u8 t' M2 p* z" U" v2 T5.2 表的删除! }+ o6 U  \: W7 g
    上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?1 g, r2 }& ^" Z# F8 G, a0 o

    : v* D4 F3 s% y  s
    + V2 L! s! U3 R& F
    主要是通过如下三个功能实现的:
    . j2 @% T9 e4 g5 E/ j- f/ a
    $ O# ^% _, _$ ~' {; I5 F1 D9 y

    + M, R5 ]6 ]/ `( x- k: l; @  v. sDelete Table:物理删除表/ C4 z; B6 C, W  ~; ^2 \/ ?2 \
    + _: J2 \! D) l/ \9 S$ b: F1 ^
    5 y  s$ k9 \' O4 Z
    Empty Table:清空表中的数据,但表任然保留6 f( D, Y* H) b/ o) G  H, p

    % `7 Q) O3 y' x, p3 R% A9 M5 J

    7 I$ n6 s) `  O9 |Truncate Table:逻辑删除表
    ' I2 I5 W, _, \' \" w( Z8 _$ u% Z
    " Q3 k4 M) B& O+ f. Y
    5.3 表的复制
    9 f9 _# r( m' _4 U有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:6 V/ M; P1 [# y% f$ ^$ s: @) W
    4 ]: }0 o" z* b; }6 V+ @6 T# |: [
    : |# A( b( T$ A
    如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:
    % a% v" I- w$ }+ x+ |  A- V  I  v, A1 R$ M% D: Z+ a
    . R' r# Z2 c5 ]. j1 ?5 K) ~& E
    0 [/ ]5 f! U  b6 X! Y( m+ o& r
    " v" D* X( N' q5 |8 ^6 `

    # _  ?4 f) S3 n* F# t) B3 `( K

    , D" e( l. O+ S( f( U里面包含的数据跟原表一样:
    + O, ^9 _1 Q7 Y8 y: o; ~* }
    ; |6 F2 _  N& b' W

    & J* x# M" W2 S4 U1 a如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:) U" v9 Q* t7 b- E  S
    ( e3 b6 {) q1 W* ?" f/ ~, |. E
    , P2 Y/ N9 U4 J# d1 i& ~5 {3 L8 i
    5.4 数据导入
    " `5 M. Z! i/ e" H4 ^在实际工作当中,我们经常需要导入数据。2 Q! e8 b- l- s4 u
    " @9 b6 q: R9 g, {; n; m/ U3 M
    / s' N, b, e; b/ S' t
    比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。2 t) m- o7 x5 R  J& i5 H  `6 `
    6 i1 Z  H, I/ Q

    & f( t6 }( S' v4 G- l我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:
    & k! K, B" i/ u; T9 G8 L9 T$ n( V/ T6 p3 f9 W

    7 _& S% _2 M9 v  z" s可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:; x" A# x, a$ m. n" G- O- N& X( m

    , v2 T1 y  s! c+ f

    + N/ a! l. o8 Z8 u# b5.5 数据导出$ J' I' F1 C( H8 x; h& F
    在实际工作当中,数据导出的需求偶尔也会遇到。$ y7 A1 L# o5 a+ K

    / ^& i! N! M) C, {; E. i* p( C+ k

    1 k) ?/ F7 ~% h  k6 X% i) f这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:
    $ \6 D# y& }# M' z' l) f) t* B/ y8 r5 h
    " O( G; Z/ q, O7 H$ B  ]; B
    可以选择要导出的表和对应的sql文件名称。( _& o# x2 v) a! A( E0 r, K

    5 ~. C/ U) f0 {
    # ^4 R& u8 p& i" N
    接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?9 s$ ~' r& P% G: ~+ }; _$ o" x$ x

    + @5 {' ?2 B  ]3 M5 p

    $ N8 {% d/ r9 v2 ^$ O# ?6. 表的查询操作/ C& L( v' j% }; ~8 I& j) p
    查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。
    $ J' Q& |+ M4 ]: m- _0 p* o, J' x8 z+ t& D$ i8 R
    4 h. S5 R9 N" s
    选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:
    : D( w5 c3 w& B8 `* q- l4 i
    : ^4 c7 a% @4 w* A" `
    % d4 h; q. l; _; A- p; k+ X1 _
    6.1 执行sql语句:6 p$ K$ P4 W) Y# F% O
    在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。
    0 o/ f2 e9 G+ ~4 G5 A0 _+ m
    , }; {( T6 N( J" a* Q
    , C7 a( ~& H0 T* p2 t) ^
    虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。% S" s; |, x1 t  ]* K" `# b# d% ~- Z

    ( \8 Z/ h. Y; q2 b7 o8 l

    ' A/ e' T* K/ D1 c( I6.2 保存sql语句:
    1 X' s/ K  d0 \* i4 {; a/ `4 @有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。
    : {% O; X2 w5 V: E5 q: g3 N5 o, l' {/ y, j4 D1 J5 T( N' s# c: ]- o  M
    , D- z+ A+ q6 O% @, r
    这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。
    ! C1 r9 ~6 @( P
    & n6 V: L+ w& l5 y& a) {

    ( @: a7 T, f7 p0 ^) ~这样以后就能在Queries中非常方便得找到该sql了:' c9 l3 O1 X9 E% [

    : T& x/ A: f: F1 F5 A& n) |

      @2 f& v& N7 U% d, e6.3 快速关联表3 E3 X9 {4 z+ ?9 j: E/ C* R
    我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。# @, l+ k) I! B/ y& d3 B5 @& v
    9 E! e2 s, t# v# E

    7 P* v* @! [% Q7 D  X) ^. P5 W8 D这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。/ W5 h( X: ~1 H" B) e: ?& U
    ! X1 `% e, {& X  |6 ]5 {
    6 |; F6 E) c  q. t' E$ L
    难道还有更高效的方式?
    ; w2 |6 z4 h! ~: i6 g0 T2 d6 o- T$ _* Y3 L9 D, O& I, ^7 |* f$ p

    + Y* R1 b2 I0 k1 q! W点击下图中的按钮:
    0 G  M0 l  y9 e7 n) X& o
    5 Z) ]9 h9 I5 B  O, |5 I
    5 g) _: b* k- q* U) n2 u
    会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。, w- g5 Y% |" x; e1 f9 M( T2 T8 i

    ' c. s3 f3 G; G" }8 s

    7 y9 m( a, n8 |然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:
    ; n$ I3 W% Y6 k" H9 k8 }. }- z4 E! o+ A# k" K% k4 D0 @  {

    + S0 O8 o. Y4 V* k# a( a; B太牛逼了。: H1 d! b5 w. A$ r; c/ p
    5 M8 o2 k5 c. M; c! Q, k3 w! R: f

    ! G9 Z- Z% v, `; v, w" b6.4 格式化sql语句6 z" ?9 H- A, S! ^& @
    有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:8 Z2 z: u" R+ ?  {8 s$ X" K
    # A0 e' e; ?& p5 e+ Y  O! A
    6 F. x& f0 w- O1 r7 Y- f
    看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。
    7 ^+ G1 t9 V5 r" h" O5 \0 u% |) t, ~2 W9 r. K5 P

    5 x: T5 e5 x  _4 N6.5 执行计划. c8 {5 g% ^$ ?& n
    有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:
    ; J: \/ s0 C& r, @; B- @4 I
    4 ^: q. x: i( ?& m5 t

    , ~9 P, A; M. C这样执行后,就能看到执行计划了:4 r( R8 {' ^) v5 N4 \3 ?' P

    ! g: O( r, Y- {0 \: i" @8 S
    + a) p+ b4 k; L5 y) S& ~
    但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。+ {% h# b' Y* l; ]. @2 y
    / f  J" }: f- x
    7 R  R. m! ^  R4 T( s" _
    6.6 切换展示方式
    ! N$ g; A( G. Y" g$ n3 ?我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。. r7 r( f8 g- V
    : }0 `* _8 S! Q* T4 ^; B
    * r  Z* w; D9 B) [) u, t! E
    这时可以切换到form view模式:7 f) z( v' P1 O/ l7 V% [

    : j) k$ Q7 U/ S, z3 Q7 x

    9 q7 A- O# ?* x3 c然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。
    + }* c" J2 i3 ~8 j$ w
    : N  K7 n1 K1 p0 ?6 E$ }2 s3 w
    ' T0 P& r' P9 Z
    6.7 新增和删除数据# R, f$ \6 \4 C/ J: L. l& W$ v* }* E9 _
    我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。" J8 R0 Z) O& _- w* P( n5 Q

    % U( ^+ Q+ q& t9 A
    : @3 T  ]% r, i" B  V& W0 r
    同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。
    ; L$ G8 f- I, _. W! p8 V0 U% V5 I) v* d  U/ T+ U# s

    # K- u( Q( J+ I! p最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    4 }9 J. e( F. P3 o  JBAT大佬写的刷题笔记,让我offer拿到手软) S* A9 s% c) L$ J9 T9 Z1 N
    ————————————————( s' G6 d; p. k# ^) z! R# S( }1 t
    版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    ; T" f4 V, z; t' ^; x( a! _' u1 W原文链接:https://blog.csdn.net/lisu061714112/article/details/1187083694 E* M! \; \6 e+ E0 E4 w9 w

    ; @+ X: r9 M) ]$ W/ b! d
    % M5 L  O% |4 o4 C2 w% t2 n2 S' u
    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-5-27 03:49 , Processed in 0.318354 second(s), 50 queries .

    回顶部