QQ登录

只需要一步,快速开始

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

    , I3 w' h2 m/ \9 T2 p+ n3 H. }" w( x4 f这个数据库神器真是太diao了; X9 _3 G. [( Y8 e
    前言
    4 A6 i. v: W* o3 y7 n$ A, `- M" _对于开发、测试、DBA、运维来说,数据库再熟悉不过了。
    ; N2 U9 r% ]! \; J* {5 @+ a' R  @& W, q3 @  x0 W4 j

    1 u: Z7 _3 f% k1 n5 U0 o很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:
    6 w5 k- ]6 c0 w5 k0 H2 E6 s. X0 f( e+ Y4 ~9 J: @1 a0 ?
    - F; R! E. ]( O: O$ N
    4 q2 [3 J& |. p

    ( a  ?( j& Z5 ~! U0 F, o( T0 Z6 d. G% S. D; J# X, J

    ' f' {+ X4 {% Z  V1 x用过的人基本都会吐槽,太low了,极其不好用。, c9 d* n* [  N8 j% `. ~7 a
    4 ?- n+ ^% \. B: |

    + I0 ~8 H, Z1 |* h- b, p  S! s9 p写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。8 k6 o- I& S! {

    - \" b+ F; b) c- F2 P7 i
    1 J' n/ m$ q; S; K+ A
    看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。7 T5 R2 E7 e9 ]* t2 [7 D
    1 A: O  u6 d  M/ m/ I! t
    & ]& I" n8 l( V
    对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。
    3 B" V- x8 \$ _2 m- ^, ^3 j& a. z2 R. N. `# m' s- F

    ( h. N& D# q6 Y1 r8 a5 u( D; h很难看出表和表之间是怎样关联的。
    " l4 ]4 N: \7 u4 g7 L% o
    ' s* K! k& v5 G& x+ B9 }$ v
    4 g5 H$ Q5 U% }; y& a) G' ^! s
    导入导出数据就更不方便了。
    ; x7 s% X  r! y# l- l, {# p- {: b6 l) A4 F& C3 j. s
    $ S! q) c3 ~: t- s$ E  c# G/ p
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。. R* k/ b7 H. c$ d
    BAT大佬写的刷题笔记,让我offer拿到手软
    8 |( i' `, o& m- b$ I
    * @* U4 W0 ]' D8 X9 g9 e

    8 M/ k- q' r' w% G# N" O有没有一款好用的工具,让我们能更高效的操作数据呢?; f, M# ?0 D% m

    % h7 M! U# _& {6 _# B3 B2 H6 E) A4 c

    8 h9 L# p. |% [+ j/ Y5 o& l这就是今天我要推荐给大家的数据库神器:Navicat Premium。
    1 c8 \. g' p  x/ X
    , e9 p0 d7 {/ _9 K

    0 d' l) C% v' K) d+ ^7 T- l下面我们一起看看Navicat Premium有哪些牛逼的功能。' \9 d9 Q6 b) N1 V0 u* f

    3 u9 Q* i% r$ E7 i$ [- w7 i

    2 [* ?7 M, e. `" J0 o2 B1. 支持多种数据库& I! @- P" V# C0 b) m
    在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。
    3 m: y, u" _6 y: D5 X4 |, u% J; z7 k, w
    - m" m, ]& e& o$ J; j
    点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。
    " H  [5 x; A4 a+ s
    ! X+ d6 Q3 k8 z
    , P* y3 b7 G4 \- X) d# }1 @# n5 Y
    2. 轻松管理连接
    , S; I: m; |* F2.1 连接数据库) P) y. @7 w+ x4 W9 Y, e/ z
    之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:6 X# P# `! ]$ n
    4 o# n9 O! s' @; g3 ^, ~& |
    6 s) r9 ^. J* S2 T
    mysql -h127.0.0.1 -uroot -p123456;( V5 I9 `9 V' b8 Y" H

    - F' r5 c$ O. S  j! J
    ) N4 p$ q! h: L6 d8 ]
    1( i  G5 o) {8 J+ W* b3 P
    2% e: L9 {# h4 l
    每次都需要输入连接地址、用户名、密码,不觉得烦吗?
    5 u  ?2 ]' z- ?% o0 C( `& N' E3 M: h( L+ G

    7 ~7 @/ J9 Z9 o恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。% m9 c) ]5 ]- N- x8 r
      Z2 @& _3 U% y- Z( t( \7 c
    , m0 s% N' u* f6 P- t5 N) g5 s2 X
    以后就能通过界面双击Connection Name,直接访问数据库了:nice。5 E3 C& ^" @4 O: P6 P
      `1 G7 V  q6 e" X, s; P# ]
    ; M+ Q4 l! f: w1 M0 E/ N& ^1 r9 b
    2.2 显示指定实例6 s- F  C- ?8 |: F
    有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?
    + m7 Z4 N8 r0 |; G( f9 |
    + S- }  C  |/ o. `9 b% B

    * F8 g$ G# _8 r( z1 d这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。8 I5 U9 K! f. M3 i
    ! t2 L! Q6 g6 m. z6 c( T7 ^

    3 `# ?  z8 A6 O  j这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。
    $ E. k1 z, c% a5 p" J/ y* K( E( u, ~3 U# d+ }: U6 p( {, d

    ' g8 p+ S5 P+ D+ d9 m4 F4 M) v3. 方便查询表信息- P: e& [" ?. H
    以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:$ T$ M# m* P6 q3 E( F- p% |

    % x$ Y: }5 P' L
    8 c! S0 q2 D% A$ F6 `
    show tables;
    ) l$ D. f+ b* o* w: V5 g9 y% x7 Y1 e4 H' N& }  X) ]3 P# H

    % Q( X# f* K# |1. w' p( b7 B2 h1 v" h0 i
    2# s9 K8 w# a' ^2 X* T
      \1 J( b, {$ n) O/ f
    " E" a. r, x: B& L# T6 V
    ) Y4 s# r$ [: Z9 \3 L& o; G! v$ H

    . K5 e. H, Y3 w" A5 G! R- F) D5 Q不好意思,那已经是过去式了。
    0 F) b) z! {; |; B0 K, r  p, k  s5 v, ]) S6 Z3 N+ s) m" X! j. I

    0 c# z) @: b- x! E1 x) l( D现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。2 ]! u" n& z1 Z% I7 O6 N

    : G# a* _* ~: d7 F, t3 }& U9 n* h
    $ e" H/ a- W! N) Y3 T, d9 o
    如果想看数据,选中双击某张表就可以了:7 X7 Y1 C2 l& u$ |, ~2 X
    5 a# U$ M, \' Y

    : P1 h& n% c  T8 d. U# S2 R, x6 O如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。  o) k0 T1 Y, j& ^: ~* s  H
    5 h& t% [# s- q  T

    5 Y" E) U1 e; b/ o7 n* j如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。2 Z- Q$ m: G6 E/ ]  E
    : d1 f% O5 u7 {: @
    . B1 q! {. Q# j0 p& J3 B5 s
    比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。. G: y/ Z0 H4 i. H( `7 v1 x+ ~

    ' C, f/ v. g0 @
      b6 U4 {' W$ X6 k
    当然我们通过如下命令:
    & V4 i: K: L* P( b
    & B6 X6 E& f% }
    1 h  w9 V3 v; ?3 G3 F4 \0 ~& x
    show create table jump_log;
    1 D1 u1 z9 e7 c4 k
    - e3 s, W6 a, Z" m
    . {5 o, F8 M' J* b2 s" b
    1
    % R0 A0 t6 Y5 v7 @22 K! w7 T- d; r) b
    也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。5 b/ c( W0 f2 P9 s3 i

    & E  r- V$ ~/ k. Q5 |

    + m6 S6 R: Z! s) z$ e# u& i4. 数据库实例的ddl操作( A7 h, i* A4 A: k  l. S* Q5 B: C
    通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。
    ) o3 N. J9 Z. `: [- i$ J7 r+ K; z( v  R/ a9 B% u# y( A
      M) {- Y3 k# [, \1 g) K( v
    右键单击某个数据库实例,就会弹出如下窗口:
    - P" \2 O) s) q5 a  K3 Z  G- _  X  a  h! `! p
    5 V7 \: K( R7 x
    里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。
    9 C# `$ N! U- J- y
    + l$ N( j" F* k

    & W, u- v8 l5 {! h4.1 数据库的创建和修改
    ( X5 i4 P: F5 e5 h$ D创建和修改实例时,只需要输入以下三个字段:
    ) f! i0 [5 m% L' |7 E% k6 r9 |4 O8 H* B0 N! U6 w8 P& q
    - e  m) x3 \6 ?3 M0 @! S% j& K
    4.2 mysql客户端1 \0 F1 _8 ?& F1 J  p
    在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:
    , ~5 r8 t# y& x; R5 H7 s4 R# H6 H& P( L5 \
    . d) D# P) Z0 f$ \
    4.3 执行外部脚本
    8 D! r+ h6 T1 E" ^, {) {) L% B: ]如果选择Execute SQL File,能执行外部的sql脚本:, l. t8 B8 U8 N  f6 a5 }$ t
    ! m2 e4 Z& {% w0 w' i. Y) a0 p5 {5 _

    5 f( n& r3 U/ e8 B4.4 表导出
    + N# N4 A3 \$ s: {. [, h3 J如果选择Dump SQL File,能导出所有表的数据:目前支持两种:0 W- r, a; L% o- p6 P6 l
    . _; ]; O; p, e% [, C8 K
    ' y' R' s( Q, l: _. y' y2 }2 z5 H- ^4 k
    导出表结构 和 数据+ T& s$ E: D6 C

    . q/ Q. R  p$ d) `

    $ C/ ~4 K1 U* b$ y只导出表结构: U- e9 I( G# T/ c7 i$ M
    2 x: u/ r# J8 ^! [9 B) J
    ' y5 U* r; T5 r! W% Y9 Z9 }
    最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。9 I* G- G- T9 h, j* D

    7 q& y" O6 U. [) ~% @

    - W: ^! D  O1 ^- w4.5 打印数据库
    1 i' p+ v: C% e% i9 q: H8 y% ?如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。
    1 w) {2 T' P' E* C" n- c+ ~
    + m& E$ ^0 C' G* L, z5 X. A
    7 L+ |( T+ [) b, q7 v
    4.6 转换model" w1 r7 l' q& R3 ~- C6 j
    如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。) Y4 x* W$ b" `7 s

    - \( i2 `% i- {0 K* i2 c

    ) ~9 s% y; ?5 Y  f0 s4.7 找到数据# k$ w- Z3 f( X! m* X" V
    如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?7 }! S  x  Z* g9 w- f: e) ]2 q/ D

    1 B! _) Z9 q+ ]8 a& s

    0 ^+ x# n! G- c/ M! u( L' o% B: S5. 表的ddl操作# u" p/ ^5 o6 X( a1 F
    相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:
    7 {( U, t& x' C
    " o) b4 _0 e1 y3 [  g

    1 x* @( [3 B- q4 T1 }( G如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。
    ' X1 ~0 M. }, @4 |8 |# H: V5 D6 P* P7 O3 N7 {* x( U3 Y9 w. F
    . r0 x: S: H9 e: B7 [! r
    5.1 表的设计窗口
    7 w+ v, B9 d, U1 ]$ w5 D如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。9 g( @7 |3 i+ L

    $ w. P: c1 c9 N" a

    . v4 p: L) Q: A7 R! F- B+ P% N它支持的字段类型有:实在太多了,列举不完。6 f' ]1 s: s4 z

      B, B( z" P; [% U  t$ i1 ?1 N
    3 N5 I% N# A& d
    如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。
    % R% U* h& J' j" F  b3 M) {7 z# x) H7 K2 W" ~! f5 g/ K& z
    $ d/ ^- c- U0 |/ O2 J& t
    如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。
    * F, w( g6 R2 Z& A8 {: l" f% n5 g7 B' V3 C' d
    4 @: F. C. i; ]5 z1 r3 R
    Comment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。
    - S( h1 V/ {+ `* s2 K; L
    . v6 O% c% P  x0 S$ I

    9 S# S# u" ?3 x. P0 R( V如果选择SQL Preview,也能看到该表完整的ddl语句:/ W, o. v& s& j7 ]

    4 z9 e7 c9 c# `7 w2 d8 j+ a
    & Z4 |4 C# |7 m

    1 }. c  {" [- C6 F0 j" j+ [
    * k5 D. S. y* m

    7 f, p! r; @+ W
    9 s1 t: d' @* G2 o6 I" X7 |
    5.2 表的删除
    3 B1 f$ Q* l- T# Q/ b- e上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?
    % E$ O: N" o1 P5 V. m* ]$ f/ a6 s+ ]
    + m8 y; K/ y+ {( ?- I

    6 k8 j7 h7 J: B0 {主要是通过如下三个功能实现的:
    0 `" o9 q. b! Q; b* m5 z- k/ D# m3 ^$ H. s
    ! \5 G/ B, j; v( K; P8 i0 _
    Delete Table:物理删除表
    ! K6 N3 D! B! ^1 W' Z5 z; k
    / M# o. X* L  e

    6 M& W0 \) Q+ S3 G( {0 p; [6 GEmpty Table:清空表中的数据,但表任然保留
    0 \( o  G1 ~5 r- y8 `: n# X2 _% t& P4 N* L

    6 G4 X1 `7 n% p- z7 q, V3 d' B2 s% ATruncate Table:逻辑删除表
    8 _2 j2 Y, g9 K" k* J1 `1 ]
    - S' n$ G' Q' s8 x9 T3 B1 p3 s* j

    ( d" M; S( o! E5.3 表的复制
    - n) \  N: }' [有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:) Q8 z* |0 T) E$ V( P$ [

    3 k% C3 \" G9 {( t/ n0 p+ V
    - ?# Q1 L- u- U- W1 u! A
    如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:
    , X8 l" d9 @3 l& Y2 u3 ~
    6 r( i- J* b6 E2 V, O9 \4 X! j- F
    : Z% r3 r1 |; E( L! m2 a( e  v0 N

    - F; g- S1 d4 p& Y

      a8 _2 J, ~; a' t
    6 A7 t. M/ B- |5 i: |

    0 Z# T9 w, P7 L  `5 `5 N' z里面包含的数据跟原表一样:  ~/ P" m2 }4 E- K4 y' a: A- T4 D

    $ y; L" L  V" i" \* T4 }

    1 z$ v( h' z9 F8 Y2 }如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:
    - P, d# O6 L1 U
    % L  w" r: f$ B4 r

    * p( r8 Y1 O' Q, M9 G5.4 数据导入9 b- G* ^' A  F% D8 K9 o5 ^
    在实际工作当中,我们经常需要导入数据。
    ( [1 j) i& ^+ x( u' t9 M  `- N
    1 [% _1 _0 ]  U  e! Y9 ^

    3 `$ Y& K4 h7 D比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。
    $ l6 H" s) V# n$ ?' e6 U, b
    - |3 k* T8 @" h/ w

    ! J+ Z2 U) M# y我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:
    ; w! @/ l2 a% |( n- p( X
    0 @$ `# V) H' B4 e% f- e
    * [- t& @5 C" O) m1 T
    可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:
    2 v3 Z% d0 [1 o/ d. R- s0 e6 {2 e' W& o' o7 l$ z: S6 [
    9 n/ B' ]5 h3 l' ]3 J* a
    5.5 数据导出3 Y( R  Z9 C3 U4 a; D/ |! J) a6 i
    在实际工作当中,数据导出的需求偶尔也会遇到。, A: }1 F9 Z+ n" k* F
    1 W1 s8 J7 H0 Y- P) U  C
    8 `; d8 `4 A3 y& c  I. n
    这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:
    ) G9 ^" ]2 N% d; I' a% e( u; @1 w  I$ k' N: z9 I

    / e5 `+ `0 B4 \0 \7 M可以选择要导出的表和对应的sql文件名称。
    ) O7 ?4 {/ P# d; l! b# }
    ; d1 s& N2 R( z0 [" d% }: e

    ( A. B  G) v/ T/ _/ G# {接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?8 A$ l2 b* ~3 y+ ]2 ]

    0 r% u; l1 Z( }  h, c

    ' l* {0 a8 ^" e. o- V6. 表的查询操作1 o4 _4 X/ X1 d0 H  w
    查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。
    ! G* R# m. f. V& G7 w
      m- z$ e% d  B! d: T1 Y; c2 `9 k

    ( W: S  g/ l% F& x7 C0 P选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:8 m6 j$ w( d, i- U
    % v7 l' L+ B9 y. \* w
    : J* n" ~- N2 x! ~8 A' j, e$ w
    6.1 执行sql语句:, e1 c* h0 z) Z& q1 E7 l
    在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。$ c2 ^- Z4 V% ^4 T
    ' x! d9 x8 D- ?  M" z* \
    5 H, L4 _5 l/ I$ s9 c) e& `
    虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。
    8 Z2 B4 x5 m) j3 t+ H& A% `! P0 i7 v9 B2 W( |

    1 ~# n( `( f9 Q% C: j0 E+ B6.2 保存sql语句:
    + {$ l! _' C( P' S; U有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。& i1 n+ U0 n7 [) v# O0 @- b. ?& p

    7 w, d$ t, v, J" C- U
    7 o% a6 E+ M) j
    这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。
    ! z3 p( ^2 s" i4 u" c$ K) r& t' A7 [1 R( L' H% p0 D4 i
    4 V# T" |& z# W' I" q9 e
    这样以后就能在Queries中非常方便得找到该sql了:) s2 ^! B9 [/ l$ f+ E
    . {! V1 s9 R. c

    ; T2 a) R) A. i6.3 快速关联表+ P( x6 M7 G" ?6 |: p, y
    我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。
    ! j3 }$ F( F' J8 E" t
      a3 c: @& y7 \  D
    6 |0 Y2 P3 m  L0 P3 U
    这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。
    5 l& N0 M  g8 X, S% {; ^# i
    5 Q# R& W) p  G4 g& J2 X/ o' P

      n% @( C+ K% a9 C  k/ B2 W难道还有更高效的方式?) \7 p7 A! o) ~# \9 g) L8 Z% v
    4 H4 N+ B9 b7 A0 b& q( c$ [
    : }$ U( X( w" ]! f" c: c1 \
    点击下图中的按钮:; d2 D' C  E2 o4 r1 L, o/ A1 g
    9 {2 }$ h  B2 u- F$ d/ F
    ; }: X  D/ x( w
    会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。8 E& S4 l" f; n8 B  t  Q

    7 @8 F: Q# c" y0 M9 ^

    - g8 ?7 `4 E6 D+ V  W然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:
    7 o, O5 }& k( d9 f: P# a1 N& O# p$ I9 ]# i

    ' w" V2 z, ?( n# j太牛逼了。
    " x8 h" Z1 G6 m, M2 ?8 E) T  \# @* m3 D& T+ t+ Q

      I% n4 C* J( E% t6.4 格式化sql语句
    3 K! e8 T; ]( l有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:- F) \/ ], U: g6 j6 P+ F3 v* B

    3 U2 H, L% P; i3 d) C% X

    * W) g2 u8 Y+ t- O1 k- g3 ?; f看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。
    7 k) H8 r' F8 R- G7 J" g( a! ^- f7 P7 A

    ( \4 a* T  H, |% r6.5 执行计划
    5 Q" a5 j" }) j2 c有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:5 u* @5 M. L  M5 q) w

    ) @1 [4 D8 ]1 z

    ! T& ^& P. ~2 g这样执行后,就能看到执行计划了:
    ! E8 ?; ?7 w6 t" _( {) q0 @9 o, ?9 Y9 w! u
    - {. T: U7 r/ `/ K
    但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。
    : R; i( L% _, D/ b/ z' D1 n8 f4 x
    6 J; L4 o+ K  {
    2 P# I( r0 M$ l! }0 @! m+ z
    6.6 切换展示方式. R% c' ~- x4 o( w  I
    我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。
    6 w' c- {. a2 d" o4 V5 I
    5 A% A  Z+ |+ m! b8 v% ?: D7 o/ _. q
    ( w) O2 i4 w/ O/ ^2 S+ p* o$ z& M
    这时可以切换到form view模式:
    7 t) T" E& g: a$ l
    $ Q. ?% j9 t0 Z" s% {

    8 U& x7 U1 ?: A然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。+ j0 s3 C2 P1 r2 c% Q3 U
      I$ f/ U5 f' k: o/ y

    1 L" u$ B! u/ Z6.7 新增和删除数据3 Z6 P4 P5 {2 W. N% |0 u
    我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。5 x6 H+ Z5 t  G* R

    " ^6 ^* x) n/ M. C( o

    ' q" R( w2 q; L" k0 U! Z9 ~! y/ }同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。
      Q0 s7 l5 g# `. i( k! p' C. Z  v/ {( O1 I/ |( J$ [4 o# C
    6 m0 R* k0 k8 J9 z) i, I
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。1 C6 M& v) E: M, B1 ^) E* C& _
    BAT大佬写的刷题笔记,让我offer拿到手软
    " N  l7 p% C) R+ Y" ]5 \4 M————————————————
    9 q' [' a/ I6 q) z版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。2 o' T! A" `6 ?# A  v' w  Q1 E
    原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369' B2 I6 m# j9 `( C1 t

    * M& G+ u7 m: ]: _1 U. K# b& ^
    : c0 r# M  `1 r* K( A# w8 z9 {$ a
    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-9-13 18:31 , Processed in 0.339616 second(s), 51 queries .

    回顶部