QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2909|回复: 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
    " c' o( Q* u) T8 U' W) ]; A
    这个数据库神器真是太diao了1 u+ r$ N* }/ o3 T
    前言# C5 ?: v' }( k5 a- I/ ^
    对于开发、测试、DBA、运维来说,数据库再熟悉不过了。& o/ ^! N1 F! a4 u& d4 J
    & b2 {* _* Y6 w" I  a: I
    , p/ a& U: K/ V1 v* `: w
    很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:
    $ D1 x" T, T2 {; B- q& o! W7 _
    , Q" l9 x& t, V/ I6 J& r
      C3 O% S  L( j" M
    + q5 D+ K+ ^3 H7 x; [
    " a) @& ~  Y4 h. [
    ; p. I# J# H4 e; `) i
    用过的人基本都会吐槽,太low了,极其不好用。2 N+ _4 p  I( Z0 s* F8 C$ d0 `
    & {1 z3 w6 }+ K0 q9 k
    - j1 f" E* O, J' e- n& j
    写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。& M6 ~- I0 l) I( e
    + N' S6 M6 D- `$ C4 W5 Y

    . Y7 O: t# b. ~5 W- f; O7 q/ g9 n% T看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。" p' u# ?7 A' R7 d0 X

    6 O( S8 Q, k9 q' Q; H
    1 F2 U9 t% {3 c7 k5 j# `
    对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。
      \$ z: ^: @- f0 V' O6 W; Y
    $ F0 L2 d: n1 T3 @7 [, i' R/ A! l+ w9 o

    9 N- o6 D+ j# T- ^很难看出表和表之间是怎样关联的。
    6 D3 t0 C$ W3 z* T( j
    ( h3 ]9 p  c5 v/ X1 p9 R

    / p. O/ H; L7 ]1 Y8 c* K导入导出数据就更不方便了。
    ! c" e4 Y  K4 l0 K& w1 i0 h
    4 U. C# P5 w2 ?! a6 F+ ~5 O9 _# U
    6 H1 q$ B1 K! C! X- ~6 @
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    * _9 z1 n5 C; c4 L4 D  I9 ^, m- QBAT大佬写的刷题笔记,让我offer拿到手软4 R0 K) w4 U3 ?# Q

    ; w- x' n' g* t; M  U4 l3 A
    $ i6 y/ C0 _2 V/ x8 g9 r6 H
    有没有一款好用的工具,让我们能更高效的操作数据呢?8 T# F8 ]+ u- X5 N9 ~5 {0 ~

    , |! ]8 Y' Q' c6 `: d, p

    + ^9 U9 }+ `% |' @% {8 O& i这就是今天我要推荐给大家的数据库神器:Navicat Premium。
    2 C: q0 W2 c6 @" x5 b5 P: a9 h2 @: r' `( \9 e  {

    & m# Z  `+ g+ L* L, K' _1 I$ w下面我们一起看看Navicat Premium有哪些牛逼的功能。. x% L# b1 K5 e
    , j0 P- e  v8 J# {, H+ \: W

    2 s- n! J% H" M9 ?( V! {1. 支持多种数据库
    ' l/ V5 ]* h' j在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。
    8 V7 u, L' F! d1 m7 S) G
    2 H" o3 D! D. q9 I8 [: E6 d
    : X+ [# ~, m3 I- j1 v
    点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。
    ' \* R4 f# b; G6 i( I; U% e& G( s+ _* x# {* ^% y
    9 e8 `$ ^* K# ?3 S% v
    2. 轻松管理连接
    % O2 P7 ]1 x2 f! \% A! t7 _2.1 连接数据库
    3 a% a3 A' R8 q) T5 ~之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:( I$ ^+ R. x0 v$ ^, ^) f7 M7 P6 M
    5 M, n& f- B6 m9 n+ ]- h# a

    0 M" }# c6 k+ w: [3 wmysql -h127.0.0.1 -uroot -p123456;) W$ |  _9 j  h' o

    / i9 q1 d0 T3 O) _5 v

    + p1 M2 F7 A7 c1: ~/ q* P1 \. w9 i6 O
    2
    4 S9 R, K6 e+ N  a5 a# J每次都需要输入连接地址、用户名、密码,不觉得烦吗?, v7 C3 O3 c0 p+ T

    ) A# z. F4 R8 {6 H6 k  Q: S
    - u# |- R  I* [8 }$ }4 p
    恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。/ i8 f  h' z, w9 ?: c1 @3 P( p

    0 @- U# t9 H" z6 e( Z
      M/ S5 c5 |$ u( M9 M# n1 R, t7 k
    以后就能通过界面双击Connection Name,直接访问数据库了:nice。
    4 n$ a5 w! T2 m& r% a
    " y; p! e+ |" x
    ' A9 D! _7 g' p# U; @
    2.2 显示指定实例5 Y0 ~% t% j7 {; u9 n# `1 t6 y2 I
    有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?
    ' p6 D. ~1 y! |3 g
    9 J2 ]% l# i% Q7 C2 Q

    % `3 r2 m) B; P2 |9 Z+ h' s这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。
    % R; w' h* ]$ W* G" V+ m1 Z/ E4 o, K- D3 z

    " ]- v2 n, P' X' S8 L7 D1 |- O这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。" x9 j- q" Y% c5 o
    - n8 V; e( |( ~% C

    ( G9 u; E- V+ x6 r3. 方便查询表信息
    1 u+ T/ q# u% c以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:
    * S* e1 [, t: q
    & D1 `0 A) b6 p! ^3 Y6 |) k! A9 K
    ( Y. ?6 m! `2 k& A
    show tables;% V1 Q" d/ f+ J% [9 y/ J

      b  X. _/ p/ `/ ?
    1 S. N5 |  G0 j1 N# N
    1# z5 J: p& {8 y3 w& m
    2% z, A& V' K* A" ]# b  {/ ~5 B

    # N) U: g5 E, w5 W, K0 ]$ y* v( d
    ) K1 x, A2 H# }) i& ^

    8 D6 J0 Q" f$ H. M' Z+ y8 v+ m& }

    * P9 D% q# t( e3 q不好意思,那已经是过去式了。
    - S& j0 i3 B% x) U
    + q' ^& P4 K/ _5 I  x
    ; `  c1 H4 G7 E" l
    现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。$ {+ u: {5 T3 G+ z' `- r" j
    ) k! ]+ c6 C; W8 n

    ' ^0 c) E9 [5 h; {8 V! @4 O如果想看数据,选中双击某张表就可以了:7 w0 r9 d( }7 C1 G  U

    % k+ @7 R  q0 ~" Y2 M% f
    " D4 ?* y% N8 j' G) F9 e
    如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。
    ! p4 G( C! d$ i- @! n+ E- w! v/ @- J# ~, S5 E) r5 L3 `

    & I( n! U. P: D% z如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。5 i5 o9 u0 l- Q% a
    ) r* A8 o8 A5 W' v

    , J9 t. C# q5 I6 b比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。
    : r  Q0 H, w& s" m' `+ _- K+ T3 r, `, W, Y: D

    . W, v* z2 I* m! k" R! Q. i当然我们通过如下命令:
    ; Z+ b' B. f6 A7 n
    % r$ T+ t5 v4 a7 L, k" Z, o

    9 H" N+ s% t+ z9 q. C$ t! qshow create table jump_log;
    # V& T* s6 I- F  b/ d: g4 W: e7 c) |% c

    / k2 }* C  X  D7 y0 g7 _- {1 M1
    : J/ y% {6 n! @4 ^. H) O; t; O5 x2
    , Z* p2 W2 A) w也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。
    3 t$ z6 `  {1 J$ u: m0 Q
    ; ?" l1 h( T3 N0 K6 y
    - N6 \3 r8 t( c3 r4 f0 e
    4. 数据库实例的ddl操作
    1 i: y: r% \$ {4 P通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。; M! F; _) X: q0 e

    7 y: A5 Q: ?& u, ~  A

    - g2 M3 }' g  j/ x) X右键单击某个数据库实例,就会弹出如下窗口:3 R+ i: _( o! E8 J# u, N2 s, E# ~

    6 r3 z$ D) s8 c, H
    ) y6 V" }# n, e# T0 O# y: D
    里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。$ t1 p4 W7 [- a6 j3 }
    ! p* d0 q# Z7 J; s& d. j

    % |, \" I* Q# j5 e4.1 数据库的创建和修改1 K9 K- o4 b6 s( c' a% D
    创建和修改实例时,只需要输入以下三个字段:
    : c; E; ?9 X# W, a' i! F) w$ N
    . M" M- Q7 P  \7 I1 o; I
    . V: \& X- n" T( U* ~/ r8 D
    4.2 mysql客户端
    2 i% q3 D3 s/ H- v! _  _, `在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:9 O6 S) K9 N! l# ^5 u0 r  i4 y
    - g& d' D: G3 r+ T
    ( z7 s: B' }6 r1 p
    4.3 执行外部脚本  h  }3 C" b* T% x% D% c, R
    如果选择Execute SQL File,能执行外部的sql脚本:' P3 H7 W: r! k6 N9 M

    3 U$ s; c/ m! g8 ?1 z8 w% A5 p
    4 N3 d9 O: q- w
    4.4 表导出
    " q; _: E+ @2 v8 _* V0 `  y# Y) @如果选择Dump SQL File,能导出所有表的数据:目前支持两种:+ e; v9 b& H2 q- V/ j
    2 C+ ~# ]! R6 w# K  q
    2 X- i( ?0 [: ^6 {2 r
    导出表结构 和 数据. W& j/ [" \1 y  S6 t+ @% \

    . v- d% Y& w$ [" J6 O( K$ t$ H
    . y1 P0 U+ H" Z  a& j, d7 \( \6 n
    只导出表结构
    6 W0 D# O1 w# i  I+ C5 R' m: d1 n% u- S- j1 D5 S* j  T( q, W
    1 t/ b& F4 Y& Y3 G- ?* I9 n- U1 ^
    最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。
    ! L1 f  e" c7 i/ P( M
    ; J( J* w  v0 g& p
    8 \2 p0 E4 {! |; x" z# }" ~; ^
    4.5 打印数据库
    . q0 j2 Z1 }* K8 t* [如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。- G2 B3 O  A2 P$ d+ r8 W# B

    9 r5 L* O! g1 b5 m, ]4 i) x
    # ]$ G' U8 _& ~
    4.6 转换model
    ) I1 H: \, V$ C0 X$ q如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。
    9 h, C) b( g6 V* o7 A" V6 i9 g5 ^
    2 V% \! o+ o( @& H! N7 g! H* K

    $ y( s7 e- o! r$ d  m# h, P4.7 找到数据6 }8 J" u$ b! w0 b; R
    如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?
    ; ~8 b5 j1 Z5 k* b& y; |2 A6 x  x  I% D  }) M) O; z
    " t! ^3 K! c' _
    5. 表的ddl操作" E9 L) S7 Q1 v- x1 x
    相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:
    , E+ A+ u+ h  t% S+ [' @  Z9 Y
    - y$ C: [1 ~: |! a' ~; c

    ! u: A. B) C0 {如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。+ z* Z! T; N2 j/ r' @# z, h) L

    $ h, x/ s9 v; Q$ k9 B- y4 ?- g% v
    8 ?4 b* y7 j% C4 @" s
    5.1 表的设计窗口
    ! P( e# w+ r/ k  `+ w# O. U* K" ]如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。
    - W: @( K" |. }
    " V8 z% j9 U- ^5 W
    ) I+ m! ?- ?3 z. d( W
    它支持的字段类型有:实在太多了,列举不完。
    9 k  ?. _% O* @' X$ {) B' U6 b# w& X5 m9 \& s+ B5 ^5 F0 c8 Y  g

    : n3 e6 p# D6 M' b. j$ _如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。
    1 {" J! a$ K% L: |7 t
    3 B, z. n, _8 Y" Z) I* U3 S

    ! r+ y8 ~- Z& L! a' v5 D如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。
    8 Z+ s4 }% ^7 G* F/ G( i4 V1 q+ R: Z& ]7 B) f: B  D

    # A% e' ^  A& p6 C: PComment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。" l. l  K+ Y) b0 V/ g6 O

    - w/ v* A3 L0 U# h% p2 k
    ! T6 ~6 Z7 c) ]3 e
    如果选择SQL Preview,也能看到该表完整的ddl语句:
    ' v$ K: T3 Z6 S& ?$ l5 V6 }
    ! m: E  X, ~+ w+ K" f
    * w. Z& H" A, c, ~! m: u, a* ?. ^1 j
    3 s/ @# s! c  c% A, a" ?
    , c. C9 k& x" w4 t% r3 Z" k

    2 h, v0 P+ r6 g! ]
    7 l& `$ w& }5 o
    5.2 表的删除
    0 i* w2 E  c, z$ h上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?
    8 w. B/ A. C. i& P" a2 \9 I5 J
    ; O* L8 s8 k5 c! _- Q  c

    8 W6 W, ~) [, v主要是通过如下三个功能实现的:1 z1 }# N$ o# y, q5 J
    , v4 p# |* }% Z- ~: {# k

    6 I# p4 i9 I  q# K; t4 gDelete Table:物理删除表
    - k9 X( j* l3 S5 M# z2 t6 L, j( A' C- B( P

    ' x2 ^6 h5 K6 f5 REmpty Table:清空表中的数据,但表任然保留
      M" u8 j/ g8 s/ D- s' `4 @, e. ?& B- c5 h* N

    3 a$ f7 o& a8 B( N, UTruncate Table:逻辑删除表
    / I) |% L1 x. K4 j
    4 T8 U+ \. Q; c1 b
    3 W2 U8 i# ^/ e0 P- E. e  ?! w
    5.3 表的复制
    - D" D4 k/ Q; _* r* F有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:
    ' X* E3 h. S* F0 O* q# z$ K
    " n: e. F  b7 [
      z& N8 S3 d' _, B, m) ^7 J
    如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:2 [+ K) j; z. n, k; @" F7 m5 e$ ]

    3 u4 W  o; r: ^* F( U9 y4 V6 y$ c, M
    5 L# m+ M2 F7 c# F4 {# H

    ) ]  M4 k. Z% b7 I9 X2 r% u. w
    2 e8 I& V! C/ g3 K5 \$ b, Q# r
    , l0 f/ ^$ b1 d9 t; c% M4 ~. ?

    ( {  `1 d; [. w3 w0 c- U8 _4 l5 u里面包含的数据跟原表一样:" G$ I6 ~7 ?' I% X

    8 T5 C, M# z, [+ P7 I. h
    # j0 P  r& o  }/ Y6 q( i# d( x( c
    如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:
    + p" D8 y( ~! X3 g# ?3 ^  g' p
    $ g: r" c" @9 [0 k4 h# _
    , }+ A% v' G1 y# |
    5.4 数据导入
    : ~' w6 k3 E. C5 }  \在实际工作当中,我们经常需要导入数据。
    9 p" q! Y3 z5 b  @& S5 Z  `! J8 g2 J5 C

    7 j! d$ B' T% r( Z; l9 Q! M3 w7 K比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。
    / n8 r3 W+ h. n. Z/ O, P) s! R/ j9 B/ ^
    2 m2 F0 D1 L0 Y( n( w; m
    我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:. H8 d0 y1 J5 _5 m6 ?* m2 X
    / I, U8 t; {) B* W1 F

    8 p* w* G8 p4 }* i7 K4 M. H可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:
    * T( j8 q/ c' A1 |! K  }; X
    4 U0 V; @  K2 u7 P2 u3 o
    " V0 ]3 e! Y- `8 F* }* K4 c% b
    5.5 数据导出
    ' g  @7 t, z& A0 ^' x/ w在实际工作当中,数据导出的需求偶尔也会遇到。$ j8 Y7 E! Z3 P0 g

    ' X  w# D9 E( b5 R6 B  _8 y& f. V
    ) }- q& G! ^1 |9 P
    这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:
    ; i. K+ {0 h4 K* P' r6 L
    ( o* O$ P" c! K/ @; W

    9 ?3 f; P" l8 L. a) g. j/ z0 d可以选择要导出的表和对应的sql文件名称。
    ; M  b  S. u+ ]8 j( a
    ) C  K0 N- v& @4 P1 f7 V

    1 I& m" I3 J# `  ?- v* }接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?' V9 d2 D+ b, j2 N. Q

    * `& s9 h; Z8 ^0 r7 k

    % l9 B  S0 O$ u1 a6. 表的查询操作
    / w6 P$ c5 L6 K, o查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。
    ( d: b/ K& S7 @8 k/ O9 p* D/ u2 X  e5 @. k4 @' ?. X/ t

    ' p9 A- E7 Z" U9 D% O' L选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:
    ' p8 E3 c" K* Z5 J1 {6 v) i/ a; y# D9 V
    ) A& G* D0 h1 {8 o
    6.1 执行sql语句:5 o( j5 G$ `# d
    在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。; S& C* W1 ]1 h% r$ ?  |1 f" V
    , q) H, B5 Y  H

    1 `4 R) G) q8 d2 B4 M虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。
    * R) w% }2 ^4 N
    # a1 R) ~; ~* K2 W4 b

    2 \0 R. o! E/ y" B6.2 保存sql语句:
    0 Y4 N6 L5 m, E有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。8 W/ e" _1 u9 @) m1 l& V% W! C

    ! `% L) l$ z8 F5 v8 B9 ^3 j; M& K

    : T; D. I# w- v这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。
    9 ]; I: \; ~) t( ]( b' a+ N* e
    . N) V' X! ]+ ^9 [/ \5 u3 H. q6 c
    - k9 P7 G( D  H& t
    这样以后就能在Queries中非常方便得找到该sql了:! ^- \3 j% f( f, P% W9 f9 W2 |
    + k4 J* A- U% I' Y+ n  a
    4 i9 D; c# i4 h6 z% T
    6.3 快速关联表+ W6 Z* d" i" a/ V2 _; i' h
    我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。
    ( V' ~; _' n. ]$ Y3 _- ^, @( @  `) a1 ^1 X3 `* V
      T% s3 z" N8 Z
    这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。$ F0 |& ^- X5 G8 K! X

    4 {) A# M. z. a" }2 p
    3 F% W( @: T" [5 M/ h/ G- h% j6 h
    难道还有更高效的方式?
    / z7 c9 v) t$ K4 u8 E) w/ Z$ N- Q4 w$ w) [) A/ |& j1 w5 t$ _
    0 D& v# t9 d' ]
    点击下图中的按钮:
    " }) [: X& E! q+ y$ x
    ! v( V0 e/ Q) R9 i, t. ^6 a$ V, W

    % A& r/ B0 [* N会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。& ~4 u5 D9 h- s' d" [

    3 ^! ^! ]1 X# q8 o
    % K" O9 o: m  f1 G
    然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:
    - q7 c* _  A" P& x% o. `# `9 t2 C! z# D0 A
    8 o' _( G" L. b; }+ t( o
    太牛逼了。- H; P5 `- }5 y' u5 a+ ~
    9 x0 I( q' a. \

    ' j9 b* \7 p: S6.4 格式化sql语句; e1 H+ Q" ^2 J  |! u3 U
    有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:
    1 a' {7 C$ @, ]: u0 U, m+ {- s) c, w3 B& q) W2 n

    " l9 u6 G: m" R6 V* B' X看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。
    $ v# P! `1 _) Y# O* n& v' ~2 _7 p

    : x$ R! d# D& d- Y6.5 执行计划$ y! o3 l  d- M* w1 h4 f; A+ K
    有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:
    7 d* f' w$ K% r4 f
    * L: X5 t% j7 _3 T& \) s" E+ n

    ; u" Y5 S7 W$ j1 _4 Z' ?! a% M这样执行后,就能看到执行计划了:. i8 Z. Y/ u$ G3 r. s# m
    ) w% G. I3 M, B1 D/ Q

    # O! _+ W  r) P3 L1 i但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。9 x/ D" t9 L: W3 Y( u2 J

    9 N+ `3 X1 u6 u" C- X& t- n' `

    3 {7 F# m* P. n. G+ s+ T6.6 切换展示方式
    - c, m  b3 _" c) S+ J" L. t/ Y我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。
    & d' u: X% |" e3 |! j
    # q2 }) {- d& X) {2 a

    4 c( b2 J; |& M) {( E这时可以切换到form view模式:
    4 V( U: r3 _8 J+ n4 e8 @4 q& W7 ~& C, z3 q0 G% G, }

    3 e/ J; g  [1 `8 t/ G# T: ^然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。- f8 N7 {! ?* a0 T3 n/ [- C) I

    # @) E; j5 c0 Q! U% j
    1 w& P0 q9 q& s% V; ]
    6.7 新增和删除数据. _- T3 r" |/ J  H8 w5 c% W8 F
    我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。. j6 r7 }- N. I  u5 m
    0 O; Q6 x0 A6 p, ?9 j
      _0 C1 b, U8 U( w& C6 i
    同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。( F$ A5 \7 W# p/ U% o

    ! c8 N8 A( i* P2 Q( i

    ( Z) _8 y* r' J- u# ^, s' F最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。: O& t+ k- L, M4 }! k. h* ^
    BAT大佬写的刷题笔记,让我offer拿到手软$ z+ Y! w8 N5 G! O$ h& l9 G  I& z
    ————————————————7 `8 j2 ~! [( E4 E
    版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。5 F" Z! j( V& f3 c8 q2 m
    原文链接:https://blog.csdn.net/lisu061714112/article/details/1187083694 W+ }& ?( M5 U% s; C
    5 G; p2 T8 E) [
    , O2 ?" R- e% C* F4 ?* 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-8-4 08:57 , Processed in 0.349806 second(s), 52 queries .

    回顶部