QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2894|回复: 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  ?" N" E- t$ d- R这个数据库神器真是太diao了
    : `4 o7 ?5 T! W) U. @; v. W前言
    - x& ?7 K/ `: B1 G, y& M; M8 o对于开发、测试、DBA、运维来说,数据库再熟悉不过了。  a6 c  Z# R* ]  e" N' ~! X0 d* F; c
    : n- m; C, Q9 z
    : p0 L: j& f5 \, P- q2 ?4 Q' d
    很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:- R/ b% J2 t; v1 \0 [! \

    " ^1 X+ f1 a" x1 G: Q

    : s( u' c% V+ k, w. c! p
    * R6 k7 p% H* w
    4 E- ~3 r* z) e( r! k
    - c1 D$ s9 S+ g
    # w  }6 k: l9 a& W: k
    用过的人基本都会吐槽,太low了,极其不好用。2 L: t! d' A/ M$ M5 V2 z4 v0 `$ `
      _$ H  I3 I$ s# U1 F/ q1 i  l

    9 ]9 C0 E, y/ |* A( A% r写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。  H' k" |) H9 `- ^9 [' Z7 z9 L- J
    2 E- A8 l: Z  m3 X

    : ]# u! l! x6 O. B! N1 ]9 L看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。8 u4 u% h4 E4 h, c
    0 I, N2 E. p6 G+ _& d9 E
    3 h& J. V# D' @! Z, Y: X9 @
    对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。
    0 C' N% u$ e, ^  R; ?: W! T/ [; L9 W, `* M6 Q' P
    , Z( W3 a1 D. n- |
    很难看出表和表之间是怎样关联的。
    " ]2 e$ s. Z; W5 _7 C5 _) _6 f1 Y
    4 J* P# h5 y: U; k2 }3 A% B

    9 L- G! E3 v, n7 e" `% }# W导入导出数据就更不方便了。5 a( P& G. u) y+ h
    $ y. B, R0 S2 z% g6 ^1 R* n+ q, |4 N

      S8 w" B: d! @. W( z最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    % ~" Z% x, }3 g# c: l9 w1 [$ Q# kBAT大佬写的刷题笔记,让我offer拿到手软
    - x) G- O& Z2 S/ g
    # h' j8 C( Y$ s+ ~% i. g
    6 C) g* N/ W) j: g% Y7 E. k% }1 e8 y
    有没有一款好用的工具,让我们能更高效的操作数据呢?
    / `! F" X5 ?) u
    : J- ?7 L" W, ?# L

    $ J: T4 t% q# P9 ]这就是今天我要推荐给大家的数据库神器:Navicat Premium。
    # d0 M$ x; M) f$ L# T3 f$ E1 A: |0 M8 I6 p
    ) L8 d8 ~1 f# a" k
    下面我们一起看看Navicat Premium有哪些牛逼的功能。
    ; i+ @: \' g  d- h$ R7 a" t% |8 u9 ?6 c$ s! |& W
    - A5 N" u2 g/ g% x6 z* }9 n
    1. 支持多种数据库" B. Z( ?; E/ i" C9 k
    在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。
    9 ?+ k% X8 ?! Y* i( I, ]
    $ r" U! {3 U- f# \* W# h
    1 m. D2 V. B3 q. [. j- j: L
    点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。
    - e% n, e/ r& ^4 {' n  y. c2 z- h1 y( F) c1 a+ r# S7 V
    ) e, z: X- M1 s! r% i; m& z+ ]
    2. 轻松管理连接
    1 k& L2 }* y% C, P+ y2.1 连接数据库6 i( a# [: p3 P0 u6 W; u9 d
    之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:
    . h# e  T+ g7 u6 j) }" |4 s% `
      j, F  L" N6 ]! \2 Q2 I

    ; b2 Z8 _9 @% Pmysql -h127.0.0.1 -uroot -p123456;
    : ^: k2 A2 ^$ t. f' C; `, n
    & t( a% L1 u6 L$ ?
    0 V0 @2 N5 G; b5 L2 k4 _6 H
    1
    ) S( H) t8 X9 w: Q1 V8 V) w2
    . w1 @+ _6 z& f6 P, y2 ^  d* \1 j; ~每次都需要输入连接地址、用户名、密码,不觉得烦吗?/ K- }/ t2 {9 x2 S5 s+ Q! [& s
    0 w8 H; B+ i# @" a
    2 L! l1 k1 f6 e+ B6 d8 {) B+ V
    恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。: q. }& k3 D+ T! c. ?" G
    9 y" g  ~( {( s+ v0 C

    , J. A$ c1 q: b3 M2 o以后就能通过界面双击Connection Name,直接访问数据库了:nice。. w+ N2 z* P$ h  P7 m6 A/ Q0 z1 w; m

    , a3 R" ]$ ]8 z/ |1 Q  F
    5 [, X& Q2 {9 {  Z4 B' g
    2.2 显示指定实例
    " ]8 Z- O( \. E有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?
    $ j6 n% S, H( c; V0 D2 h. G% s2 K; C8 F- k0 I3 a" s' B4 G3 L/ I
    9 Z  h- l2 o( R0 H
    这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。
    0 D/ Y$ |, i1 S
    ! w9 w: `1 B  |' C9 U! h" N6 U

    9 q" R: y8 F: |0 Y2 ?- y" m8 j! c" u这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。1 Z& m  i  F6 S* L) ^0 q% S

    $ A: j! L9 \0 f5 s% b) W# I
    ; z6 ^. E* T* S1 f
    3. 方便查询表信息
    6 j& Z7 h( h! t以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:
    ' V2 c. J) P+ D, H
    - R' K* w! n+ W/ T9 q) Q
    9 @9 U  t7 R% R+ [2 n$ K  ]
    show tables;
      j* ^' B3 F6 e9 P* W
    ( D/ I7 j! N* u# g( u
    - m8 d# c6 D4 Y3 J; E" U
    1) r" d" F! x3 g) P! n7 U
    2
    ! S) f5 A% v+ F# l  l/ M- L
    5 ?/ |5 d  r  t
    : m3 W+ o: j& i  a: e

    ; f' r4 [2 P* |% A, }- |

    ; a' ?! ]9 I3 N4 {, y+ Z7 [, H不好意思,那已经是过去式了。( f- O" \5 S& O; |
    ! j' B, _9 [5 K" o4 E. n, _) l
    : e) {" H, A4 `) p
    现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。
    ; `, k. U" e  D: k+ Y, v5 S1 p- T' s
    + ?5 @4 U, I7 t3 b$ D
    如果想看数据,选中双击某张表就可以了:) F8 e! A* `& G; ?- F4 ^
    7 j# P9 J  T( ]" |0 m2 k% p4 E1 h
    * @  ^' R/ ^) R: b
    如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。) z( O$ V# S1 w  E+ w: ^  O

    : X# G: m8 W8 h) g& P# E) w: u

    / s( Z7 O6 Z! h4 h& l( i: c如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。  W0 w1 p2 ]2 i% U% p

    " z/ z- n( Q7 p: l0 ]5 j

    # G& b, L6 Y, y( o6 r, C比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。: o5 |" f, @% H7 h+ f8 m* c6 ~0 U

    ) C) P( `( q; }2 ]) u9 @, n
    4 v! ]2 {" b7 q- O
    当然我们通过如下命令:
    $ R) t  G! p4 h! w. u
    $ J' X$ K: J  M8 i
    ) ]: t0 M2 [& g0 n
    show create table jump_log;
    1 q& i8 W* P1 ]) o0 E: W0 r2 Z' B9 o
    ; L3 E+ q0 \' p
    + A( {% a2 f$ V4 ~
    1
    $ H" f0 c  b" m4 ?2  F& T/ h( L( T, s: s, ]! S7 N4 g* Z
    也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。
    8 V1 V% c5 M/ R& L* B; f+ {. B
    " G3 y9 q- ]# [5 N9 n+ L8 O% n" m

    ' E) t2 I. r. k1 E# J4. 数据库实例的ddl操作2 ~9 k% f+ s4 g& j4 d: S+ u
    通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。- ~) P. q/ H3 m8 \! r" i
    $ q1 O9 L) B) b- i" z* ^2 U8 ^5 J

    8 F% x* |9 `. |右键单击某个数据库实例,就会弹出如下窗口:% g4 w2 y9 I9 j# i/ [; n) s+ h
    ( z& ^1 n& V+ k& y- R0 G7 w! w

    . i! K* X0 Z/ u1 K里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。
    7 k* Y  z0 d  x! y
    - p8 a! d" \1 M5 d& w4 z% B
    ( p% e: i  f8 r: R  o5 W) g
    4.1 数据库的创建和修改' U" {3 _5 ]; J% q9 ~+ f8 X
    创建和修改实例时,只需要输入以下三个字段:2 U% ]6 ^/ ~' `6 d; }) @
    & x$ ]# ]( y( `5 p% a+ j4 B  W
    7 ]1 G  s5 K% V8 I2 B' L* k. b
    4.2 mysql客户端
    . d4 r/ Y+ p5 i$ S" v' X在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:
    5 _( i' @) F* U7 i; ?" y/ A# J3 {3 z! ~" @3 T. Y

    ! z3 S* g9 u( Q0 V- H2 f1 Z4.3 执行外部脚本) x0 `! A" N4 X4 V9 F7 h. O' e
    如果选择Execute SQL File,能执行外部的sql脚本:. e, e  A) A; i* l

    * X' {6 V; ]  a  E1 p# N7 Q3 {
    3 @# l  J* B5 n* I# @6 t
    4.4 表导出% S6 u2 H; T9 E1 |$ s
    如果选择Dump SQL File,能导出所有表的数据:目前支持两种:
    " i4 c  v4 L( E' q4 U! ^1 H$ U4 f8 O8 W$ H/ z1 d% s+ T

    0 U& O' P- l5 H% R, {5 \+ U  a导出表结构 和 数据( W3 U# F& K' O( B: T4 w

    3 G4 n* L, g: N, h1 F

    9 H8 [0 t: q* Y只导出表结构1 F) l( H7 h( A/ g
    - K3 G5 I+ c1 d' k
    3 n; e& E1 ~: z! a! B
    最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。
    3 V+ u' ^* L2 @" |4 S1 p: g0 i, z
    5 x- a3 @5 Y( c6 M
    3 Q* G# {( b# Y/ g! y
    4.5 打印数据库
    + {, _8 V% ?0 ?! u4 m0 ~$ I8 `如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。& z) i( p6 l. a7 }8 x, e" X* `$ ?

    * t$ J* q  y  H: W

    4 q' v2 Y/ A3 A* N' ^" ?" x6 O/ i4.6 转换model
    / p0 ?2 I6 d& ~5 o/ q. [/ i/ X* |* |如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。" C0 {1 ]( b0 |5 d0 i+ J
    % j$ a: u' Y! M" Q

    7 a! c! X( k3 W# A. E. R4.7 找到数据7 O0 B- z1 l$ e6 X. |; j
    如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?1 O5 P# n7 Y. g% t, j$ q  `" X% Q$ N
    ! n: L, i) }! l) y2 v; K0 |2 e
    1 {) V7 `1 `) X- ^' U
    5. 表的ddl操作3 J, s8 q8 F, s- v8 N
    相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:. W8 F. V) U# \( X
      x/ o. H) s  p; Q7 V/ a& A0 V+ V

    1 F# o: i" @/ t3 F0 e如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。  X& ~) P% l0 \9 z
    6 l) F# z% \, R4 i6 v* F+ O

    ) J2 x. G! c3 v2 |$ ]( B$ v% R5.1 表的设计窗口
    3 b* r! _: C& N1 L  X) P, O如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。
    0 x& R; q1 j0 L6 A0 ?- m  m* {6 {4 h8 T) T
    ) w9 F3 G* b( i) h! y2 {
    它支持的字段类型有:实在太多了,列举不完。1 W' D; [( B+ ^- n3 R1 n6 V" ^; L
    ' d" Z. c" y( N0 j+ d% R% v
    2 e- q5 J5 j* I, [/ N# g  R
    如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。! E3 h& f4 A! e/ f

    ) N5 T# ~' c, h' q
    9 s: v6 Z/ f+ \7 m- f1 W. f+ ?
    如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。
    ' E8 H9 D, U3 T* W( Q
    % f) D; S9 l. a) E9 C! S! ]

    ; O$ k- [! f/ |Comment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。
    6 _/ j5 P4 p: @: X+ T2 v2 y2 b% O/ p+ {6 C" X+ e
    $ s5 R. P$ @7 X. I" V
    如果选择SQL Preview,也能看到该表完整的ddl语句:
    7 R9 u! V9 S" j4 D; F( _# u* i5 u* T; J, `7 {! \1 P

    ( d3 x: I; b" ?* l  n" _- {
    0 Y8 ], J) a; p5 P, q# X7 Z
    # G3 B7 d1 e1 N
    - z- `- q' J! N6 Y% L+ i; D8 P7 ~

    9 R) K1 w; H% U; A% ~  `: D7 F5.2 表的删除
    6 J6 ?) U. j; @( P4 r. z# \上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?8 J' q6 V  ?3 O) B# B: H7 D

    4 v% o# a+ a6 ?% ^' o8 w

    " A( U& _. _1 W) A. p* }3 `主要是通过如下三个功能实现的:- W) B% e* X% B4 B, s7 u% b( Z- d

    0 M. j+ h: C* N! d0 P, M- @

    6 V# T1 T3 I# u3 B$ y( VDelete Table:物理删除表; W9 b  m- |! Y% P4 G, Q6 z

    + n7 V. k4 k1 ?* |3 D$ S

    * S# b& j/ o: x, V: IEmpty Table:清空表中的数据,但表任然保留
    : r( }  L: K: X  I! W0 \. Y" w  g- s. x  @2 |- O
    ) u  [8 V0 O+ ?7 s
    Truncate Table:逻辑删除表( B, F  }+ E! x

    ' f6 Z5 b) E0 J5 K. S6 r
    * B6 t/ e6 C$ |! m9 g1 i. U
    5.3 表的复制
    # y( W: n  ]* G) e; K( I# r. x/ i) k有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:
    & U; f: C& l- O8 z6 S
    + K# _, e5 ?% ^; c0 B9 ^2 ?
    - ]9 j2 s2 y! N, u" O7 q" O
    如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:
    ' L8 u% b, p) a, J6 X( o! E. t/ E+ ^0 U  s, {
    ! N) ~; l( B3 D5 z3 W! \: l& o
    : ]* l8 U5 b: z- p( S: Y
    0 p% z; J" v; W2 {: [
    9 {, p& Z! q$ p+ i7 h' W/ R; g

    1 C( R; R* j' m5 D' a1 M0 Q+ E里面包含的数据跟原表一样:, |7 E) {; Q' ^* ]" F
    ) \. i* T" _+ o4 B9 T# X* K$ ?( y5 T

    . u4 i( ~. K1 ^9 F如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:
    $ B% O  X& Y: }* f( v
    ) n' n% Z. z8 z% r

    / W/ h; P1 z- k5.4 数据导入
    - k8 q( R- u2 T3 R' R  y在实际工作当中,我们经常需要导入数据。2 }6 M) e  j% Y. e1 M( V3 E

    / ?) L- f& @4 |$ j: G+ H% m

    * k4 b3 z- T- B5 t8 d比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。( H* A! U/ P: H8 N9 h

    - t: V( [0 H9 }) `7 s* J" r

    ( X0 Q! n! g: R5 y我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:- t* L7 v& [! \( k
    : F: }% M' R0 c$ _
    ' S! I; D( \8 Q, @5 ~2 S
    可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:
    " w/ Z6 \! x$ |: H- h$ R% |2 G0 ]5 a6 @

    2 e: q1 J2 X1 y5 e( D5.5 数据导出' X0 x/ N$ N, \; k, U( z
    在实际工作当中,数据导出的需求偶尔也会遇到。5 z9 y/ Y& s7 t6 w

    $ O9 B4 @/ q- y9 A3 y6 |

    ' S: Y4 l- M& j7 O. ^$ b这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:- L4 o& Z/ o# Q% B1 l/ k
    1 u! O6 m5 q: U. m; A3 m% q, x) u

    % \* j, R" D1 r" D可以选择要导出的表和对应的sql文件名称。
    3 n3 o) b  r( P" ^: z: Q
    8 S% o% o& I- m) g4 K6 @
    / E$ K7 \, j. h3 j. Q8 c
    接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?
      l+ T' J5 J* ]7 A4 ?0 j$ Y
    2 _6 u: f& Z1 V- ~1 m- o

    . N6 o+ V8 r4 c( @6. 表的查询操作
    + s1 z( Z2 k3 a) Q查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。
    - D9 u+ K. @* W8 k" {' ^3 M0 A& a/ M/ o; @

    4 n& ~. p/ p" b- A3 G选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:# f( x* O9 K# R) W

    # ~2 S6 m2 w# Z9 F5 ^

    & [* F  v$ b7 R/ x6.1 执行sql语句:
    2 b! `" V' O( h7 X  c% O% ~在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。9 I* B) O) |' s

    3 H/ T2 V7 x' }: N5 G
    $ q) K: Z: {& O/ |& ^1 i* F$ e2 m
    虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。
    " B) u& t* o; B% t" v/ x& H8 W
    7 _: M8 }* }( _- y( {
    ; k3 G/ P( J2 \8 O3 }6 |# c
    6.2 保存sql语句:) v+ G8 i6 b' P# S% W$ L# S
    有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。
    - s0 r/ ]6 `, g% b0 B4 B* n
    9 B( O- p) E+ S- ?- \

    . m, Z9 O9 o- T! `( w' m这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。- L+ I& ~: A" @0 V7 P; G3 j$ ^
    ) m7 ^6 I% P  W- S5 i% n" ^/ G$ B
    9 S- C9 o* W2 s8 a
    这样以后就能在Queries中非常方便得找到该sql了:
    ) D9 }  d$ v/ s- I! \. B7 |0 w0 }6 u* A1 r8 V
    % A! c3 C4 V4 u1 c( g8 P# i+ @
    6.3 快速关联表
    $ x' P& N- }1 C我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。+ _; a; W# f/ y, K- U. l

    % {' t" p) Z5 k" r8 s; x
    ( y7 x' |/ B4 g7 b
    这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。; w0 \) P4 h; i

    ) ?, t/ x. R. f8 T% j5 n9 e

    + }* }; ?7 y" J难道还有更高效的方式?% {2 t  [* d3 G' n! [4 Y
    6 x& ]  V- J9 {6 J9 o$ P' _& u
    ; C; i$ X5 P9 Y) [& t% p* Z
    点击下图中的按钮:6 |8 a- k7 g1 M, ]' m+ L4 ]

    0 ]# M& z- v/ ]& E' U

    5 L4 q; O2 C; H+ c$ Q0 m9 J会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。
      N1 }  J9 L' j1 k# |/ V" ]. n* k- H- E0 m

      q0 o# ^7 E$ @9 [9 f然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:3 X, H# I8 R4 H: w2 \9 n8 J5 Z! ]

    , n+ l! ]% j5 [! M
    " f# E- M: e) I5 \9 n0 K
    太牛逼了。* P5 P& J# g; M) i9 P, e

    8 N" C9 Q* [; A! J- a5 v' A# e

    7 [; c  W& E2 i! R6.4 格式化sql语句' o+ u1 M, d' U2 b' }) W+ b
    有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:
    ! ^/ Z4 j- X* I9 N  T! h
    ; u6 j% [. q* V: C6 R

    + m' r. T6 _* h1 x" e9 y. a* ], O看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。( S& h; A6 H/ K+ Q  K! T

    " o1 F; @) t: {- {  @3 j" j# I

    1 o; N: q: v% {3 c6.5 执行计划! `; e/ C6 e& E0 _0 F& n" _4 Z
    有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:
    9 u  q$ D) S* `  A1 P5 J5 ]$ Z! ?  P+ H" O

    5 ?& R; H. |. }/ h( J' ?2 R这样执行后,就能看到执行计划了:
    - m# t9 I1 e7 l3 n8 V
    1 _6 }' s1 t3 C9 ]- z1 i
    2 O( O+ }' f  T
    但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。9 Y, W. Z( Z5 Z1 C. ]
    % v% W$ c" S8 ~

    0 Q+ }2 s" c: e9 i6.6 切换展示方式
    + l! Q5 k3 K0 h1 k( O+ d5 q2 X3 g我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。
    3 n: e2 m4 A# c
    8 Z4 g3 b- q1 s) S/ p: B
    ( J& S7 o9 Z' _8 t7 G& I
    这时可以切换到form view模式:
    ' m. ^2 z' L* l: J% S" \5 L# C% Q+ }  E$ l& X. U$ N% k

    - ], m7 m& _1 T; E然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。
    ( ?2 H" [; Z/ E. U! _4 c
    # @9 |' y- f6 L1 U) r

    % d4 Q% i0 H7 m, S7 s6.7 新增和删除数据
    ! V+ d6 ~' p7 J6 U- ~+ \我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。
    & g" |9 A! z' Y0 ?* r) U2 g7 b4 _, k' L- B: z/ ?  o& s

    $ B  ~8 a6 L! f, f同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。1 Y7 l  p6 X) y  \4 w
    : j2 {0 a! c9 r  Y9 A

    5 T. m7 p, \& `8 {( T6 A0 R' S% p最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。) C! K, }  r  p1 @
    BAT大佬写的刷题笔记,让我offer拿到手软% ~" o: A: h8 a! Z8 n
    ————————————————
    & Z& L2 J4 }- _- V' V% \& s- P9 k版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    5 i( x: N7 O7 J9 K5 ~! T原文链接:https://blog.csdn.net/lisu061714112/article/details/1187083699 I7 Y1 u1 d. o5 d
    6 X7 q, f5 }3 y3 d. e

    2 x2 Z; i$ d; d7 E9 o
    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-7-28 19:16 , Processed in 0.320246 second(s), 51 queries .

    回顶部