QQ登录

只需要一步,快速开始

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

    3 g" X' p  U* k7 L/ m9 [! q这个数据库神器真是太diao了% s3 t$ w$ V( y. r  e
    前言
    2 g; D7 t3 Z$ P( ~. t$ r对于开发、测试、DBA、运维来说,数据库再熟悉不过了。
    8 x3 O  S' n0 y
    0 E: d$ p+ _2 @! I( i8 R. N1 S/ p

    % O/ n, w* j4 h$ }$ I. I5 R* g很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:
    5 C# I$ F, N0 Z  p7 \
    ' S2 M. v$ x) g' Y' ?

    ! |2 w2 Z1 B% C" c2 \& C  _1 j* O6 r' j4 ?2 ~- ]2 ?
    + P7 R$ a6 y9 m0 P6 b/ _5 e3 e
    : S- \* L6 o: e" O2 @+ m0 ^# }
    0 g  d; M5 B- b/ e" h; `8 j
    用过的人基本都会吐槽,太low了,极其不好用。
    ; O! d7 u# D# x3 Z2 ]' C* m
      r4 T8 {, S4 ?. U

    # O# g1 ^% X: V, }. l1 c" L4 x+ M写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。
    - r3 h7 I" t( }+ w5 t* A( O6 n. O* I. W5 K" I, q+ J

    % S- a/ G. {& H% |7 k; M  t4 u看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。
    8 x. @% d5 g1 B" P1 b, g0 C( v' X
    & m; C5 c9 ^5 L/ f7 ]% p8 i1 o

    ! j  c. U, ]& x) V5 u, U3 M9 M对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。
    1 N3 i* L! l" v7 b4 H6 r
    - T6 w* j0 l2 m

    ! g( J/ O. }- f& t3 ~很难看出表和表之间是怎样关联的。# {& d& Z3 c9 g$ m$ P

    ( F- m+ H5 l8 d) ^0 H

    + V8 s+ w  B* y导入导出数据就更不方便了。1 Y* r; y+ H. t
    , R3 k2 J# d; R8 C( o

    8 B: F$ t$ k% \最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。( w! l* g& Y8 l1 f7 i8 D2 ^. d! O
    BAT大佬写的刷题笔记,让我offer拿到手软. p6 U* h& q* t* @: p- b: H' `& n

    1 \4 Z% {  w$ }* k
    # o3 i4 n1 O: s* l. T& G
    有没有一款好用的工具,让我们能更高效的操作数据呢?4 {# k) [% S& ^% A) `8 r

    : H% W4 o* f6 k! |

    3 L8 t& j" Q" B7 |, c& l; \这就是今天我要推荐给大家的数据库神器:Navicat Premium。
    " u( g5 S, d/ [& [
    ; U8 n0 [& d3 ]% L- m5 R5 S+ F* L
    - S! y1 |7 _5 K. _. ~4 q
    下面我们一起看看Navicat Premium有哪些牛逼的功能。% S/ J# L# [& L- e% J
    9 z3 o/ ~9 f& e. h
    $ E1 L* Q, o3 A5 X! f5 V. I
    1. 支持多种数据库+ v  W. j+ ^7 P* X
    在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。7 M3 @# r/ w; S, f7 O* b

    4 d  x# R* C7 h" g: a

    $ K7 e! V& }# P2 B点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。, B9 U8 ]6 e6 Z2 ]: I  m8 n
    * e4 z8 V; `' j$ \0 L
    $ z  i$ Z: H: w4 [. f# o
    2. 轻松管理连接
    / m+ e) \+ r0 d6 O3 G4 E2 g2.1 连接数据库
    : t3 u' B/ U% Z" K6 F% h6 R  ~之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:
      E% M" I2 }0 t; X' @+ ?
    . o0 S" N* e5 j, K, L

    % T4 X- f. f% S3 `0 Kmysql -h127.0.0.1 -uroot -p123456;# @! K1 Y3 J3 Y
    # ~6 T1 z8 n# G5 c3 ~& ^
    ' `3 u( G5 @$ _9 w( S7 o
    1! ^$ o3 h0 @0 |0 s% v
    21 b3 V" H0 x) h3 I- @
    每次都需要输入连接地址、用户名、密码,不觉得烦吗?, I7 R) \8 C0 P, |. S- r

    ! ?& C' Z" }9 `6 R3 H2 J8 p
    2 G7 p0 w* v1 C; x" M6 R- S
    恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。- N6 N4 u1 }; I( a
    ! H) r5 P1 P5 `. {! h9 n, ~# B

    - T$ ~- }8 D) H- U; Z- P3 B. v以后就能通过界面双击Connection Name,直接访问数据库了:nice。
    ; u0 k% W# X( [" ~9 R# x  L+ Q8 D# _, x+ X0 ], I- Q

    + X/ `; N% y; L! u0 I* y: v  y2.2 显示指定实例
    + i2 A& F# W% B% k有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?& y. B4 n2 m$ i9 f1 ^7 Z/ A
    3 J* r) W1 H! o1 v+ G; [* u7 i
    6 @3 X" I2 A' w& \) J
    这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。: `/ C/ G% m1 ]3 A& A
    , E* b# D# @# \5 `( ~! M& X
    2 E+ `- O9 j9 ?, i
    这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。
    + ?7 }1 [, `& U  l/ k$ K% p4 O4 l7 J( m
    / b4 U- o% r$ P3 O
    3. 方便查询表信息
    ) Z8 m: v# |/ w# ?. g: Z# @# P以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:
    % y8 y5 K4 d- _9 v+ [3 N
    % y$ ?* H& v, c! K  L
    3 h/ m7 O8 i: ^7 u$ F$ Q
    show tables;) l$ [7 o" o4 L8 c

    9 r+ `! {6 }* C; D0 T

    : ?% e" s" l5 O0 n, r* _1
      i( p5 T/ c- z- p% e) L$ l$ |( L2
    3 e5 E6 s* \' k2 b" _# M% L' J5 e- {' r& J7 H* B, R
    2 [. `2 \% ?7 t: c
    ) g- Y2 g6 ~- n- m  L0 V
    , j5 D& o: X5 S* i+ A9 A, G
    不好意思,那已经是过去式了。
    % I2 u. }6 P; ^
    % b% Z' V: h$ p: [
    & `" R1 P9 k0 U8 P4 }' O: y
    现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。$ X5 g2 F# d$ I" {, ~. p+ v* s

    * Q$ B/ _8 h3 y  i/ A

    $ b- t# q" j& H; R8 k" m如果想看数据,选中双击某张表就可以了:
    / T+ u' D% X5 d& G9 u) v
    7 ^- a$ z. w: e/ S7 z4 G  W

    , c/ C& K5 n' i. y1 z  N如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。
    / A+ D/ q# B, d1 Z' {) `
    ( E7 d6 g, d* w( n& [& F$ T* D

    1 a5 c- B" V/ i9 P' y9 v! E如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。+ V7 I: e. E% J/ _$ d, j

    & x+ F# i" [! p5 f0 v2 O
    6 e% [# s/ {- K/ w- s
    比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。3 p3 h1 r' u" s7 O* u8 g
    , _2 w& O; t! M8 V8 q$ Q& ^. J
    $ j" J* ?5 D$ u' W) E$ E* Q9 X
    当然我们通过如下命令:# G7 l. z5 Z9 O7 J+ R/ ^

    ' ]$ f# ?: x2 [, v$ I" a. ~2 C" O
    5 T$ m/ d# b) s$ ~
    show create table jump_log;
    * @* b5 w! v1 R( ]* F, L/ v: Q! e" B

    / g# M3 w) W2 s1
    " t1 U8 r# ^5 l5 U! H$ y5 |- [2  `' `0 C  M4 U; l. \
    也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。9 f0 C2 Q( P, V" D9 x

    ; K* ~# S9 `; I/ O# |

    * V8 U6 Z; w. k- Y9 v3 M4. 数据库实例的ddl操作" q; Z9 L' f  P/ |" q* M' B
    通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。( ^) M( ^$ a# h( L9 w* A+ y

    7 z5 R7 e/ f5 y6 O
    1 h& d( B5 r- q1 c5 P! c( Q3 }5 ]
    右键单击某个数据库实例,就会弹出如下窗口:% U5 P5 K$ Q/ d! C3 }* r
    ; i4 S; Z6 T9 L9 I" T8 i: [
    % q/ B3 Y& r* T! A8 X. Z' Q
    里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。3 w) y1 B% L6 Y% S9 ~& Q

    1 r/ c/ a8 C/ e0 R" i

    . u4 [. \/ ^( a( [6 b3 A  F4.1 数据库的创建和修改- p" q2 k5 k# m7 ]( O
    创建和修改实例时,只需要输入以下三个字段:
    # z3 e+ p5 ?( n8 `# }. `  L* g
    6 y/ r' z7 |4 t; Q0 {

    $ M- m9 \2 y* Y6 u1 S3 _& e3 ^# y4.2 mysql客户端4 z! r% E0 {! D3 S- E- t
    在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:
    , s( C( K7 G) s. o: w
    6 {7 }- {% ]' j8 Q6 N
    " ?% T8 g" V- L
    4.3 执行外部脚本) U! Y" C+ m8 A, {: R7 w
    如果选择Execute SQL File,能执行外部的sql脚本:0 O; j1 w4 _+ j1 o8 H1 J5 k7 ?
    8 l( r6 M2 M+ n: \# i1 f

    ' f) d  X" [2 o8 W. x4.4 表导出
    , u8 b9 L! G8 U( L! Z. u如果选择Dump SQL File,能导出所有表的数据:目前支持两种:
    . h* t3 e# K8 Y2 N+ A9 O& X, ?7 c! ?: P: t
    8 u$ @. a$ ?& y! h/ w1 c2 x
    导出表结构 和 数据! q5 @" l2 q  r( t. P' `5 y
    7 n2 \2 e4 V, X9 X& `3 r! p0 ]2 F

    4 x1 m/ N( S. K  {' ^$ @$ j4 E只导出表结构3 l$ o# {5 }6 Q( V) {

    ; L; p0 v  y! n. K* i3 S. V

    8 Y$ Z7 B0 w) b1 `2 @0 K7 _最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。
    8 ~7 `' o" t- A
    & |8 f" d, ?& [+ S* N
    7 |4 U/ H1 k# u0 v
    4.5 打印数据库
    $ G( r. |6 k$ T% r2 }如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。5 h1 Z! v; ^/ Y! h( s5 n+ w0 d

    ! w4 |' \7 S, w* O
    2 c) x& w& S5 O3 R7 b% o% j) \
    4.6 转换model
    / L+ x; Q6 K" j7 ^0 a$ V- q如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。
    ' b& F8 }7 q0 Q6 Q6 X
    $ \0 Z5 N% \0 g- ^! w, A4 k/ t
    , L. n" Z1 e& Z( R. V
    4.7 找到数据
    ) G4 @' f% Y1 @" g4 S如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?
    % @1 v1 c  j6 r
    , N/ N# k0 P5 b1 H: ?9 I

    3 V; [/ s& E) n' l- n4 _: F5. 表的ddl操作) @' z0 L: R' I* u5 A! W; q7 a
    相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:: n) b4 R- V1 c, J/ q

    : X) h% _9 P9 G

    4 }0 O+ A8 m( y& Y! j( {如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。* @+ _$ V! _- U' W- M; a  w  D% J6 F

    2 B; A; m  }; X2 s+ k
    9 O( g3 ?3 S, Y% S9 \5 x7 U
    5.1 表的设计窗口
    ( F/ T# e  O! l3 ~+ `如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。* X, U5 C* ~0 L! T' a$ r" D1 b

    + t7 A5 @! A$ B* s; d$ r

    # v) K1 F0 y* b/ m% R, w, C7 J它支持的字段类型有:实在太多了,列举不完。* |! L# X! d, ]1 W

    4 q) x/ O+ Q6 k/ |! v
    & A1 s/ \2 E9 f; X4 K. v+ i: z
    如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。& U7 o9 F) w0 H: D

    % a, c" i# b! p! c6 f1 m& k( \
    ) n3 c4 `2 S, A1 p9 S2 K2 H
    如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。
    , |! V8 O% d* K5 d2 x
    7 o: C4 a1 T: M
    4 q* a- `2 m1 @2 |& n3 k
    Comment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。  {9 e" G! j- u$ X

    5 f$ ]! b6 R# J' [9 @" `- P' L8 w
    + @: P1 |/ t0 T$ P5 D; i( r
    如果选择SQL Preview,也能看到该表完整的ddl语句:
    1 `! u$ [2 a4 C  W0 Q6 w& r2 c6 P8 b+ z- p: |- J

    " W; @/ Y1 m8 O7 ?
    + J0 m1 p8 x" a  D4 r# |' ?7 t/ {
    ) V0 t2 p8 c9 J9 E

    : a/ \8 ]  V) {8 C, m/ {/ ~

    9 R  y& c" u3 `5.2 表的删除, \8 q8 W$ u6 S% h& J+ }5 A$ j
    上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?4 r, X" G4 u4 Q* A7 B. p9 s4 v2 ?# S: _

    + ~9 Z" z1 ^3 a- _9 l
    7 S) Y9 f! b; i
    主要是通过如下三个功能实现的:
    6 p! N' \9 j, \1 v
    . J4 [) X) O  t; Z  r

    ! X* k2 `7 k! b. Y1 D+ Y2 E1 h: jDelete Table:物理删除表: z5 T2 L4 q" c* x
    3 L; m9 C+ m& v/ Q- i( ~/ z
    / J: w" f4 d/ @+ Q/ v
    Empty Table:清空表中的数据,但表任然保留7 P; U3 q0 d8 D# _, F

    0 F6 @+ a2 l- P% e# H

    , t! D- c/ O9 C, a: X- p8 kTruncate Table:逻辑删除表
    / ]7 ~' G) e9 r$ u6 u; O! T
    ' A4 G, b$ ?9 V

    $ g  U. ~# I8 X+ Z7 h5.3 表的复制( F/ R+ O3 I9 Q/ s& X; H2 r' |
    有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:* E* W- H2 P" D& G8 E% }
    3 V& N7 S7 j& S+ p
      y/ \0 E" ?$ |5 s- G$ G+ z, C* H
    如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:
    & r0 I; o% C$ ~/ O4 ?  I8 x9 G' W
    $ h# x7 p3 A- y% j4 D( L

    + {  T) G! o1 O
    2 N: N$ O' @$ ^5 W/ C
    2 R8 s, U# S6 e' z* t5 a
    & e/ O' J9 u' |
    里面包含的数据跟原表一样:. f* {% f6 r- C+ ^. j
    + m2 Q2 n+ p: E" r- p' v3 K

    $ Z& f8 L8 I5 J# A7 h" ?" N! m如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:# o# R' b. b# e

    ! T$ E, l& S8 {4 c4 n

      `( u. S( v% W& D5.4 数据导入
    $ L; v0 G/ D& ]4 ?* q; r) l在实际工作当中,我们经常需要导入数据。
    + m" w  O, D" ~/ W
    5 I' u. j6 Y$ e, i2 F9 f

    # v- _& ?( W  C  b. Y: Y比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。' V. x6 c* E. F7 t7 s
    2 B) W* C( G( o

    - T7 L: K$ B9 e" R( [8 f; P我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:
    1 U  F% E! t+ H
    7 }9 b1 K! ^+ y" C- n
    ! ?# ]8 T# T' {7 X
    可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:9 c, O0 `9 ~% p% R% D' e% J& A
    , c$ y: {- }/ O2 }( F4 v

    7 _" m- v7 V* R& p* G" q5.5 数据导出
    : o9 R/ u! T/ n6 V在实际工作当中,数据导出的需求偶尔也会遇到。1 f7 ?* M  d' ~8 C2 i) a
    ' _* M( D& o. u2 V# I+ o( B: V
    % Y0 z5 W1 N6 c1 n
    这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:8 y; L. r0 l' }! t
    ( }$ r  ?: y# R* J, T/ J

    " P+ C6 `7 Q( b2 _: ~: V" t" [可以选择要导出的表和对应的sql文件名称。
    0 N0 }6 }0 T" B9 A: i( r6 c/ \2 D$ L1 D( Y, q( I
    % Q# L" p! _  L0 ^6 F$ J
    接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?
    & j' U- I) ~7 u. B
    7 @6 Y% a7 Z6 h

    / @( ~, A2 Q( |+ Q3 q2 V/ H9 b6. 表的查询操作
    " ^5 F) H' S3 [) Q查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。
    , Q& U: R! z! e3 n- K( y' [  n0 V; P
    * K$ n" S2 p& j( ~/ ^
    选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:- d  a6 e. \0 P5 q

    # q5 t+ M; E6 Z1 Q; N
    + |- m" A% n+ c5 Z0 v
    6.1 执行sql语句:' y) x2 f* K& P/ g' V8 V
    在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。/ B' B/ I- x. z0 F* \# c

    + F  B% K. `  T
    % j- G8 _" {3 [4 Q, W. h+ G
    虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。3 g1 F* R2 o: H3 s. E4 y9 U
    / N1 g( B1 X" T+ K( B1 z6 O

    - c* B. ~% n9 Z9 W% R/ O6.2 保存sql语句:$ G/ j) A* S& x9 A
    有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。
    6 ^& [& T1 ]' g- t5 U% I) v) P7 R; C0 h4 K2 G. w) R

    / L8 @1 y3 {8 t0 c* B2 z- j这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。) B: p, A! P0 V) f. u

    8 ?* w; w; P2 U. A

    : y" @8 i* J. X8 V' D) D这样以后就能在Queries中非常方便得找到该sql了:
    " F& F, ?2 B: M+ t' `! ]% E" S9 X) z3 S* Y+ T% \0 I

    ; r. a/ V/ O! B: ]' r6.3 快速关联表& g+ W' \0 @' u( a/ c6 X$ Y
    我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。
    * A9 P) ?, ?2 K3 w* W8 s- V( P/ A( F' k$ f- H* r" v0 U9 d

    - Q) B, `, t4 w/ ^# T这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。9 x- g  l: v7 x, K- [( a7 B5 B+ n
    ' w& N( @( n% k: y
    ) B: }7 i2 }& i5 J5 T
    难道还有更高效的方式?
    3 k9 F- }2 `0 J/ y; s! V# t4 S: j4 D4 J# k

    ( L$ E0 L. e! H点击下图中的按钮:7 _2 R- a) F7 O8 Q% i

    - q# I/ S0 n9 `! g; W
      V* m6 B$ E1 H# l
    会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。
    # S8 ^6 x( n1 T9 k/ }4 [
    8 d) a! T% c! V* U3 F/ G% `
    ( q5 r8 v8 L: g+ k
    然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:) v2 {( E/ w8 t
    " H0 E7 P. F& k  r. X
    . v, s8 [- b0 r! N* z, x
    太牛逼了。+ i& N; X0 m9 f# E7 S3 I5 C

    6 E9 I! C& R; @- L: `5 o! A/ L/ E" k
    4 J' f; s4 ^. Q% }" ~6 E) {2 l
    6.4 格式化sql语句9 c% l4 D" p1 q1 _2 V  a% X5 A
    有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:
    : g1 H, V$ a- u& ^; }6 I# a0 ?* V, H0 H) \
    1 Q/ r& C) M/ \% e1 X, x
    看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。
    1 ~) ~6 C/ ~0 d5 [: H' T& T$ @3 a
    / B  Y8 _& P/ z1 H" y. E: W

    / K, U! S2 |) Y, ?% f8 s5 p$ y6.5 执行计划4 K# G$ E+ G, W2 M  f6 D. _* K' |
    有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:
    5 {7 p$ z7 B3 y5 K( [) J! K3 H7 r. G9 n; B) N- d
    4 r1 b  F% h; `( F. `, d0 B. e
    这样执行后,就能看到执行计划了:( G% u. j1 [* d9 V: c* F
    # N2 P6 p9 ^, d; K+ _
    & k/ c. S* u; D4 V
    但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。% H* |# [) V5 f% M+ @
    7 b5 q/ e7 T% i& |5 p* o# G, j" \4 H" q
    ' v. H# g# T6 N: {, N/ ?3 y9 `
    6.6 切换展示方式5 ~, E9 T8 |( P- h, p# h, J1 [
    我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。1 J! V+ i! G& ^& X, Q* x/ F4 `2 Y% I
    ( h: ]' L9 i* @+ a
    6 D2 Z$ ?5 [% Y
    这时可以切换到form view模式:
    1 p4 \" i- }+ \2 |) a8 p% T* v7 M. g8 f) r& t1 o

    ; q/ z, `7 a7 c  Q然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。
    / M2 b* x7 M6 L$ J- u* N, [2 R0 h6 r- Y

    8 Z& [7 P- F' `3 m& [6.7 新增和删除数据- c6 M) U$ l/ B9 g7 w) Y
    我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。
      Y7 _- a% u9 g$ F/ R/ r' f
    9 T, {, d; \4 q& \' ]
    $ M$ d% m2 f  r& l/ o* Y
    同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。" ]& Q" G6 E: ~2 x6 I) n( K

    ' _. R2 l: c! w: b7 J! v

    ; A. K* a6 z1 V+ ]3 n! f- h8 r最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    7 k9 e/ P; J' q9 l8 HBAT大佬写的刷题笔记,让我offer拿到手软& Z1 z+ y# M' S, k
    ————————————————1 S8 N: K' Y9 h) }& c; z% F
    版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。4 }0 p, h7 Z" q* B: M7 @
    原文链接:https://blog.csdn.net/lisu061714112/article/details/1187083698 I. Y2 _! R/ p5 G1 {

    % B+ R, P$ d- G. |8 z4 q* o- F/ S! u  p. w0 Z) t
    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-3 03:38 , Processed in 0.711292 second(s), 51 queries .

    回顶部