QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2587|回复: 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
    4 C5 s) `! M1 h( _4 T
    这个数据库神器真是太diao了
    ) Q. R- b  _8 V2 R前言$ Q7 J4 |; S2 S: Q$ ^7 s
    对于开发、测试、DBA、运维来说,数据库再熟悉不过了。9 m/ k; H. J: f* t% Q+ X

    * e/ z- m0 s5 U$ m& P) }
    $ J! h0 e$ Y5 P: p
    很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:, e  t. @* C% B2 g# H+ E  M1 C

    , h, b4 ^& r+ L4 k

    6 C# i! n( i+ S. k& q& B, `. }: f( e" l* I: K

    3 Q, X* B9 c, x, L7 l$ E, E2 d+ V4 W  b6 U
    $ g; i3 [, ?4 i4 Z8 s
    用过的人基本都会吐槽,太low了,极其不好用。, d, L" K! j5 @) W/ ^4 t, I
    : M2 e, |; Z2 ~! ~5 w/ e

    . R' Q/ `( G0 D2 D( u- b3 Y0 _写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。5 ^5 B9 s; Q* f  Y

    4 h8 t: B  R! a; ?) E6 W3 }2 w9 t
    # g% w5 K' \5 P# A% a
    看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。' O: N9 \* f* R5 p' I  w
    + c0 h* l! z# i/ A. a- [- ?, w

    * t$ f+ Z: v8 \2 ?! a对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。% f0 i# k9 k# }$ \1 S3 z

    9 z- F6 p7 `2 K0 v& ?

    " n, C  b# o) P& Z6 r- _  \很难看出表和表之间是怎样关联的。  D) J- E+ P: N- K. E
    6 W) c$ F) m0 ^' n; [7 o
    $ N# `. A  w' m2 c1 x2 R
    导入导出数据就更不方便了。6 M# h: K2 M- {  h

    + [1 M! ?+ ~! Z

    ; \6 M- G  a8 j1 Y. W* }$ l最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。5 p$ V6 r( a7 U; T1 d) H& b( Y
    BAT大佬写的刷题笔记,让我offer拿到手软
      @$ t3 h% K( y9 N
    ) \# \2 m6 l9 T4 s, n, P' n; \6 I

    7 S- c0 m9 L& ?) H有没有一款好用的工具,让我们能更高效的操作数据呢?
    5 j0 p# A9 L& [+ r( G) Y6 v4 [. I( o/ ~; D5 u, d: B. k1 B0 v$ \
    7 i* f; Y" x' O3 F" m7 f$ x1 f( v
    这就是今天我要推荐给大家的数据库神器:Navicat Premium。
    & q; u( D5 d, R+ `/ u) [- T9 }) K- ^% ~' d2 c$ f

    / \9 a( o( p9 Y1 k/ k下面我们一起看看Navicat Premium有哪些牛逼的功能。
    5 M7 k0 l: |! c  P4 x( F0 M* H/ Q; O
    0 [: s$ e. Q3 U- b! e4 v
    $ j" k7 i" }6 o- W
    1. 支持多种数据库& ?1 V: C: z3 G  ~) Y8 e5 U( O; F1 w
    在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。2 ~& L+ [! u4 s
    ( L3 _! X. R, A* {2 K
    , C0 k) p# V8 O" N- \1 Y8 j
    点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。
    ( P4 s- E3 M5 a2 ]; o  S7 ?3 t/ b# i6 N( H% |- ~. ^" B

    1 B6 T; {' t! a9 @4 \2. 轻松管理连接
    2 V! {$ v5 f+ ?2.1 连接数据库
    ) [( A  h- h" N/ d2 J之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:
    4 ?2 E& K0 f' x) s/ {- R' f  b) X2 i, o
    5 H2 P" h. u! X/ l- g, K
    mysql -h127.0.0.1 -uroot -p123456;" n* f, J: f. d

    5 D& o7 Y6 n" L. j5 b2 k

    * e6 y0 X" Y( y( `1
    / m, K& x  G0 q- I4 W/ Y2
    % p+ H0 h8 W/ r每次都需要输入连接地址、用户名、密码,不觉得烦吗?
    ! N$ F9 O0 V( C$ g3 H. a6 @. \8 G( L% o7 _% K9 L) j

    * r2 w& i- b$ `+ P; I恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。
    # x( T" P# k$ m
    ; @2 q, R: Y2 ]5 {4 c% X& Q5 s3 w& y
    + N+ M- M) A& {6 ]" Q5 [9 l$ Z
    以后就能通过界面双击Connection Name,直接访问数据库了:nice。
    : q' f. D2 ?  d9 |
    + n. d7 q3 [( p! }- T4 Q" C

    8 u. ]  C" e- J& [* ~7 |2.2 显示指定实例  J! y6 Q2 f1 s5 w
    有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?: ^' E: ^% f( m; |9 v0 S
    1 j! K9 l3 w1 I' A" Y5 \2 v4 d! Z

    ( \3 p: ^1 a3 }& D; ^( M0 d这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。
    - W5 D- o# {' y
    " @# C3 z- A* g' c2 ?

    , ?5 W  p8 t; z8 ]8 ]8 I$ o这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。( e: A- ]' w3 |+ F
    ! Q7 b8 x' j3 N) U$ }6 X+ R

    . Q& l( S! M' U" F0 d5 i- A! x- Y* r3. 方便查询表信息
    ) t* E# [6 t6 Z以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:
    . @4 b2 P3 J! F9 Z/ p6 ]  B
    6 b. J1 |0 N: b4 }

    : Z1 T0 x7 f% i$ t1 ?show tables;) n) P3 p! b8 i, k9 V/ A, Z) U8 J

    + M0 X6 j9 l5 z( u

    9 ]! |' a& i( i; }1; _/ Q7 j- ?) k
    2
    # a* v$ {- J1 }" Y
    9 y4 @5 Y2 y* b6 s9 Q
    ' W7 j7 p% I1 O2 b  C

    . x4 d( Q; O/ O' l1 o. V
      t1 g! i7 l, L
    不好意思,那已经是过去式了。0 V0 d! P1 Q- Q1 Q$ F

    - D1 C0 C% F8 A/ x
    , a/ i' n& |) x1 k& e/ {
    现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。
    3 Z: n2 i! [  O$ V7 G9 I* O4 q. l- g7 x* n# }% f/ X9 F
      ]3 W: S4 e! H3 }6 O7 V
    如果想看数据,选中双击某张表就可以了:( c# G7 p! R) ]1 V* X7 Z- h4 a% R2 f

    5 k3 @7 |) P7 Y( b

    9 S+ S) `; o* D如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。) _- C$ t  H/ G% j- Z( g! M
    # X" X' o6 R3 I0 q
    ! F- W/ T9 F. i) Q7 }( ^( s7 v9 z
    如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。
    0 m$ F: c7 D2 v. J9 m6 Z, [! O9 H8 u, `0 _. }8 x5 Y/ l, q8 {  G
    9 F! B  F) B& u
    比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。5 L" L2 [6 }& g' i' g9 {

    0 V/ G+ x+ k: P# B: \

    ' c+ ?7 _8 `# Q当然我们通过如下命令:' I* Y3 V9 Z7 V- l5 k: o# \
    , R* |3 n* c" [9 c% h! I6 V1 B! t
    " R) A3 p. H$ S
    show create table jump_log;
    7 i* k; W' R$ ^2 g- s. R5 K' g5 d! e) T* l5 n

    7 B0 x( H1 {, f1 ]' t18 x+ n! s6 s5 v4 L  A
    2
    ; p" L$ k% |  o也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。2 k+ D' A3 T) x: |" p5 Y
    . H. b( g% s  {6 ?7 F
    2 X+ {* q, b. a2 ?) R3 {, D  V
    4. 数据库实例的ddl操作
    1 a" e) J& [1 J3 d通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。
    : {/ r( Q% a  j0 U  n
    * ?7 }0 T/ @: @. }6 L# e
    6 b6 c$ L% |+ U. f- i$ {
    右键单击某个数据库实例,就会弹出如下窗口:
    : f6 c  h( ]/ f
    ) }3 b3 s7 M# G" B; u& ]

    5 {8 E/ {0 L% a/ u. L里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。: U2 F! y7 @( z- t$ Z

    3 \  K, r" g5 X2 N( ?0 O* e
    % X0 K/ D8 d$ @9 M9 |" R
    4.1 数据库的创建和修改
      A8 a' x9 F+ L, ^创建和修改实例时,只需要输入以下三个字段:
    / {* y8 h; g) Q% u3 v0 }% K* N0 ~& @: Q- N

    2 z, r% s: l0 ?8 E8 A- ~# ?4.2 mysql客户端
    * x& K! B: N( r4 i在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:+ O7 a0 K6 w$ O0 m& [

    7 v1 ]7 n% w3 Y

    5 Q5 i+ |" b9 @$ x& {3 X4.3 执行外部脚本
      @/ ~; x: e6 D  O4 }0 U# @如果选择Execute SQL File,能执行外部的sql脚本:
    9 K  q' q) a& d8 O
    ! [* Z- ]4 e' j* W
    9 x3 n/ ~+ T! L# J2 `
    4.4 表导出: W2 J9 h3 p8 X# p, {4 J1 H
    如果选择Dump SQL File,能导出所有表的数据:目前支持两种:9 M  x, t) E6 E) d

    7 K& y# q0 X$ t. |- U
    ) Z/ H3 i& ~7 ?5 N; w# M2 D
    导出表结构 和 数据
    6 }) U* ?8 S6 U4 @
    * a3 C1 o: Y, e
    & D' |3 i& [1 n* \" L9 R% P9 W
    只导出表结构3 L3 E' i! N+ G

    : l2 r% w2 Y/ r
    9 A3 J5 A/ e7 c9 b9 t" x% i9 e5 w7 l
    最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。
    " i$ J! M/ c" p4 N8 T
    9 u7 L9 k# \; A+ _

    $ U8 P4 |$ u- B  o4.5 打印数据库
    0 n7 o" W! O9 C1 P2 n如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。
    : c( g6 ^3 y/ ^: ?
    5 [# _  P' h. }/ N2 ~
    8 [) [4 z% o; D% l% i
    4.6 转换model3 ?3 X8 G! T3 W" z) t
    如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。
    3 a# ?  M+ B+ K" G4 d
    0 k- `1 R. ]: O3 a; k( o9 c( ?
    - B- d: |5 j0 T
    4.7 找到数据
    % q0 |- N& m( y! k+ }如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?% e5 P7 d# c$ C. V

    # o' ]$ I( f. `- T( t2 J: [
    $ g+ Y3 y' c( y
    5. 表的ddl操作# ^) v# g5 T& Z$ R6 [; P& g
    相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:
    3 x! M7 m5 Y" {. L7 m+ P+ P: \) f3 }: E5 ?8 J

    # m; }2 b5 ?. U! ]如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。
    ) A+ O: E6 c4 E4 s. E8 k
    % m) d: {5 H1 F& k- F* x+ z

    ' A1 `) i; H' _% F5.1 表的设计窗口  P# a6 A; ~' \% K4 t
    如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。1 M+ i% [/ e1 w

    ; L0 @4 M3 B2 x$ A# I6 X

    & {/ I6 c0 F& u- n+ J( ]0 {0 I它支持的字段类型有:实在太多了,列举不完。
    . m2 Q# h+ }8 @3 v4 H7 Z5 I+ U
    - S) z9 v. n4 f- ~# }/ P

    % n" }+ T1 M( Q" d0 }" E如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。8 [+ @  Y4 P- w  z; ~
    + @- J* E0 |4 {3 w3 R7 [) }
    ( ]/ c' Q1 I+ w3 U; L
    如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。
      \' q, f# q! ^5 z4 X4 A
    " i( [3 B! D% z2 e9 e+ z) ~

    , X/ e: {' s1 qComment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。4 M) v# u* x( P& b7 L7 Z0 G

      i. u, r/ w" y

    3 g" t* O* M1 G: x! |如果选择SQL Preview,也能看到该表完整的ddl语句:
    3 [, g* F# a% v8 e& M/ z, ?- ]9 r; y" d5 f) k
    + R; B% @& P5 f! p
    + p. Q9 F' \3 j8 \: _+ Z
    ) Y# J( i& ?4 L, U1 C$ s1 u( ~  A' L, N
    4 _( F8 `/ d! d8 P* k( e
    9 J" S; F- H' l
    5.2 表的删除6 W: |6 W" @& x
    上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?
    # x9 C5 e% j3 `/ c) T' I- z
    ! y& g) q1 @4 b  b7 {, h
      G( Q7 q1 }/ L& p& G# u2 W
    主要是通过如下三个功能实现的:5 d" o* h% X0 @! g  z- Y
    ) m4 W% y7 L% r) D* |. \8 i. k
    0 o8 U, f) k% L5 E% P8 c. _" l
    Delete Table:物理删除表  e0 h" }9 W0 d: h9 }) n

    ! h5 Z8 H5 ~9 P8 O1 ?" k1 b
    . Q' A. X" V0 j+ H
    Empty Table:清空表中的数据,但表任然保留' _5 m4 T# o. M
    8 f/ h3 j) ]4 U3 l% r% ?1 e) ]8 \
    8 U3 Q" f" W  G9 m& E
    Truncate Table:逻辑删除表
    " Z! @5 S/ ?! b' |' ]) c2 ]. r. o1 w! Z+ d- o5 t
    ' g# u* `" U7 \7 ~7 }2 x; t
    5.3 表的复制& B6 N7 I" B& @5 `
    有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:
    * ]* v2 |& {0 i7 Q" E" H: _  l+ g1 @. z5 d. _' ?" f
    3 G8 k$ `& Q5 c: g* U
    如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:
    2 R( e7 B6 o) E" ~: ]3 y1 l' L9 T7 `+ R5 }9 g+ @
    # I" N6 w; p2 V& W8 u5 i

    1 ?5 H, [4 E! ]% y# l

    ( p7 `) S+ h9 U0 o  a& `9 G0 P+ H& x( Y  N

    # q2 i3 C. s$ g/ F/ H, L1 ^- P里面包含的数据跟原表一样:& W- m4 g6 Q0 V. ~1 v7 u/ f9 y
      S+ {& ^# T/ T  K; Z' c) w

      T+ k* b4 J' k& R如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:5 b: K( q# ~: Y- B8 e. A

    * j. `1 F1 J9 w6 G% c

    ) Q$ f, C6 g& }+ n# O5.4 数据导入0 {0 u, b! q+ f- V" C/ A& Y/ B- ]' L
    在实际工作当中,我们经常需要导入数据。
    ; S/ V1 R6 i" l. `
    , s& |* g" \* i/ b- ^; _# J

    / ^* O/ v. h4 \1 E  ^. q比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。
    & [, Y5 g% N' J1 s6 o) _  q5 H
    $ ?! M6 k8 O9 B- \1 V

    7 G3 M% r# O! X# w4 Z4 [我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:+ ]' y/ p6 L% L- B- O

    9 K$ m; `7 X) t" l
    - Q7 z* M4 J5 l9 B6 A- \4 Q
    可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:7 I) s) ?$ ]: z9 L2 P5 Q

    8 ~5 `: \% l7 X' U: W! E$ Y
    ; j! t4 u- ]3 z0 G
    5.5 数据导出
    / D1 p( F1 T+ v6 \% w* W; S在实际工作当中,数据导出的需求偶尔也会遇到。
      _& L. F/ o, y4 r! t
      |; u( T0 I  ?# s5 x7 @
    0 a4 P9 Z: ]# s
    这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:/ y* s+ m8 I' C: f

      g& N# k/ Q8 Z
    - e+ j6 d! R+ ?( d
    可以选择要导出的表和对应的sql文件名称。, o; R  _* P% X$ e4 V) s! F

    . f& k! N/ \+ P
      ]7 \  l1 F; i' t; ]! ~
    接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?  u4 T2 d2 v- b' v
    * q! z0 `9 w! z: Y8 O* c

    ) I. }8 V8 k! |% \6 o: w: \; K3 ^6. 表的查询操作5 _* Q5 j0 h. ?5 a1 ~! s+ a
    查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。" C' i7 i/ I4 k7 j5 e5 I3 c
    8 g. Z& E! Y  V8 v. a6 x
    4 h" C9 v2 \4 V
    选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:
    # n3 {7 I9 e- f/ [& P$ n- {& Y* Q2 h3 E
    2 P/ H+ N5 ~- E6 v) r2 ]! f
    6.1 执行sql语句:
    " b/ g; b0 D0 w. `: \在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。
    / @" x6 |/ x$ h# y- w5 c+ B7 d" m) N9 H, b% [

    % {* E3 r# D: z. |2 V; U虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。
    1 k  Y0 T" t# w6 j) x2 C5 B
    : j1 q- E7 n# E3 d

    # h3 t, O: }9 B6.2 保存sql语句:
    - E9 j, S" `, q. M有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。: [' }# B6 G8 C5 t6 q1 A
    2 m" r& t, O* _0 `3 K
    / X. q. y3 ^& C: P# O7 H7 q& l1 h
    这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。
    ; A* _  m% g/ S& ]4 S0 T% Z; ]# e" g: W$ x

    ! R8 k  o7 W2 m" ^' C* f这样以后就能在Queries中非常方便得找到该sql了:7 i, C& O* {3 ?7 I- j5 O& _

    # R$ b! U/ p# q. E0 G

    ( w9 N' v- n5 \: _3 e3 K9 V1 ^* O6.3 快速关联表6 _- v1 ]. v1 _$ p7 l
    我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。
    5 D; v, U" T/ ?  _0 l# [
    - O4 \# r" o: \; w- W* U$ b8 w- Y

    ( c4 f) K' [$ t这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。
    ! L1 U) C( m# ]! v" O+ y; k- q) i% R0 ~  q' R" j3 w

    / O# X+ i/ L& ^5 }8 N! Z难道还有更高效的方式?
    * b5 v9 @% K9 t& Q1 L% p' C& F; k. U4 U/ `* B( y
    - u1 A5 C* m& @: L6 [# v% P, [
    点击下图中的按钮:
    3 y6 a6 o) L! f4 b/ a- U$ q  c
    1 c; }6 w; Y9 o) B/ G  M2 v3 C

    : Y; L, F  |9 D会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。
    % R: ^2 c7 {) y" b* c  k0 K1 S  |# }: w( v0 I( \
    ; {0 P0 A0 B  `
    然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:
    - q3 @$ i, @* F. N
    0 d: E" [8 q: ?! k0 L

    * f. i3 q& R7 H太牛逼了。: b  @* @$ h+ I9 x  n

    7 Q, `9 S$ G# ~
    ! k% m! Q+ T) }+ D) m8 a" h
    6.4 格式化sql语句
      q3 G* s5 |: R' g有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:
    $ h/ l* J$ W: m# p" r
    & C2 k8 R& c' ?8 @
    2 `% w# c- l+ @. I. _+ |
    看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。; u; ?8 o& r4 b% j9 D9 ~

    0 D" W2 A, G# U7 ?0 d, X8 s
    + G6 V" s" H  X1 J0 |  W" J# v
    6.5 执行计划/ z: b( V& P+ j, k' }: Y
    有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:: ?6 O% o! l2 G  `: e! Y
    " F0 `+ }, I0 ~' t6 v: ?2 h4 w

    3 U2 A2 I& c! L  `; O这样执行后,就能看到执行计划了:0 g3 z* c8 F& F/ t
    . r8 ]: h- x3 D, w' r  I
    * Q( y5 {5 L. S6 @+ i7 U$ d
    但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。  k' ?9 h, d# }4 B% l. ]
    ! k; c7 D1 r6 h& v+ l
    # y' j6 G9 Y& o1 i
    6.6 切换展示方式+ K/ M& m4 l0 L: U5 N# E: x3 _$ f
    我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。
    & g2 m8 Y2 J8 H$ v5 d, e# S) Q! s6 O6 o
    : I/ Z. y6 P% p1 p! X) E& L
    这时可以切换到form view模式:
    & ^* J/ i! v7 W3 E/ p5 b: y. y* r! n1 i; L* d- M" [5 g9 }
    ) M0 o. g6 Z* K. }' m' O( t
    然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。
    9 w( I6 e+ j1 e6 ~4 W& v
    ; p2 W; s8 [, M1 [
    ! l: o+ U2 M  i& S4 B# I; n
    6.7 新增和删除数据
    7 ]* \0 B+ m* F我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。
    0 n7 ~7 T6 F, M5 s
    ; k" F( q) N7 |+ M7 n
    , C) P4 A9 L+ i! y
    同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。# f6 L' y9 D) `$ ~$ _' n

    * s6 |: C- u' K( @+ ?& b
    ! u/ B4 I1 h( a/ G6 c& j" C+ o
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。: p8 o9 ]  d, i. u1 V$ Y
    BAT大佬写的刷题笔记,让我offer拿到手软) h! F/ h/ |2 \" q) \- X; Z
    ————————————————
    . W. g  o0 U0 D' z0 {( j% ?版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。8 |2 E5 |8 m  |3 o) Q% x
    原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369
    - k( d) r7 N6 l6 j; m6 c; Y) X7 b+ _) l( W5 r' @, z9 e. u0 ~! i

    2 r8 o& J9 P+ G9 t* p
    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, 2025-8-28 01:52 , Processed in 0.512134 second(s), 50 queries .

    回顶部