QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2883|回复: 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# ]- J: J9 T/ Y4 H
    这个数据库神器真是太diao了
    + {# n1 J0 ]3 M/ |& O前言$ {- p1 M/ |! A$ O0 F9 q
    对于开发、测试、DBA、运维来说,数据库再熟悉不过了。
    , n+ Q% _) i4 Y& l8 ^& b) g% m2 a9 @7 @7 ?
    7 b3 A! k. F! z7 l  \
    很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:, Q; R6 F4 V. I6 {# _9 R/ X$ w  F
    6 ?8 ]5 ]# ^$ k) k

    , ]* r1 H' t* s) ?
    - A% X* B- G" d( b. ?+ P
    + |7 {4 B* i- r2 ~4 A, G
    7 B; A2 l+ @9 V7 F5 F  f
    ( V1 T5 v" W' F  H9 ^  L; e
    用过的人基本都会吐槽,太low了,极其不好用。6 ]$ A( ^  R. M) ~- V5 x0 q$ G) B

      ~1 V7 z- T' N# R. w9 V

    7 [2 n/ w0 E) L3 H写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。( o$ Z- ^  O7 t2 V3 K- w

    , X! H& A+ s0 i9 ^5 E: D9 @! y

    * Q( C; w/ H2 g! {1 E看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。
    & d7 J0 Y' i# P/ l: C$ S1 y# l: f2 K7 C1 z7 j% ]% t- T6 O) M

    + U3 f( t2 b) K3 C4 U' h2 J对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。
    : `" F' b! Q% F8 K6 s7 U% X) P. j4 b4 d
    - z& I& S  ?! E
    很难看出表和表之间是怎样关联的。
    4 u1 T; u4 U# h) s) _2 x! d: J' f
    ' M  ]: ]6 |" W# @& f8 r6 Y* Z
    导入导出数据就更不方便了。
    ( e$ [- Q( Z) ?2 P- o3 N- C
    / u% T( Y# _3 S* D+ V, v$ H

    / {# L  `+ f" E6 i7 Q最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。! _( c( @) p3 N; v
    BAT大佬写的刷题笔记,让我offer拿到手软
    * d( Y9 D/ ~( u  L+ a& T- H, K. y3 l+ ]- J( G
    6 i  m/ |8 q* v: a% \5 f3 H
    有没有一款好用的工具,让我们能更高效的操作数据呢?
    9 F% l3 g& X  h) l; M
    & {& C8 H% ]) `( x5 W

    1 K1 C. R. I$ W; ]0 _! o0 F这就是今天我要推荐给大家的数据库神器:Navicat Premium。
    # R3 ^& z# {0 y) ~
    $ s9 k' l. W, S/ m
    : s5 T! R# P2 A
    下面我们一起看看Navicat Premium有哪些牛逼的功能。$ f6 z- V( g$ T" }' \- ?' s

    2 ~9 |+ E. ~" B9 M- ]. Y

    4 J: T# h, L& b7 q0 |/ s+ ^1. 支持多种数据库3 ]1 I1 H+ x9 L( X
    在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。. u* q7 e; o5 J2 `) v* ~2 t

    . f- |4 r- {( J" L* f" \* P

    0 j! l( E' O. Y5 Z& U8 ?点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。
    * x! k) Z2 t# K1 X/ o* ?0 H! p7 F5 Y9 I( k8 L2 T4 k7 C4 ?
    , q4 b; ?( k' R: X5 {5 @
    2. 轻松管理连接
    ( B$ \- M3 m  X3 ?. f' Q; d6 h2.1 连接数据库
    7 A2 i, x; f, y之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:
    8 G/ x  @: O, I2 h( ]( L& o; F7 D
    * R+ |$ {' l8 c6 ~* G* s  N3 z% |0 `

    8 T1 K/ U" u. J% r: e& B" M# ~mysql -h127.0.0.1 -uroot -p123456;
    ! d0 Q, f8 M4 @9 {% |, R8 j( O( t+ ~3 r$ x' d* c& J; d- m
    ) o2 f% M2 Q/ N) Q+ y: U  b! B" s
    1
    * s5 S$ u4 V' w+ p4 f2" E8 l$ S0 q8 Q1 l
    每次都需要输入连接地址、用户名、密码,不觉得烦吗?! ?; ~/ ?8 i( O, N7 B; Y2 Q

    # {6 ?. q; G6 v- x& f8 u6 X/ `

    * R" H3 @# S, [; N恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。
    % P+ ]* S6 Q/ F' Z" H! D* f4 G3 }
    ' G5 f* {5 o, r0 q+ P
    # ^6 b' L5 T5 _0 a
    以后就能通过界面双击Connection Name,直接访问数据库了:nice。
    5 ]  h0 J0 u! a! p
    * l+ j0 K; X1 C6 L

    & R$ B" K3 l7 t! @2.2 显示指定实例4 H: w1 \5 C+ S9 p5 [. q
    有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?
    9 |1 D7 R; `/ u- L5 }2 k+ t& @( u) a* Y, `3 i
    $ H  Q3 ]2 [  d  j* E2 `
    这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。3 ?0 @; G# F4 E! }3 |

    / i& w- z. y! K5 D4 B0 n/ n3 O

    ' `6 X1 |* g2 y0 P这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。
    ! a7 M4 y6 T) J" ~
    , t) g' z" f2 R
    & w6 l7 |1 A+ z
    3. 方便查询表信息
    5 i, K/ D! X$ C) [# d以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:5 N* e+ g. B) D; \8 s0 w# C
    5 v4 g( ?! B% T) q
    " N" _& n* I) L/ E# C& X
    show tables;1 U2 `# N1 v/ ^) z

    * e/ Z! {8 v  Y

    ( v4 q3 f% t' B/ }1. h; J0 I0 O0 ^; v$ c
    24 {$ z! _6 a! k( u- D+ ^4 c1 y
    - ]' w* \) `8 s# d! Q# W7 l6 A/ \% D

    + u# C2 t6 M8 ]+ _0 ^6 x3 Z8 A# `/ [& z1 y1 X$ z

      A0 t/ Q" k' H' f; H不好意思,那已经是过去式了。& G# {+ w3 f3 K* I* y7 Z  ^% a
    8 }; }1 L. Q0 M9 p
    6 K* {2 a5 ^. [, ^- J
    现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。
    5 \1 Y) q* R2 l2 t# L( P$ j  f4 n, h0 b1 G
    6 m8 {# d# U4 V8 J$ Z: \; U) }# Z
    如果想看数据,选中双击某张表就可以了:
    ! n( e: I3 Q" h$ g0 v9 C
    8 P5 g5 C3 W/ A" o2 Q
    : j) O9 k4 G# q' o+ M% z# n
    如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。+ o! Y" Y4 O, a/ G) P
    6 D6 q/ M) S3 w( g: U/ v8 D
    " o9 C8 ?" F/ K+ Z
    如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。
    ' g; ~$ y' K7 b4 g) }
    # ?+ n! f, @% p( d& ^0 O" l# O
    ; F/ Q- G# N" Q! X  j
    比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。
    ) r' z4 B: r' E: ^5 W3 X* G+ d  ^4 ]  f+ I

    # I# m$ e; b+ v' Q" v; h; \当然我们通过如下命令:# ^# q2 K6 b  Q- P. i! \
    2 X9 o0 g# q& Y4 y: a

    6 P: Z  n" ?* H+ f8 Wshow create table jump_log;, v: S' O2 `+ V
    $ S: w, }0 b) U

    * r" U4 _3 C1 I% T# ?16 y( w6 a# F& x5 }
    2
      V/ q; g9 R; r0 ]也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。) W. a. b5 D5 F5 _. C  q  M

    & J: m' e2 p: R5 @6 e

    + E, b' o/ ?) @# M" f4. 数据库实例的ddl操作1 S6 o' d5 I+ ~( E3 v
    通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。7 M$ S$ a' o4 c0 G" ]$ T* e7 U+ Z

    . s1 K2 @3 K7 \* C

    + ?0 i1 C/ Z2 x! R3 z3 F( y" n- |右键单击某个数据库实例,就会弹出如下窗口:" b5 W- `: ^" z# F0 |5 \5 q- H2 W. a! i
    , P) p% h# Z, ]: I

    3 [& d6 T9 a, @  ?9 x! z) a6 I  e里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。
    % p3 h7 @. l2 ~3 l% \
    7 V/ s- e* ~2 h8 p5 b* c$ n

    4 U9 q' Q5 O% C! e5 w4.1 数据库的创建和修改- ]; W) }0 c! A! j. y3 }
    创建和修改实例时,只需要输入以下三个字段:
    / f4 D+ b# Y2 i# C
    9 {5 a  T  a, c5 H9 z% m+ b% Q

    $ N  t7 H: P3 z/ ^9 \8 W4.2 mysql客户端
    % }1 h" e: ^/ s, ~5 I在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:
    . J6 o0 [/ z& z) \, Z% b
    ( p4 l) s% j6 _+ \* S1 I

    + k% V" ]; X4 W4 o& J4 g! o4.3 执行外部脚本
    ' R/ i( A# o4 J如果选择Execute SQL File,能执行外部的sql脚本:
    5 R( @+ N% F# e+ M8 E9 i9 T; Z
    / R) Z' ]) ?- x# Q

      _; v! W% _+ ~* V% R4.4 表导出* N6 D, ~$ i' w! w) q
    如果选择Dump SQL File,能导出所有表的数据:目前支持两种:
    ) P$ ~* J4 W- `7 f. P) n; R  Y$ `$ d( \" H# l/ k
    ) p$ |$ U2 L& k; R3 Y; U
    导出表结构 和 数据
    % J6 p# O$ m, B' X, `& f6 G1 b! c5 U* J

    ' M; k7 d1 \' Y3 y3 ~' `- J- W只导出表结构) R- P$ Q" {6 L3 U# Q/ y

    - b1 C3 i8 {* J. {

    6 _: K8 Q, L$ C2 M/ ?最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。
    % `/ w4 w' _5 k/ n2 |
    $ Q8 W# F' P4 c8 ]

      l# Q$ A* A7 n6 f" C% e* l4.5 打印数据库
    & p0 k4 ^7 g' b1 S' A1 j如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。8 K" y9 b, Y/ G8 F; f6 y$ c

    + b4 u' g1 l9 l' x  n

      P" z7 s% I) I" `8 W  c# k- G4.6 转换model
    , ~7 g" @2 a1 W  r( H/ l7 y如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。
    4 O8 j' J! R+ Y
    7 w" J, j; D  Q2 O! T2 L/ L1 m* I
    + }; d& ?, r/ n+ U' M$ y  p
    4.7 找到数据
    . s7 r. {2 O3 N  j1 r: O如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?) i5 K* \- x7 P" t8 ^

    ' R9 l! I4 D; U! j# |$ f

    : T( E; X( \% V+ ]4 j5. 表的ddl操作
    3 [5 W$ y  M5 B相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:! {- `- B/ @: }" c, \6 B2 O5 b2 R
    / f+ i% R  e8 {/ @9 b

    + q' `0 t& p3 x& i如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。
    1 X8 b9 }9 s; v7 Y6 W- \
    9 `: k9 {& S' Y1 i# R

    - m" H6 k; j. b' N; P# P( m  @) @5.1 表的设计窗口% U" N$ x; [5 r) r+ A
    如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。1 N- Y$ d" l& s; F5 Z( o0 [

    7 ?  ?" s2 j( C: V

    5 u7 v! I( i! N2 ]" W1 ]它支持的字段类型有:实在太多了,列举不完。
    & o- h1 B, l  w7 m; M2 b
    - h+ J( M& l7 @+ a5 B
    ; H6 f; M% f! @. x; I
    如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。
    ; t7 p- [, A% F; Z) O+ w5 u3 |- @/ |; h8 m0 ]- A
    * p9 n$ R& G  w3 ?
    如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。
    ) C) R' w: c# q5 g" F5 Q. w! c: J) b: B4 |3 T3 B3 F( i" t" Q& {

    * O: ^0 o, x0 S4 V0 S) e  }Comment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。
    1 m: l6 y7 Z- G$ t3 q# A. L* H  f* K; x5 u: F9 ^
    1 N* r7 v5 j7 w* \4 B
    如果选择SQL Preview,也能看到该表完整的ddl语句:
    ( _3 ^! n7 e) }& e. H+ @3 D3 d/ m& c; u, c4 c+ i5 C

    2 b% X2 `2 Q4 _; \
    4 w% O0 w  u# x5 v
    + N- m1 a6 ?& @

    9 ?2 Y7 m* h# o. V
    9 J% t" F+ p' H% e' Q* l6 n6 r$ Z
    5.2 表的删除- o6 E& {$ ~4 ]
    上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?
    " w) x5 G3 S$ s, \9 V, j1 b+ K# m' {2 \! t4 R: O! M

    " q2 `8 ~: i; s主要是通过如下三个功能实现的:
    # T4 Y5 l" D0 x- }
    ) E9 x- |; j6 d4 p1 \& F
    ! y$ \6 W. h  ?5 J. T1 k3 c
    Delete Table:物理删除表
    / h0 U/ }# \3 l0 x; t1 \; {5 m1 ^. C/ N& d3 ?5 X
    / |8 d* W4 K: E' N' J* a
    Empty Table:清空表中的数据,但表任然保留) _/ }0 S, |! a3 S1 T; S6 F
    6 O4 R& N  r* [2 Q2 M) E5 Z0 ]! ~6 m" v
    " B$ g( G% x# t" [( M$ S6 }
    Truncate Table:逻辑删除表4 l) n6 o, _, W5 g( {7 T% Y

    # e; W! k4 p- {# O2 ~/ B3 P+ ?
    $ U3 P! d- [3 N0 y; T
    5.3 表的复制
    . E+ q, \( j2 [% c& ]有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:
    ( f* S$ ]8 B# b2 c' _, t, \7 B+ Y3 u- Y' D$ R

    ; \* ?6 S. X7 O% w5 s% R如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:, B# U- g* M0 D  z2 y
    1 s  q& l# d" ~

    ; [% E, q4 l. k' r3 a3 l( N4 c5 Y2 \' I. t: i7 G/ f1 Y  G. p
    - [' C8 _! X. p( j3 C/ W* N

    $ K3 z5 j* @; |* p0 I2 u5 z# h# C* K- T
    9 a4 h9 N" j$ u$ E  v
    里面包含的数据跟原表一样:
    # E% Q; C6 V/ Q' }
    5 V' K6 t9 x$ W" A

    6 h% q% w- Y+ h! x0 r5 s如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:, G' D/ a6 Y5 B* \: b
    5 U) _" j/ _6 ^1 J( |4 G- N) L- L

    # h' M3 C& }! k' i5.4 数据导入2 \+ G; G! z/ Q1 q
    在实际工作当中,我们经常需要导入数据。# V9 l% A8 Y, Q, U+ D

    2 q8 x; Z- q% m1 ^% U' i2 A
    % \4 C- ?0 G* p, N- a5 L2 h
    比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。  N% o0 J: N5 u' a/ Q; r

    : Z" W% r2 [# I0 d, K
    4 d7 I+ E" }& d! v- H- u' o
    我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:
    / I! l/ `3 i5 d9 x6 m! i
    - `" A6 c: p# c' L

    . i5 h6 l! v/ ~4 s7 [& s可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:
    ) C8 ^! v" k5 [- M+ p4 O8 S" L4 H& l. R2 S3 n/ E+ b

      p  q3 S! T% i- @5.5 数据导出
    2 f. E# m# D- E$ s+ @# |5 q! ]在实际工作当中,数据导出的需求偶尔也会遇到。
    ) g. d; ~0 e9 k" v+ O- L5 }4 k
    $ l! v8 X; K5 i, K4 q& `
    / \( C  W2 M9 a( b3 ^7 N  Z! |
    这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:+ z% w2 x) C9 G0 G5 V$ S
    . k; P, S4 z( ?0 d4 n
    : Z! c+ @: ]2 T% b8 V
    可以选择要导出的表和对应的sql文件名称。' U* v, m% M6 u

    - A1 ]0 n3 j% }+ l, I
    : I+ \  x: g9 @
    接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?
    ; }4 m7 x! K8 ?3 m. G1 b
    % y4 B$ L4 _8 @( a
    # p3 J5 f7 O0 U: J8 r& X/ I- P) z
    6. 表的查询操作
    8 c1 B* g) L; f4 Q: t3 C查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。. M; P" W: w# j( S1 g; U
      [: |$ D! k5 P, M8 |, U/ E

    8 J' N' |7 J7 M# ?选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:
    . a( e3 F7 G! C  y2 e( w
    ( G+ h2 J2 I/ y1 ~/ d6 x& q

    2 x( u8 ?. \* C' W! J6.1 执行sql语句:
    + ~1 W  y9 E7 X* |3 K5 i/ \: V, @' v在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。% ?& c9 |5 C# i9 Y' x! Z8 h

    8 i6 u( [$ d  }: |

    ; {! X4 ?) @& S& w( o. }8 U虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。
    $ M' N& D' Y# L; f' r+ D9 E. w& I
    - H) T( F+ e) g& T) ]

      c0 k* E" ?3 A3 S" g6.2 保存sql语句:
    1 J6 C8 S& a6 z4 ?7 j) U  g) ?0 Q有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。0 C1 e: [. ]; h; U& `/ O1 {( g

    6 b, u. u, C) ]3 h" Q

    1 a! U( \7 V( x这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。% z5 s( H  ~( F* P- b

    " M/ e" k& R# ]

    : B/ F: k0 g4 ^( G) e4 j这样以后就能在Queries中非常方便得找到该sql了:1 x# u7 N8 A: [& `6 K; q* F5 d. J" |
    " Q) T$ s1 J- O: [7 z# P
    4 ?3 i/ U" k- Q$ C, A& L, P* t+ a
    6.3 快速关联表' w1 z/ B, M; b8 f! O7 \7 R
    我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。) U& g9 ]  I* J- F3 g

    - L& |* x/ n5 m/ T/ k1 C6 v' ^" O
    5 ~3 ?$ r5 O" U, D
    这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。. D9 U/ q* t( e. o. o" W# ?
    ; Y6 z% _( `# ^4 o4 i1 i/ v' w

    7 ~6 w, L4 `7 x& l* ~  X难道还有更高效的方式?
    ) W5 {) A- N, p2 F$ b& U, Z7 f' ]- u8 m" L
    " m; M2 \6 w1 X. ^: x
    点击下图中的按钮:4 C! v; z( k9 _! E. u3 ^

    ) d3 V8 V! A6 x$ }

      S9 f) o5 P2 h5 Q7 l; ^; T会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。
    0 G/ G% Z9 m1 m: P, D; O" Q0 J3 e; U9 R# z" O/ D
    $ i, x) ~9 _# Q
    然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:- u5 b' R, u9 T/ a7 q$ d

    6 p* I; z/ X& r/ e1 N$ a- f
    2 A6 T( S; p5 @
    太牛逼了。, D! c: Q1 `) n* _, @  s
    ( X* Y4 D1 X7 z/ l

    * b' E9 z; ]+ T" {7 S9 I6.4 格式化sql语句) j" j3 J, r- P% b, g
    有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:. G( I* w, L' B. g

    & C2 G& X8 K# f( o. z1 L" C  q. e
    % [4 d- |; @( P  Z& ~+ y  p; P( X3 y
    看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。
    ; a$ r/ }6 N  e
    : ]! _- G! H- g0 C: R" O2 q2 ^
    - |9 D+ q4 i( ?) i4 b- v1 q$ V' T
    6.5 执行计划
    , A( t/ [& R9 L5 [2 ?有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:; M2 w5 g& B% A7 T7 |
    % {- ?1 S$ l7 u" L! f

    ' x8 \- H& k! ]# h- A/ u" Z0 K这样执行后,就能看到执行计划了:6 Q+ i- A/ h/ B

    2 q9 j9 s! ~, Z# N9 g% f

      J: N3 O! X' X) n) P) X但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。
    : n0 ^3 r4 l) O$ u% x; Y9 O( O% d
    + @) o5 M2 X& o
    - \! x* [9 D7 K8 [
    6.6 切换展示方式1 V& W' L! @" B% l; F
    我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。
    5 M: N# ~% Q4 o. j- p: S1 v" `! U: P+ p0 ]

    : O5 ^' h9 T" e3 W$ {  C这时可以切换到form view模式:! v! b' U6 E3 u9 K1 R3 b, o- S( E8 y
    & ?2 }% i4 x( R  s& f! O! D, z

    ( a4 H( ^) w& r/ L7 I+ r然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。
    8 E. s2 L6 h: `
    5 g( S) a5 d( r# U
    : f  e7 N8 Z  k9 t, P9 A' {4 A
    6.7 新增和删除数据
    . n4 ?2 o' _% i& N我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。
    % ~) O4 r3 B. t7 q2 I$ H: x! O' Q* G6 C+ l  _, w' I* g
    ( f6 B. S$ X1 {1 S, G* L! m6 s9 H! c
    同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。
    , P4 ^, z: X. D. [9 s# l- p0 i* z( P9 \: U

    6 T: f2 M; Q1 N9 R& p最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    # f% @  w% D) h! Z  OBAT大佬写的刷题笔记,让我offer拿到手软$ W4 s* g' [# g* ?: ^, `& ?
    ————————————————, V) m4 z! l) g) ^$ b0 }
    版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。8 }6 R# K( ^7 u) K2 C% z8 F$ x+ T
    原文链接:https://blog.csdn.net/lisu061714112/article/details/1187083690 C# I# X4 s9 {+ {

    4 H' N. b0 ]8 H% z8 \
    # y* @$ a, A1 b5 i& 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 10:54 , Processed in 0.405635 second(s), 51 queries .

    回顶部