QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2942|回复: 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
    $ L$ m9 r; E/ ?$ Q
    这个数据库神器真是太diao了
    ) E( o, B6 a  c0 ^前言; q% w" k+ V% G0 _0 v2 E7 N
    对于开发、测试、DBA、运维来说,数据库再熟悉不过了。
    * g4 ^) T% x+ N4 l* t+ Z, K9 q! H8 ^
    1 v; n  @' `3 ~* Q* _& Q
      C8 m& |6 z" [) D" p5 h) j: U5 s/ v5 R
    很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:5 m: v: i+ P+ R9 i# R7 }

    0 o8 U% U5 i( ?9 [9 a7 K
    7 p2 E& \& l2 @5 J
    9 ?1 N, |  {* }2 z, H2 ~. z

    9 ]7 {) V9 r0 T* K8 t$ Z- ]( O) e' B. q% V; T9 C
    / F# T( g& L1 Y8 c1 D+ j
    用过的人基本都会吐槽,太low了,极其不好用。( b$ z- Q1 s! @, o3 c

    # C& ?/ z# V/ n) V0 ?0 `

    ! `+ B' K& b( e" }; F6 `) I写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。) v7 O. \5 y4 J9 S0 |6 P0 D

    + t# L% x( k& \' _. l9 J

    ; B2 F4 t4 ~: t2 ]. ^看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。, ]2 T8 \  {# C

    4 Z5 D' Z0 e3 e

    1 K4 y8 m0 g. o对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。8 H/ B3 B3 g" a; H( S6 D
    & |* a7 K, L7 }5 c1 T
    8 M  |# x' v( B+ n' q+ a
    很难看出表和表之间是怎样关联的。1 A4 s8 e: ?# K# y: r0 D6 [+ J

    - W. k3 M& ?, K/ z3 J

    9 f- O! R! k/ P2 ?0 m- c导入导出数据就更不方便了。+ E; f! E9 v1 w6 G% w, Z! I+ g

      }8 z& ]3 j0 C

    4 V! Z, U6 ]. M* A最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。7 ~6 L  y2 ~9 n
    BAT大佬写的刷题笔记,让我offer拿到手软7 G- ^6 ?2 F, t/ [
    , d! C6 }7 n- Z- k' @) R: v

    ; `# a2 I* D+ N9 K有没有一款好用的工具,让我们能更高效的操作数据呢?' O% _. Q, h7 u$ K# H
    ! _0 b1 D7 }- ]4 p

    2 e& P! G' w: }: x这就是今天我要推荐给大家的数据库神器:Navicat Premium。
    6 I: s  ~  i+ V! L7 R' w- d. [6 o" \- L- D+ k( E3 j

    ' E( N7 c- z; t2 d! [- @下面我们一起看看Navicat Premium有哪些牛逼的功能。
    $ w6 c; B0 w8 g# M2 u
    $ Y, e- a/ L- S- d0 Q1 L
    $ [8 W4 `9 u3 d
    1. 支持多种数据库+ J. k2 C- T1 c1 h; h
    在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。2 B8 j6 m/ T5 {7 b* r( _7 X
    ; l7 D% x3 c+ c; A% G
    # E* O3 o( {- M5 r; B8 ^0 o& f, _
    点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。
    + l- O" S! }3 G0 p" f5 Y" ]! o: N, Y) z; O3 x( Y) a
    9 \1 _: M' ^0 Q2 P
    2. 轻松管理连接! q3 g) b# Z. T( A1 _6 T
    2.1 连接数据库
    & Y; O* u  {2 E之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:6 x7 F( x2 ?# }9 E& X
    " g5 e" o& M# m) w! J
    " R# Z- @) i  j2 `+ |8 f# {
    mysql -h127.0.0.1 -uroot -p123456;
    7 Y  P% U9 k/ w9 P4 a: a& P7 T" |/ M$ B- k' M' y

    4 Z% W2 b$ `8 M1 @8 W1
    3 G$ C; V1 M3 t# p# s2
    # S! g: @* i4 b( L每次都需要输入连接地址、用户名、密码,不觉得烦吗?
    * r5 T* D/ L! D# ^9 s- i
    4 G, _4 |8 b2 m- q! m( x

    6 A- k! q- x. M* |( k9 {, I4 \$ s恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。
    + [% U1 A: M  e" {  f$ I7 u5 n. I" X! G# T
    5 z, D& w7 y' p" `- _; G
    以后就能通过界面双击Connection Name,直接访问数据库了:nice。8 E( X  b# e# x4 S4 Y
    & M# n* h& J1 p6 B' @  ~

    1 M' O( i) ]. E2.2 显示指定实例
    & B2 t8 D3 r; E有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?
    3 x0 U, }9 J: N& k. o& Z: F& v7 Y) a5 l6 @; {+ r

    # `4 Q' i" F% v/ {* u) F1 L这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。
    # s' V, m6 ~0 r% e, ]0 J
    ) O5 X7 D  [+ Y! y( ~6 j' G

    1 ~& {; j" Y; E1 e; H5 T6 A6 {这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。8 K- e+ S. q; X- t- s
      o& ]& g& K% h1 ]

    $ |: \8 O# }' w! i3. 方便查询表信息0 K- M  ]. \$ p3 T0 O
    以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:9 A  x! B# N( q9 w( S
    % m( |9 ?6 V; G# \* I+ m' ^
    3 v% @" p. Q& r( N" K. g
    show tables;
    1 a4 `% }/ @5 I5 L% X/ y% @3 G3 G

    ! d3 y' X, I/ S0 i1
    ' y% }! m, h, k( o# q2
    # H) C. f1 E1 B+ q6 l# q7 O
    ; n8 q+ Y0 Y9 S

    9 w4 }/ O" d; ^( L9 [/ u" ^0 h% P4 z9 F7 w# U; L* E; r8 m# I
    : V& `" G0 N/ }  p, V2 ]6 ^
    不好意思,那已经是过去式了。
    & Q2 n, Z' f1 H6 N. L8 S2 Z
    ! |) q% Z2 y) V; x3 P6 M' _  H7 c
    ( |" Q( f5 f9 z, C$ x
    现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。4 `1 |+ v. q9 Y# I

    $ d- p$ M7 O7 F, x
    4 S  r' U+ S; N! Y2 L' N, q( ]# r
    如果想看数据,选中双击某张表就可以了:
    1 C& ]- @+ c) c/ {" g4 K( i, X
    " C! ~% B+ f" j1 O- ?" {
    - V$ s2 a" _  m6 a. E, P5 A
    如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。
    / M7 n9 K1 h, w. l: C$ Y* i" i) P) t+ D& p2 V9 p' }) n0 x$ P  d% S2 @
    0 @9 k; N1 q  t% j+ R# `
    如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。
    : n: z$ d& w' F* K* L% K6 S4 A% r5 X' g* f* y$ Y: L! p- @

    : f4 u3 b5 @* u/ R8 L5 x比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。! R) t. X! M5 O! G9 s
    + j8 l3 o) I! B0 j, b! B, c7 q& _

    2 [( x4 j, C6 {2 h2 O& s当然我们通过如下命令:  E3 u! Z0 V8 c& n

    # l  n4 W) G* `1 G2 y" }- d, W- z6 m

    $ L" y8 E6 m( y. l/ Xshow create table jump_log;
    ' o: i, D8 P  X: H  \: L9 D4 T' d
    7 v$ F( i, o( ^& ]8 B8 m0 N- @
    & m! H8 W" X, F
    1
    # P7 [' n# `3 h2
    4 y" ?/ _3 F( x* e! \% R! u也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。
    2 R& ^8 }% s3 [! O8 g; `3 k+ \- z2 i- W4 }0 Q- P. X

    & M. \$ Y6 ]" o! F  s/ u- W! W4. 数据库实例的ddl操作; G7 R2 s. h6 B. J6 Y3 t  p
    通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。0 x2 a; r# [6 G

    + r6 `# |- n3 q6 @4 x

    ( s: c! j( ~  W- j: e右键单击某个数据库实例,就会弹出如下窗口:5 [  R- ?  H, _( a+ l( z% |: h: o

    1 T9 T4 P' K) ]; ]9 v* S" o

    . T4 H$ ~1 S8 q& i7 u里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。7 w4 _' ?1 f( @. i7 g/ z% q

    1 G2 Y8 v; T( `7 }/ _0 W. _

    ' ~6 N# _. U3 v' R% }4.1 数据库的创建和修改
    * J' R% `% C: o2 b创建和修改实例时,只需要输入以下三个字段:
    - c+ M. r" K/ ~+ n9 W3 l$ {  ^% s. r
    - ^  F# i7 _2 b; E

    8 e9 m! B1 e: a/ C4 H0 o- p3 |' q5 j4.2 mysql客户端
    # z- Y6 E3 ~) E& {: ~在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:
    & E0 _3 h$ ?2 [. u. Q
    3 A6 d% A. y5 ~9 D$ ]5 }: t

    % S& {5 W6 m/ o" J: c' x# O9 o4.3 执行外部脚本
    / W4 T% Z8 G/ ?# M2 q- m% l  T' t如果选择Execute SQL File,能执行外部的sql脚本:
      }2 m/ R3 Q! a6 r) k
    + [: N: `7 v2 n
    ) v: i2 e  [, h/ C: I2 l
    4.4 表导出
    $ N, z0 }+ j, E如果选择Dump SQL File,能导出所有表的数据:目前支持两种:
    ( ~& P9 ?% }5 u, l: K& A5 z
    8 T" B% m. U$ @9 P

    2 `; m" w5 S/ |+ P2 G# ]" Y# j* h导出表结构 和 数据
    ' }6 {+ d1 k* I0 G. u( ?! a& s" w0 I0 d8 s6 u

    6 R0 e! L4 h  I6 v3 p; A只导出表结构! _# n1 w( }" o# w! H$ }2 w  _

    ) m1 |: u  t+ T

    ' t4 D. S& W* H! q) M最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。
    5 `! L5 |( V/ U* q7 t( g
    7 b# k* o5 t* K2 O  Y" {, j
    4 X) b0 k7 W4 z, o
    4.5 打印数据库
    5 M( r, `. |2 f( c如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。( z- y: S$ m, c) u

    , H& w/ B0 \7 K% c0 j: _3 b5 o* W

    1 F: L) y  k5 d/ @9 K. g4.6 转换model; u; L" B* W! B9 l
    如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。3 f4 ~5 X+ v# J) M- ?3 V) v

    9 b4 m; l. A5 w; y

    # y, w6 }0 @3 o4.7 找到数据
    6 H! ]) ]5 k( @2 A. d: M如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?, S; c; P9 M' F0 z0 {$ C
    : B$ [6 y- Q7 N" U( p

    % }& U) @% C; [6 J- n! D9 x! D5. 表的ddl操作
    . P/ ?2 `' u+ g7 J: Y" w相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:# q8 c$ k/ K; \7 l( N" n: [5 s
    , |: y+ x! i3 ]8 P0 [* z

    5 q8 [4 o  t3 o0 r! i( \如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。. W% x9 p& H/ ~- x7 h
    % O' i) O" `3 ?0 `

    4 I# c8 c& X  {' V8 f5.1 表的设计窗口
    : b% L+ ~1 [0 @# [如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。% ~" j& G! X! N
    $ V, A$ y. W8 W  x
    $ w6 _9 f5 a+ U$ G. m3 G
    它支持的字段类型有:实在太多了,列举不完。
      E% \, G, D( q: O5 {6 R6 p6 w% R* w

    1 D: J6 j  j6 _( C: P- {+ l如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。" G* }9 ?2 b/ ^4 R2 f
    7 J' {4 K. l, d) k
    " I# z! M: r9 |9 ^1 G1 J( ~( h
    如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。( n) v) I: `( D9 X1 Z+ y1 \' |

    9 ~4 G6 N9 ?4 M' |9 c. W# C3 v
    7 I/ G+ d' j* G: C- c# h  \: j- U$ y
    Comment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。
    6 Y6 F6 Z; w! r& J
    . L* ]+ J* l3 O+ p

    $ u) z5 F: t; E, N如果选择SQL Preview,也能看到该表完整的ddl语句:. T# H% q- u. ]7 w% M' Q1 B( H8 z, {+ t. t

    - K# o& z9 X, B6 ?$ ?" C
    * F2 S9 A0 r5 a2 z/ F' @
    . S8 m! [; A0 K4 O' a

    . i& n2 _; R9 D0 Z% L
    9 L! R- n3 z: D' ?" _7 B
    / B! h1 c4 K3 C+ g- s, n1 k' q* N
    5.2 表的删除- p2 L) N+ d3 x: ]4 F8 b
    上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?* k+ k2 w8 Q9 y2 u
    % K7 @+ q% n6 C( f6 K2 B9 |$ Z

    , T& a  a/ E9 Q" r, n0 a主要是通过如下三个功能实现的:
    6 |, @# x: D3 Q" I
    # G: A  N- i) {2 E  n) w* f
    ) u" a* w( k  ]. W: K
    Delete Table:物理删除表  A  g$ i6 N- @8 L6 J! Q$ d
    $ u3 S5 M' }) ^0 q% U
    1 u- C0 \. G* b( |$ Q3 V% F- e
    Empty Table:清空表中的数据,但表任然保留
    8 d$ T  s7 B% _/ N. |* \- b, ], U% T: v' K+ L3 u' J4 b3 m
    ) ~8 T% u! p7 {1 f* j$ g  D, d& D
    Truncate Table:逻辑删除表, m1 j0 B8 m8 k" T# U

    & a4 D+ z( Q+ u& I( y( _/ Y
    " Y) y* s1 ~: C- {+ E7 v/ {0 ~0 w
    5.3 表的复制
    + N, N& W; j3 M" O- j有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:8 o3 }& ^5 y. O. H
    1 f# e# z, o% t3 }* I
    ) K/ j, _  P: F
    如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:
    6 U! ~) J: V* C; P$ c) `. W2 U" b! ^7 d1 z: b+ H+ e; S; V/ l2 U
    7 p5 n! x6 n/ h4 P

    8 Y& @: K5 T1 o( R/ i
    ) F' M' ]+ h) F- h! w) a

    8 x3 {6 C7 [/ b! }

    5 W0 Q, B" @' t5 w+ G" T. S. j2 j里面包含的数据跟原表一样:
    : c( p& G; u2 ~' A& W: f. m  N1 [4 W: ?* a2 e3 c  E/ F; b3 Z) a5 ]
    $ l$ T( D& w/ |: a" H
    如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:$ \0 n: S. d; J
    # X$ s  |4 }( W6 ~) ^' \; F5 T

    8 [# f& w/ t0 U4 W5.4 数据导入4 t! t, g( h. p; g" q
    在实际工作当中,我们经常需要导入数据。
    0 @' l1 ^4 q& r+ X! u2 y" w& ^/ ^' g9 L: {/ i% l) S
    ) N6 S; A+ F6 L. r) l9 f! v$ L
    比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。) B) [( M  a6 D% v1 o$ n
    " l1 W2 F3 k$ B9 l& R* ]" K

    , ?8 u$ B# q8 \" z  q' Y我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:
    8 Y& H2 J$ w3 b2 b+ v" u
    " I, j- p( N1 n4 @) c6 [
    6 `" n1 Y% s4 @- m6 G! T3 N: g
    可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:2 }) U! E, T) g
    + Y0 o$ G+ n& S; p

    0 Q- ~2 e# f0 [4 t$ f5.5 数据导出
    6 X: }+ R( Y. }  p: i& C6 [在实际工作当中,数据导出的需求偶尔也会遇到。
    1 m/ h+ B  t& w9 u( Z6 q, P; `* S7 a; h4 m) r! c9 J/ F' c
    8 ^0 \* y' z( A: s$ t6 E1 o
    这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:
    0 Y& P- [+ K; J5 k! C" B/ D! X* R: f9 u5 w
    % J  f8 Y& P. s
    可以选择要导出的表和对应的sql文件名称。, u. B( z+ F$ i, Z8 A

    & L7 M1 l: c- L) `# \

    0 I9 g# v8 S9 u3 A) h接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?. d2 E" Z0 g/ @0 j5 n# t

    / F% x4 I( |  B# @# Z8 c
    8 Y" u7 j& t* ?( |1 v9 k
    6. 表的查询操作
    9 B' O* U* q$ h$ i& z查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。
    2 Y( B$ I0 `/ z' y0 O: N' b; M7 B( N6 t3 B3 G
    2 b( T3 _4 z# C7 s. c2 t5 K8 r8 D& [
    选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:
    0 q0 |2 i9 D$ ^* f2 V! e% h" |  X( ]/ |9 p: Y
    0 `& f& r9 W7 G" L0 U% Z% Q/ C
    6.1 执行sql语句:
    9 M6 I4 e# i# y在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。
    3 k: E1 R% ?' v# Y
    ; w* k1 d5 s4 X1 v6 I8 t% j7 q$ h* b9 K
    ' }) r4 u( f0 r- Q4 n0 T$ d' k
    虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。0 X6 A2 z7 F7 m% a+ V

    1 Q( L5 Y* l/ c. B: I. H- i/ Y

    8 d" Z' P. v5 Q* M7 V! d+ D6.2 保存sql语句:
    3 g3 l3 H& |" l有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。
    - D& L5 `9 r& [8 a6 Z
    5 L  w. e2 R' I3 c  U1 E' W7 z
    : f1 x- P. x8 I+ U/ e" b0 P
    这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。
    ; K: |2 y1 f3 ?3 o- y+ U
    7 W, R7 ]" e" f6 M0 b

    ) U) P2 V& o; Z$ ]8 [6 O5 F& ]这样以后就能在Queries中非常方便得找到该sql了:
    $ p7 L7 w. E7 k* p# v0 v7 \% t4 q. {) _; X; v5 U
    ; f3 I2 W# ~$ E+ J' x
    6.3 快速关联表" ~5 j' \3 I0 H8 ]$ I; f6 T
    我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。
    $ V' A3 U% V8 j5 V: s, }7 a! _" C- u4 x! t

    + F0 y0 w/ Z$ ]这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。
    ) r& F; A, u0 f5 v* R0 }! V9 w
    & X4 x# G1 T* }* o0 Y4 M4 @6 e

    0 d8 n. @6 z5 m2 v5 f! U: {难道还有更高效的方式?
    ) }8 w: @6 G( a7 P
    6 \2 e/ |# j' g* v

    4 P$ b5 \: x( B8 o; j6 F点击下图中的按钮:
    7 d$ m, ^/ N5 q9 T. U+ r; q% g- s( n  A0 b$ t3 d( l; }8 ^; F3 l

    ) J) a& O, {# Z2 B: `3 ^会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。0 O0 i9 @( c# C% K+ w/ i3 O

    ( ]; ~: H+ M& b0 L, Z" x

    ( T* ?- i8 a7 [0 ^/ y6 M# F: @然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:
    : T, n5 H# E9 M0 c( A. s8 y/ y/ u. @

    $ G8 ^" Y& d; d: P太牛逼了。
    3 z% a  X3 x* w6 e9 `1 N2 F& h7 T, N( O3 a4 v' ^* s& L
    6 U% I7 G3 a( S; x6 U
    6.4 格式化sql语句
    ! `' D- x5 W# g2 ?( F有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:( |3 }" r7 ~$ u2 u' _) E$ [7 a
    + @% b" _' Q( K

    " V* R5 `( A  j" f7 {看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。- W6 _! G, Z' l% P
    " g6 a- |, U% Y% G3 O$ [
    0 a- X6 Q$ `/ f9 X5 B# E4 V
    6.5 执行计划
    " x: U9 q: E, P3 d有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:
    & }( ]3 ?. W2 |, e
    1 C  h0 b; w' S- h8 X) O

    & l" a' m* z) Q8 H这样执行后,就能看到执行计划了:, f! J5 d3 c, H1 q( S. _; n$ R& {
    / U% I! y( W3 Q# v9 f/ a' j* B

    ! r/ }7 n) S0 L' O) c. s但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。
    3 P/ L# D- Z" ~& }4 V+ V+ Q1 X; D3 r2 Z1 ]- l; Z" l9 R

    ' A3 G5 o) H8 V; ]; O) h6.6 切换展示方式; y2 f5 y* c* \  w# G; o
    我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。
    7 X+ w) H( L; D7 Q6 u3 s& m4 @/ j( ]- W  H% R9 f8 v7 s% Z
    9 E4 a; |2 ~+ _( |, w
    这时可以切换到form view模式:
    + a) h$ j( ]& E( d5 Z. T, j  _0 ?' k, c; ]& O& H8 a3 m) z

    8 L! F4 ]) C0 ?然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。3 L9 J: {  q. A3 ~- h% \7 x; S4 y

    ) ~( T* `; r8 `& v$ p

    ! m8 {' M# D- @! [6.7 新增和删除数据
    : ]' ~+ v( V+ G- f* C9 U: Q/ ]4 o我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。
    ) b% u: i; N! A8 J8 f0 k, W7 {' g& K% O, B# A9 J& V8 c
    % Z' q& N2 p4 Q+ L% M9 d% I
    同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。6 S. o& d# [0 y/ Q! ]1 B# t# D
    # A% ~; m. y! X6 k4 C* H8 G

    - G" p9 h% ]# g最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。0 j- N+ n% m' X! K
    BAT大佬写的刷题笔记,让我offer拿到手软& D7 P( `, Z0 L7 w$ C9 f
    ————————————————
    ) m9 U" @8 b/ h+ e9 K版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    ) D: J9 T8 b8 K% E# \8 m: L原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369
    % J0 a) R: s' m( @- A$ X5 }: U1 F2 i) u: D$ f+ N+ }8 N, m

    ' a; C% R/ U" T3 z) m+ M5 }. 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-9-27 19:22 , Processed in 1.790602 second(s), 51 queries .

    回顶部