QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2570|回复: 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
    ) s9 V" C2 J0 [
    这个数据库神器真是太diao了
    1 n4 k  S. F1 W前言
    & j( M5 L8 e4 \1 b+ @- C对于开发、测试、DBA、运维来说,数据库再熟悉不过了。
    . M$ h! F  a  R$ \" o* h4 |( h4 N5 a- r* [% P( k0 p; F
    6 g  x, Y) m+ M
    很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:* l1 k9 D: Z" I' Z/ s. R
    4 x& ^. |. z, |. ?5 `
    % a% \. k6 B9 J& b( @, Z
    0 K4 r' A  X. K+ n
    - {, K/ g0 O6 n

    3 U. t% a* B. ^. M8 C, h

    , ~" z. c9 m. W用过的人基本都会吐槽,太low了,极其不好用。! \& H3 ~& r! N) [) j

    - d. i7 d$ ~- F3 n* Y

    4 l& T% _; I2 \3 k- d4 B8 \写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。  K' d0 A' b$ |6 d3 A* |

    . O% Z/ g- {  J& _, e" J2 R

    ! f9 c2 i1 r5 I/ _' k' B0 a0 R看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。  F# y9 Z% L- m

      l, V: c& }4 ^% j5 n1 u

    + y. Y$ ]8 y. v$ O! o8 U% y对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。" B6 A9 D6 G0 s% \
    ( ~9 e9 i6 i9 Q, G
    + Y- P& L8 |4 @' {
    很难看出表和表之间是怎样关联的。% @( s& G# y$ m# f/ \4 p3 m

    2 H2 a6 o* w3 f6 d/ K, c# }2 S4 e( M

    6 I% d; q+ ^" S导入导出数据就更不方便了。) h+ G( b; }* x3 j% m
    - K0 p3 a* |. D
    & O) o5 Z# S/ n- a7 J" h7 A
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。% X" ~3 Y* F  I5 X
    BAT大佬写的刷题笔记,让我offer拿到手软
    * b8 o+ K0 d. j0 c% d
    # J6 N' G  F; |. l0 {  C

    9 ]! d6 h) E/ @" x! v' y9 q有没有一款好用的工具,让我们能更高效的操作数据呢?
    % @1 @. W" b* L+ o4 j  N
    & E5 R: F# B7 P! ~5 r* O8 c0 x

    7 A1 w' n- O. g, n这就是今天我要推荐给大家的数据库神器:Navicat Premium。, o) K2 m+ K# I0 @

    % {- l& ^* x2 p
    0 e( [! t, Y) {+ v. G
    下面我们一起看看Navicat Premium有哪些牛逼的功能。
    ; k1 G3 m. |/ T0 a- _9 o, u% N8 U5 m8 S
    8 G/ c8 M0 g6 r# }
    1. 支持多种数据库
    # m( ^/ M; {4 X在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。, b4 N( S# c4 r5 g
    # Q- |9 l" S5 J6 \! C& @8 E, g7 e

    " X; |2 `0 ^* Q# J9 P0 o点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。
    ; K: G, m" ^5 p  j$ ]  a6 Q
    " }7 k# J6 F7 e- i. v5 e% t

    ' {0 e5 t8 r! g- }2. 轻松管理连接
    ( c6 D0 I" e. O% o% O6 D4 w2.1 连接数据库
      `1 J9 V  w6 E2 w" }. o之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:/ H- M  k8 C9 X9 F

    " U2 s& P) a4 S' w7 _6 A1 G) q

    " G$ p/ ^; M3 kmysql -h127.0.0.1 -uroot -p123456;7 f, p4 M+ s) L7 a3 s

    $ p3 Z; A- V# L) C$ Y
    ; k& C/ m) `0 @0 |5 ~; o
    1* {( U3 q  _% W& ?; n1 u
    2
    - j7 g1 z. G0 g1 x4 ?# {/ C每次都需要输入连接地址、用户名、密码,不觉得烦吗?
    & }  y! V2 r! B! l
    4 _  k& M6 {- @, J

    / E6 U6 m% e( g: e- o' f恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。. s+ D& ?4 x$ Z; c
    5 [0 x+ Q: M- a0 E

    $ e9 a! k* p+ p# _  f* }以后就能通过界面双击Connection Name,直接访问数据库了:nice。
    5 @% R; e, W" Z; A- |& e) H$ ~( e3 y1 @  @6 K

    ( [6 Z$ r5 |; G3 T+ _/ `2.2 显示指定实例2 H+ |# L" D3 l9 E" t5 ?  }* p
    有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?
    ' R/ Z: P# d, V7 y
    5 J" E+ A' o: [$ D% L! x+ |- r

    1 K. @! v: V. c, S0 w" f8 r- g; K9 S这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。  o3 }" P' ~. S/ [

    2 O( V% o: {4 p+ [
    6 i0 L% D% k; M
    这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。% p9 W; f& D* ]7 `( R* L) c
    ( q& u# s; V8 v) M

    ( H3 |* ]8 m# k* P* N" J3. 方便查询表信息
    ( R% z! T  r' O% z  l- P以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:- f6 `. Q1 f2 }. `7 F0 }

    : f9 d2 ^- d- |4 I/ d" p6 q* a

    ! P1 Z  N1 ?& R5 ashow tables;
    % ]. }, ^4 j& }+ u, `9 D
    ' y7 }8 M; t$ Y7 u- v

    - G+ n8 ^+ x; N1
    $ R, c7 V6 d( H0 P) u- u+ w26 q; _' s' C4 ^. k0 c. c6 \

    + ]- b/ V  a$ p
    9 w  ], x2 l2 Q; E; u3 ~

    + ?2 Q5 o6 y3 K8 s6 ^

    , V5 t- I  y* ~, `$ |不好意思,那已经是过去式了。
    ; L6 U! L! x4 z2 p3 r6 Q
    ' B+ V+ o4 M& z7 h
    : P( E8 @% o2 `7 O5 \+ N  n
    现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。
    2 m* @4 ]. @# w% L3 A
    $ p9 a5 d% B5 y" B3 x

    & \, M) j' m( e$ d如果想看数据,选中双击某张表就可以了:
    # q0 Z1 r, B  p1 x  q9 {
      I2 T8 j- i9 C, p. {( _- N
    5 d* `# A: F8 U+ Z; V/ p
    如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。# G; V, [7 ^5 `

    : t3 R( q9 j" V" O9 t3 w3 p, @

    3 y( F# D! ^; |$ N( H如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。- F$ N0 f: R& T& h% O6 b

    " \" D8 Y& [: H# B

    ) i8 d7 d* ~4 A1 R4 K. b7 @比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。4 Z, Y' s- [  `$ x
    4 C) X) E8 G4 M( Q& u+ M

    - o. `$ Z! y6 A) M1 n, V当然我们通过如下命令:' A( F5 f! D! f
    ! ~; P/ c0 y3 {1 J, z# h# X' q
    5 r0 ~# y0 S7 `
    show create table jump_log;
    . Q/ N) b* z6 E1 s# J* n0 ~# n( p
    0 s: @- C: Q1 g4 S2 F) `
    & z5 f6 L6 a$ L
    1
    3 d' q7 j% ?: S+ N/ F# l! B# @5 e2+ r. h/ n8 I0 c
    也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。3 [' r( ^7 T- y+ \2 J

    , W$ M7 ~& l8 G# Z/ W
    ! i2 i/ U: v0 k+ U, |/ |
    4. 数据库实例的ddl操作; i- U; [3 G7 Q4 L9 L
    通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。! l' q2 W' P; G" u$ z, A
    3 \( B0 k0 x, I0 x- x. W
    5 y: w5 N9 O3 B7 ?! \6 ~
    右键单击某个数据库实例,就会弹出如下窗口:5 r' ?1 w* S/ U; z
    ' E6 S5 V* s+ l$ n1 @9 t9 n: \

    8 x# @; B" T3 |/ G8 i" x6 n里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。3 J7 ~2 k: [; N, h6 ^

    6 Y% c7 K* [% e8 ?: H- [( Y' b) b
    . B. s( h) P1 ?% x, g
    4.1 数据库的创建和修改
    8 x( n" K. ?  U! u! [) S创建和修改实例时,只需要输入以下三个字段:% ?) ^# Y8 C- }/ F7 K; B: S( `/ ^
    " g0 U" i4 B' }
      M' \0 s* n2 e% S6 Z
    4.2 mysql客户端
    / C, L4 Q' ^3 Z3 B# ?, n8 d在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:
    : g6 E' y3 i. O  O0 ]
    3 D# j1 ^/ T% `5 V

    4 T! @; N; c* m) B5 @8 Z) `4.3 执行外部脚本
      z: O* `  h  r6 n2 p: J如果选择Execute SQL File,能执行外部的sql脚本:
    # G& ^$ Y/ P- ^, ]1 ]: e  ~8 H$ D* a3 |3 K: W5 e
    & \- r- [+ S, P1 m
    4.4 表导出' I+ G- \$ ]  ~: M, |1 I
    如果选择Dump SQL File,能导出所有表的数据:目前支持两种:
    6 w; a3 z# F" g2 P3 d" J" m4 B* i
    5 x) E3 p6 P" s" w1 E

    / J: l# ~8 G/ S( ^' _' z导出表结构 和 数据& H  d# z% t, m3 ]5 ?# t

    7 F9 r  ^: X1 M. i
    0 p  u1 W: q+ x/ ]& I) \: U2 Y
    只导出表结构9 d4 d0 f; d& A: y, x

    8 `( C& q' u( Z: k! u

    1 H) Z/ S- O) U( j1 J+ J8 d最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。
    8 P1 D/ m6 a4 `( J5 s+ c7 S5 }' R+ f$ n! N4 ?4 I& q

    * h* B# @2 I9 Y4 T: `4 d7 _4.5 打印数据库
    5 _7 U% S' @8 k7 E  h6 T如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。
    7 d2 p# D1 B, K, @; ~" i* _3 N" s) F$ R
    * k0 u2 E7 S  I
    4.6 转换model
    , A, |3 A) B+ S$ `# @& f如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。" l; A' i& [; c2 ?

    ! C. D8 E# g& t$ c: X
    + U: B; ?; {' F1 z
    4.7 找到数据* m& E6 d, t$ H# R/ h: D. N! \
    如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?: a$ |* _: L; |' x! A
    / E- j* U2 \; c* c4 y
    7 j, u' ^7 Y/ O; ^5 D
    5. 表的ddl操作+ n) }. _. w0 b2 ?$ w4 [* F
    相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:9 D: a8 r5 }% S: D' U
    ( W8 ]& m0 S3 V* {9 r( `

    2 b) u1 z. h: y( L) S. H0 D! r如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。: c. ~6 z- ^" z
    & j% r9 x8 a: w" d
    * Q; ~4 v" w0 m: R! Q
    5.1 表的设计窗口
    & ^  E7 d- c  r8 X# ^( Q% j, J% k如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。
    9 _! c5 b: V# r$ Y
    % ^8 Y  s! A, s( q( R& {

    ) H' P# n8 O6 s% ~它支持的字段类型有:实在太多了,列举不完。
    6 _! k; C0 v+ b8 D- Y' R( j7 k7 ^$ \. U

    . l1 Q# |# g$ h/ F7 O) b( Q, c* D如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。* Y/ k- D+ A/ ]6 i- l' }6 A
    " A& L9 |, q  h, E' K
    , W% p/ H& E5 h5 x- R$ c" _3 |' [
    如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。
    $ ~' E9 [# j3 t" M* P. J% X7 M# B  L* v/ T- Z

    9 n4 t) h- Z. y) ^6 g1 wComment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。8 ^! G: ]1 o0 }6 x+ C% A
    8 Y. b! j# t6 o, n# b

    * o- j0 ?" }) _5 w: {6 [" e: F如果选择SQL Preview,也能看到该表完整的ddl语句:' D. g; p7 r' m  M- O9 E; d
    $ P; ^) T. T' P

    0 G! g8 K/ D  W( a# o8 i5 C! ]( B/ e5 y$ b* M; M6 z& k% L

    4 y2 e( j4 d3 X- `& q+ z  \8 H! E& G' n+ Q, @6 H( G: F
    7 M* b. F% D! Y3 l2 F
    5.2 表的删除5 j9 {4 }5 _' g. b" W5 {
    上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?
    3 X5 ~7 ]# ?7 p, q  C. u7 N  h( P

    . k# d" ~0 N8 B( b( k6 |主要是通过如下三个功能实现的:( X% _/ t3 ~* Y, f' B1 p

    1 r/ a0 }0 Q. o1 T
    0 a  I0 y8 Y) w3 Z8 K% O) d; c
    Delete Table:物理删除表
    6 Q2 x0 v% m: w/ `) h: A9 l+ x6 D0 K( r( a4 {3 r/ ?/ x2 P
    8 V+ p7 _5 \: ~( a& k8 t; Q
    Empty Table:清空表中的数据,但表任然保留
    * d; V8 l7 F' o3 S# w
    - p& R0 |2 B( ?  O
    ) J( S' [0 c: Q1 u9 R
    Truncate Table:逻辑删除表" w- f3 c6 N- A! ~  G3 v3 r* g6 D

    0 n( @0 C* C6 d7 w
    % q; p9 L7 J9 L
    5.3 表的复制# q! \6 e4 t+ b  k# i  q! V- s
    有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:
    ! T  _3 R* \+ l5 w) {, ]4 h8 n3 `& _6 Q; N1 T, z7 ]  W

    9 ~1 A9 @( J4 Y; _% m0 ?% R如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:
    ! \4 _1 p. _7 P
    : e/ m8 u$ v2 m
    ' Z" E0 T. T- @9 i  L0 b+ S5 z
    , ^& e+ g7 u! r, s" Q2 g% O* T! y
    ; n2 x; Q' M5 g. S
    ' f) i; G( P) w
    : g1 v* a# J& P% B' N# B7 }, l2 T
    里面包含的数据跟原表一样:
    7 q- Y- @) c5 m# p) U  w- t4 h8 I8 Q6 r9 H$ T* _) w/ O7 p

    ) t! s$ ]: G6 B如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:5 D  p2 B8 K# U( E5 `7 l
    ) ~2 @" A7 [. Q8 P% U# ?8 U
    ! v8 b4 T# p7 _1 F7 o4 w( W% i2 O
    5.4 数据导入, h/ w8 U& L! i% R
    在实际工作当中,我们经常需要导入数据。4 _! Z& I$ Y' \% Q4 e: o) v

    2 Y; Y* T, K$ d  Y; u2 Q0 {4 _

      |* i  `2 G& p' a7 d+ y比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。
    4 X2 }  D* p4 x! G. w% ~* V7 v" |9 _2 N! w  D% ~, g# X1 |5 _

    - O2 i4 E/ X2 K' E我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:
    + n& w4 O; n2 k  R' j: @% K+ [3 r% h* J1 v: I

    ( l) d9 z$ U4 s  [7 V可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:
    5 m1 V3 R8 K* }' [# X5 z* o) O9 ~* K5 G+ H) M9 x) p% M

    0 e% a6 U$ O) n  n, m5.5 数据导出9 z- @8 Y. l# D4 W/ p, V
    在实际工作当中,数据导出的需求偶尔也会遇到。, G5 G& x0 S. G
      S) g& h: @. Y: F2 l& u
    5 _$ h2 [* M( F
    这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:
    / Z2 t7 D, K4 w
    , @" D( q5 _1 `0 G  a6 D  V
    * U# c  q( z4 V8 u4 T% W1 V% q
    可以选择要导出的表和对应的sql文件名称。6 r) d/ h  r7 `! @
    / ~: L+ F3 I$ \4 H7 v# n/ c" A
    8 y) b. E- J/ h- l0 P5 f
    接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?
    8 k  ]0 v3 Z0 P
    + Q! i" J) I, P. Q+ P
    / r+ F# i6 U7 c! ^2 v6 `
    6. 表的查询操作
    , c# s$ F9 }3 h( @. L查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。; O, G3 ^9 O" u6 h7 H( G

    / T8 }! ?* h& _% ?, z

    ; R1 e& v$ j9 l选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:
    6 N- p' ?3 J% R% i9 P  n7 P3 R! d7 X+ A
    2 c+ q( I5 @/ q
    6.1 执行sql语句:( a  T: T7 N8 Q; O; R* ~; D
    在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。9 w, x: U, j9 h) l+ R

    , R- ]2 A0 f% Q+ q/ ], h' ]6 d

    . a$ d' S- _( I' M! \虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。
      Z/ P7 a9 b% l/ E. u3 `7 T4 j$ W: X, T( s% Q. M0 U9 n6 s

    9 _! V4 I* U6 Y% U4 p8 t6.2 保存sql语句:
    / X% E& o" [, P  x; W+ z有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。
    4 [' d5 d8 p& N9 k& ]( b4 x) h! @  ~1 I  T( E
    ) X- i$ P* y1 T5 K) K& }
    这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。
    5 J% v0 u8 C  |
    ) ]% Y1 S% N+ E( b6 e: ]6 h+ `
    + T- E4 C" V: `: ^2 r5 W- s. X
    这样以后就能在Queries中非常方便得找到该sql了:
    4 z" D+ K8 W  ~  H& q5 L( b% {) f/ t7 ?; f
    . _" c* i* P0 z6 R+ s
    6.3 快速关联表# N) O9 J7 N6 I
    我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。% X4 T# f; a: f- k) |1 u5 I
    # c. K, O' F# n+ F2 z* q

    - k( ]6 f5 M7 Z. k# x这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。! x" m( @5 P- ]% T$ a% ]5 s. i# {
      D/ U" N9 n/ m) O7 N" j# U, D5 p; J
    ' V. J% m- r) T0 x0 Z) k- N2 t
    难道还有更高效的方式?$ h% O4 ^/ E, D, J" O
    6 }$ A0 }1 R1 U+ U5 r
    $ S4 r" W- C" _1 P
    点击下图中的按钮:1 c7 ^% m4 [$ D8 a& P
    ! n1 _% J9 R# [9 P# j$ Q! l- m
    7 z# x; |  l0 t6 {$ L
    会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。7 [. d( a" m" W! m+ b& C% d, s
    6 A6 o+ n+ h0 f3 O
    ) b$ O. F+ x' V! @
    然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:8 I0 |. Z$ a& v
    , |: k2 a  Y" ^" d5 T6 `. b

    7 t* @0 \+ i7 `" n太牛逼了。7 v8 U1 N4 P3 A+ S- J# o( g

    9 A) H2 r5 Q( s; [) x9 v. v

    " g; `+ f) i) d' V" }. m6.4 格式化sql语句
      S" U7 X; A) m有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:3 G( V3 T! M  r! \% X! U& `+ O, [

    + `, p9 j: P9 `3 N

    . V) s+ Z8 K6 b% y1 r8 l看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。* H2 i- P4 z$ Q$ T0 R

    2 a6 C1 H' {9 s4 t# K
    " d. G3 n' @% d* [. Z% a/ D: R5 r6 K
    6.5 执行计划
    : z7 W& h  H- T9 J# G( T有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:6 Q5 `' U& P7 M  u

    + v. @" m& `0 u2 t( r" r3 Q0 l
    ) F% X& v5 x. l# N8 |
    这样执行后,就能看到执行计划了:
    9 }& q' t5 O6 Z1 e
    # o" O( s7 V! v

    - U. c3 m( \; i8 I- v) U) t9 H& H0 l$ H但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。7 Z! R, R$ D2 w% W$ s5 P- _# v* a
    / m% Z6 x/ x- D. e! C; }1 ~

    ( H( K+ N& }8 j3 ~4 E" _6.6 切换展示方式
    " X# x! k* v2 \$ O我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。
    0 Y: U0 ^% c) g# D# `+ u0 P2 t
    / Z4 `1 {- W6 I8 z7 R7 T! q* w1 f
    4 \; C3 ^8 _8 Y$ ~" {7 M
    这时可以切换到form view模式:" h1 t. i* S; n0 r2 e

    - h1 J, K9 X/ V0 ?& a$ n2 I
    & Y. X/ }7 ?& O6 o
    然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。6 q: E' v. j, I' ?$ D
    / Q$ N6 w2 E1 _, g1 i$ M7 d
    ( ]4 Q1 s! M4 p  N: d: t: b
    6.7 新增和删除数据
    2 b  @7 w) U: p" H我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。
    $ H" h8 ~7 W: n* ^" ]5 M) R$ L* H' L

    - t' f! E* h8 d# r# v+ p同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。
    / ]' |1 D. V* m) _) K6 B9 c/ ^8 v5 D( ~' k3 n' T! [: J

    " P0 y: o3 l  g. f0 n最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    9 j  r- Q4 P7 WBAT大佬写的刷题笔记,让我offer拿到手软
    ( M% d4 w  N) H2 c————————————————) w4 Y  t% z# {- H9 X
    版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    4 M1 e  e1 W: R8 D+ _原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369% ?  h8 z3 `" w* T% q
    / @5 z. ?+ L0 n( `
      D' P5 i8 y) l3 x2 Q- }
    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-22 01:06 , Processed in 0.443948 second(s), 52 queries .

    回顶部