QQ登录

只需要一步,快速开始

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

    1 D) J6 [! O6 f& Y: E' ~这个数据库神器真是太diao了
    ( H/ Z" F6 D8 L. s前言/ U& A9 E( g) u7 e& a5 F9 ^" @- ]
    对于开发、测试、DBA、运维来说,数据库再熟悉不过了。( D2 E" ?. ?6 r- E! q* z

    0 u: o) m3 e9 L

    * Y( z% G" m5 p: Z; ?1 p- v很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:
    * J: u+ L, }) d6 F. J3 V6 M/ `
    : u8 \# c- G# a# i1 S) W; }
    ) c' f9 I* J8 }# x1 j

    0 W$ Y, ~$ R/ v7 ]
    , q2 [6 x7 E, j. k$ N% i+ i

    6 U. y$ N8 I. A1 x7 @用过的人基本都会吐槽,太low了,极其不好用。
    6 A) w+ e; N* N. N; R) ]$ r" V6 q1 g7 |6 c8 P/ {9 S* |2 y# }
    5 Q/ p- `; `0 [
    写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。
    + V8 p* [) y2 E/ p; {5 p5 x: ^1 k, p. \: ]4 g6 k/ j, E

    + r- i+ T; S, O( w. A  F看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。
    0 \5 f, Q+ s% H8 i& \1 T4 Z
    - G0 }4 x! B$ i+ Y7 k
    & u5 X# V! T( C# W# ~+ \; V
    对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。9 [. W; r3 A: z4 ], ]
    # v- [1 q  `3 t" t1 h

    3 b& j  i& x9 v5 z很难看出表和表之间是怎样关联的。
    , A3 P% l7 M, y1 w. j2 g2 v+ J# Z

    4 q1 q5 c) `. e8 d导入导出数据就更不方便了。0 I" s3 C! H, i% A8 K5 x
    % ~2 V+ x+ `6 a: o( m( t
    9 h' |5 {6 y5 o2 p+ P1 L" [1 G
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
      W% X8 x' y) X4 F  t& G  FBAT大佬写的刷题笔记,让我offer拿到手软
    8 r: {( K$ i% [9 [- ?0 C, U8 _$ w* p$ E( K
    8 K3 }2 g( }" {& m9 [! E4 R
    有没有一款好用的工具,让我们能更高效的操作数据呢?& Z  F9 y' P% j  o

    ; ^- u# h" Z0 n  e* N" h) q

    : k% B2 \. c/ x" o; g这就是今天我要推荐给大家的数据库神器:Navicat Premium。
    4 e$ G0 ^2 n# O( v
    $ x" s% }" Q2 ~& f! y

    ) d, H* E* _* A6 v8 c3 V2 I) p2 A下面我们一起看看Navicat Premium有哪些牛逼的功能。+ c. P9 M" {/ k' x
    + ^. E2 s+ C5 C* h4 \* v
    5 F+ E2 W) j" g3 t7 S/ X
    1. 支持多种数据库
    $ R5 T, r- g4 f" w在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。
      `/ J4 E! k5 y  N
    - U/ t8 }1 m, b7 p8 s' T! _

    7 j. |9 C9 w& I9 w& U! D; B% }$ u点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。
    2 n5 L! v2 @; S1 c- f/ y( p9 l; A0 n1 B9 W; g+ T3 ~0 |

    + q3 g: A/ H  @9 T, g% n: D2. 轻松管理连接
    0 k. d' q4 `+ W. h# H. e2.1 连接数据库& z7 Z5 `9 U" x# D: p
    之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:7 c& z  I! j, D, V

    , L0 p5 o8 P- c) O% j# [$ p
    # y& f: r7 A' D' G4 Y$ o3 w
    mysql -h127.0.0.1 -uroot -p123456;
    $ ~4 ?8 X, v- L: y) J- f% [: i) v( z5 g! C$ Y

    9 z' o) M) Y: y* ~- T5 o1- f  e$ X+ O* |6 f8 z0 v
    29 t- E& k5 X  b; u
    每次都需要输入连接地址、用户名、密码,不觉得烦吗?
    * X0 k* `/ a2 a* S; [6 m9 E4 f: U5 j7 b! D+ m: C9 p' K4 M
    & V2 w, c0 S7 |7 V$ G3 }
    恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。4 O: P. i, {" y6 R
    ( t$ w% g$ h/ A8 l3 ]3 V  {/ l; P
    2 x  x6 Z6 G+ x& u
    以后就能通过界面双击Connection Name,直接访问数据库了:nice。
    % x& y1 [. @+ ~4 H+ x' v8 W* m3 D( i8 u; o! X# r! {9 ^
    4 l" J6 a$ @$ T, e4 O. w$ c
    2.2 显示指定实例3 M3 `6 c/ P1 B4 D' N8 C8 W; `/ @
    有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?
    + p& n$ ]6 k6 e& b+ U) s6 R( W7 p4 D# [5 M

      N& r6 {6 I9 z- S# h7 Q这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。
    ( a6 R  f& b, t; r( ~
    8 w* o# Z% `' Y* [1 Q4 \
    7 ]2 V* p% d) a! l5 E6 ~  [
    这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。
    8 i5 ~0 h9 N& a5 V) x# V! D! {  Q7 S; v# i
    2 I0 l$ T: T0 N3 z% Q3 N$ T  W
    3. 方便查询表信息
    2 z. ~) J; l5 n  S% l以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:* B, _9 q6 T+ ~

    . }% Q: g. H3 K+ y
    ) m2 R3 ?2 {  `6 j0 u
    show tables;
    2 }0 F( |) d8 L7 {
    4 X$ t% }' X. J0 k

    : {7 l7 T) t, u1 A0 d2 G14 W" x8 G8 i4 k8 u9 X
    2
    1 V" Q( K: t7 o. _5 q" }& P) o! F7 m/ X9 Y: [8 t, Q
    9 V! y  D' d' s+ t

    % E; [) Z0 ]8 z: D* f+ i
    3 t. I' p6 P% J2 R
    不好意思,那已经是过去式了。1 a) q3 O! i8 D
    : J% W& S1 j& D0 s& ~
    - ]. v+ u+ p4 t' j9 E
    现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。
    8 g' d  A4 }3 M/ ^/ M" a( u9 J5 b1 w% H  I' M+ S
    & v4 ^3 m- \) A; Z0 H1 a# D
    如果想看数据,选中双击某张表就可以了:
    % D2 t4 f9 ^7 {6 o* j* l. u( f9 m3 O$ m4 o
    $ u6 s/ c$ d1 L5 z7 U4 u
    如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。& R8 z6 F0 F2 y3 ]
    2 s1 T6 V: v! w- T% _; W

    3 n3 e% _) A8 J5 t4 b如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。
    7 K! S, z# R( d) |
    , d. |- D6 K' ?0 w" E3 g' ?$ L
    3 y$ ~/ v6 Q8 n6 R
    比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。4 h( g$ p9 L3 ?

    2 [5 K. f2 v, _6 @# b6 ?
    0 _' {: c% F& u- ?  k) J1 c
    当然我们通过如下命令:- j5 x9 g, L2 _3 t2 v# e: R/ Z  o

    5 I% t- X. M# A) @
    ' i/ ]/ f( l1 @  z$ H# Z! ~0 v
    show create table jump_log;
    ( F, W/ X8 }6 R# u
      u* h: D" G. q* F4 _& Z7 \

    ; h8 e6 n; A6 |# L. U8 \15 N5 t2 ^) n! c3 ~
    2
    + v3 o  u% S9 V" i) L也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。
    9 R, Q- ~2 w" C  q/ l( g6 J1 v. F+ G

    ; u8 F6 J2 y2 u) O) W4. 数据库实例的ddl操作
    # I! \. p. o$ }* j. x+ H8 w1 M通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。
      V" j- w& ]* w
    ; t0 |0 y1 }8 ]
    . Q( U( I8 Z. \- u) r# I; N
    右键单击某个数据库实例,就会弹出如下窗口:# u' k0 U6 C) q: h6 ^
    " l' m. z# p% [

    * k+ k. n/ ?5 N9 {3 D3 D: O; p% \里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。
    $ q# H$ h4 i  X. [
    % o) |% ]% @+ {- b
    " r/ y( I- X  }, n$ n! \
    4.1 数据库的创建和修改
    - H; x/ H1 d1 N4 Y5 T创建和修改实例时,只需要输入以下三个字段:! G/ T+ W& H, W* F+ Y, [1 F2 N

    % q# W, J- Q1 K2 w" v7 D, @8 I# z7 E
    4 E  \) Q, z! Y/ a9 g4 L
    4.2 mysql客户端
    1 L% G, m7 @" e8 d' j1 X在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:
    6 l; Q1 _/ m7 U- d: H6 ^8 i5 r* R! @3 }9 h# w* c) P. y8 J  _+ P
    9 j5 i( \9 K& c; Z% W. o. D
    4.3 执行外部脚本
    - R! a6 Q( D9 h$ d如果选择Execute SQL File,能执行外部的sql脚本:, a3 y- C, Y- M6 R
    1 s5 B9 \# T+ `: }

    " k. a- H+ m! j- A5 j- p2 x1 Y$ u% b4.4 表导出1 j9 T3 m, W" e/ |
    如果选择Dump SQL File,能导出所有表的数据:目前支持两种:3 w, h8 D2 m5 h1 h
    4 L) ]0 J( ^! E" D' M

    - M* Z  C& x+ i3 R* E导出表结构 和 数据
    + M4 V' |7 }( K' N8 o7 N0 q0 u! v6 y5 D& q- [

    # H; y0 \4 D  T# @只导出表结构
    * d! ]& J% c. w* @. C6 d! y& l8 @& u0 N
    - `; w4 e4 X: O
    最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。" M) D5 Y3 H0 s- Y+ f1 Q
    ( h& x/ {$ q! I
    8 m5 c4 G/ ^1 j) ]4 e- h. N
    4.5 打印数据库  H; t# q( I7 \, d3 @
    如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。
    ' p; S2 g* @. t) m& p$ U+ k& R0 [* g9 a
    : c8 @' D! C; e3 [# z0 z8 p
    4.6 转换model! o, K8 [& ]2 h0 P$ o' a
    如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。
    * T' _8 e4 l. e, _/ h# {: \" u4 a5 [8 }1 Z$ g- D

    * x+ e# p- \. g# ^# o; n/ u4.7 找到数据
    ; V; f$ `9 e* C2 M; d如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?! R4 k% S9 K8 P$ p
    ) C$ H; M" n1 j' {1 y0 x9 D0 U0 O
    : I$ ]$ {, S5 V' O3 z
    5. 表的ddl操作
    6 B1 q8 t' n) l8 t1 s7 ?相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:; I' C8 Y; Q4 u; {
    0 l# x9 }" N: o, C# h/ z5 V4 J7 k

    " H7 q; F6 L$ [; c如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。1 A; U2 a* P5 N# n  S) x" V
    # R4 p' I1 }6 Z+ v
    0 e# p( X2 U- N* d; Z( ]5 k
    5.1 表的设计窗口
    8 _) W* A1 ~* k/ j如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。. `, W' b  [  J8 b
    ' W5 \- G: ?( _9 l
    # {1 n3 x- d5 ?8 g5 C
    它支持的字段类型有:实在太多了,列举不完。. G- _# L4 R1 Y& P8 X7 Q
    " ]/ v7 I) e' Y$ ~! Z3 s2 Z

    ; c% K* O( L6 @8 S如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。* Q0 T2 h6 n1 I) N
    . p7 a: `& T7 H
    ) R/ _/ l  Y- ~6 }2 v, z$ q+ _
    如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。
    3 N2 i: [: W0 _% x9 r9 o$ y9 i. D0 j; A6 B  t1 E

    2 n- W+ L$ [' D; rComment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。* g4 ^  b0 v* m3 j

    1 J" O/ k+ c! Y3 Y' ~  A# ^0 Y

    3 k- P% X8 M* `$ {1 b如果选择SQL Preview,也能看到该表完整的ddl语句:8 c" }% D7 t* I9 i1 B: Y
    6 O. L5 S- v2 [% ~  _0 u

    . r' v9 T% u4 ~5 v( w! m8 k6 [* V9 O% d- N

    5 r0 Q! w" k+ {9 W1 w3 T) ~: w9 `3 X5 j! a) P+ X. B6 N
    6 ]% a6 Q* m. s. i# n
    5.2 表的删除' V+ W4 N) H7 N( A
    上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?
    " W% ^( o; f5 ~; t
    9 X0 d! ?* ^5 _3 |2 g+ ]
    : V$ d8 X9 d" g$ [' G3 P+ X
    主要是通过如下三个功能实现的:2 w6 ?0 ]5 D! {6 ^. ^( ~

    ; q+ Q, N$ q4 L$ q! |

    + y. |, J- ^4 z( a2 mDelete Table:物理删除表
    & h) ]' ~/ }8 \5 T# O' D1 z/ X4 T, j8 g1 i; [% r& p; u1 t- A$ f2 }& t
    / s# c* l: \/ ~1 i* D) ]! G1 [
    Empty Table:清空表中的数据,但表任然保留
    ( r1 o3 R5 u7 d- j. B, g: l7 E1 ?, e( o7 p" \3 a5 r+ F; ~/ r
    " s" X  ]& ^, {- D2 Y
    Truncate Table:逻辑删除表8 e7 y! t' M. w* i/ R

    3 v2 m  a+ u7 B) j& n! _

    , [/ c# i6 f2 o) x# ~/ k5.3 表的复制
    " d, y2 H2 n8 D! [  d9 W有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:
    - f% n; Z1 i' _% e2 z& H- k6 I1 x' C  I; @$ ^% ~

    - }% b5 j* f0 K& Q! y' _, ^4 K* L. n如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:" t: ~! i0 P. U+ ?
    / n+ ^- e" _1 a% p* m1 Q3 v+ W& ]

    ' U9 s/ B* c) v/ Q
    ( K: {- }, k7 ^) X
    & |, D+ u% b6 |5 V, U

    : n6 u3 x+ V! g; D9 g2 m# V$ o
    0 d0 E2 _. \$ b7 u; d) v
    里面包含的数据跟原表一样:
    ) S4 S7 \  s+ i; P$ C" b4 X/ U: l3 s; G; n/ c  v9 E

    + ]- y! G6 Q7 _; m6 a如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:6 W, M9 W3 z9 P- U

    - b7 b3 [. V" R" w8 \

    8 K& b/ E* J  X# t$ N+ q5.4 数据导入
    2 l$ b: p5 ^3 X# i' K# H6 M2 R在实际工作当中,我们经常需要导入数据。- T( ^1 f6 n: S/ f/ V+ F

    8 S; t6 v3 v2 v5 r8 ~
    # R: i  B( ~) a3 w. G6 R. _0 v! D1 Y
    比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。
    , U4 c& b9 ], P2 L( d) A; y
    9 |8 ~) X9 M- i- P- F

    + x$ m4 H9 a. K* t. G我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:! a( u) z; o; J* M% c$ P

    4 Z% Y9 `0 x2 e0 _" e
    & h: g3 p1 W6 F0 {7 B* c2 Q" A- @
    可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:
    - o) D& k- i! d# `
    : R7 j1 {7 @+ Y8 l" K: w
    & D8 k- g: \8 [9 \; H5 e
    5.5 数据导出
    ) J- A) l6 q4 [; I在实际工作当中,数据导出的需求偶尔也会遇到。
    # U- r+ W: c. j# X! x6 T
    + W, b; _3 `1 y! F8 ~6 K3 C
    . Z4 `! X/ |8 A5 A
    这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:
    5 e; F9 t% r# }2 ^/ l
    ) |) }  Z. g9 E: L) l7 }
    # m6 }2 o+ z8 R4 V/ s+ S
    可以选择要导出的表和对应的sql文件名称。$ ~- d4 u  e0 F: ^( N! k  R4 S

    - G( A0 [& \( q5 ~5 U4 [( f
    ( O  ^6 }" q4 L+ j) q, _1 U7 i
    接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?
    2 R0 D$ b8 y8 x8 |2 B
      A9 ]7 p! J3 e0 t8 Z# w' }
    - _7 c- H( c2 [3 Q% t3 H* V0 W4 }
    6. 表的查询操作" I8 Y' X1 ~. G% a9 t( \
    查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。
    & [" F# Q; R8 K3 _1 d7 T, z. h/ [
    * P4 N* G& `) @: d
    ' G6 O) f- t$ K7 G
    选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:; w* R% A2 y! u1 `' |  R2 D6 U4 b

    + G& }, i# v8 \! l+ `( B. j

    % j$ n( ?* k* b6.1 执行sql语句:
    0 H8 e+ q& ^3 K2 Q: q& {1 B3 c在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。
    3 e% B# p( b- B9 ^  ^& [, d2 H  V8 ]" C/ V: i

    ! e& n' Y" c/ f0 A2 o9 L虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。: H9 G; O3 f2 f6 X+ l

    - B$ u' d0 m' U  o0 m
    5 c3 w& O, z; D
    6.2 保存sql语句:
    / }9 h% G1 y2 f有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。& Q2 d, c8 ~2 F; e* I5 J
    - U8 [3 |4 ^8 J  ]( y. r

      R) \0 Q7 L4 T9 D: I2 c% z1 a5 \这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。
    , i! C- Q; s' R) e+ i0 K. s# G3 {' x* e& }0 m" m7 \# ~

    % V, H+ H: ^; l+ p$ W$ c这样以后就能在Queries中非常方便得找到该sql了:
    1 Z$ L4 T! _; f1 w
    9 [7 C0 q& e" R# {' _1 |& F3 ^
    ( o+ F9 r' U" y5 ~2 A" Z
    6.3 快速关联表( \+ m4 C3 \$ u  h
    我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。8 h1 P/ ~1 _( v* f" }; z
    6 `4 I0 p1 B- T
    & t2 u7 ~1 \0 U( p
    这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。
    9 l8 Q2 J/ h" z7 p& N) ]- ^7 ~4 |7 g+ G) O4 M1 l& b. M- H

    6 T+ f. K& ]! \& B* S! [* @- |  p难道还有更高效的方式?/ l% t, z; e/ {( p2 t

    5 u- G; h" ~! Z0 N5 S+ T4 I- {

    4 {; b. ~) n  z8 [2 S* I. X+ u点击下图中的按钮:6 O6 ?' U- W% w, ?0 R7 N# R0 S0 S
    . @+ U; z" M9 z, `& s- i$ P

    , {9 p) y0 o0 `( k, p( W会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。! G/ h4 i+ o% @  t, Z7 ^, U
    1 F5 W6 ?! q8 T7 z0 \" v
    5 Z& S. O$ N6 s( J1 g# M
    然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:
    . e7 }5 q2 _. a+ O2 N5 x; y/ w0 f5 Y: ?4 f8 Y% c

    6 z6 u" T8 r# C8 v) T1 ?太牛逼了。
    $ q6 T3 _- V& q# _
    ; J/ J5 s/ s9 c  J7 \0 t$ A( f
    2 o; m' @" `3 s' w
    6.4 格式化sql语句9 i7 m7 s  }7 g8 N. T; s5 V
    有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:4 i* ]0 C: I5 h. F

    6 _% j1 g* g, ]* x3 A
    1 ?1 u! O3 _" J5 h% \
    看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。  g! O+ x- R, m, L2 O% v
    - o- {; a4 D9 `' [% n

    $ v, @3 \" [- Y0 k5 |, i6.5 执行计划. m- U" T1 ^  i2 ^) v& l
    有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:/ x# e) B+ B* o# Z
    4 S/ M, n2 @$ o3 Q2 z4 s

    5 d+ M* E& Z+ m4 q! _这样执行后,就能看到执行计划了:3 a6 }* E. l, C- x/ S7 D% c
    9 I0 U7 l' G( `6 M
    . d! a. u, U) @9 O& {. g( q  S
    但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。6 S, U' c7 G- W- Y$ q2 D# B
    " T! B/ E1 S4 ?6 j% k( ?7 e" M
    " }+ N+ v: n7 E; y; S
    6.6 切换展示方式
    . J4 L% o4 p0 `1 t. Z我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。9 ^/ n4 s1 X% T# b5 L" _; \

    + x, C7 X! ?, s: |& }
    ! Q  a7 D4 [. H- p0 S. j1 \
    这时可以切换到form view模式:
    6 q% a9 J+ u' Y7 {: l/ G& w3 z9 n
    + A2 N1 ~7 ?. i0 q) q- C: o9 m

    4 g8 ]' |  c: Q: ]' W9 Q然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。
    6 j" {* B6 m. c, g( `. f* I4 V  \& d; I4 O" S. v) P$ I  p

    9 t* }+ I2 b5 w% K5 u5 N6.7 新增和删除数据7 k: w2 l2 |% E/ z
    我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。
    " x; g7 x9 B  b; S* _, C* d# ~+ R- S& b$ O

    & I4 p; J) D5 j. X& y' }2 ^同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。% b" a0 P) e3 h. A0 y

    / A+ F" n) b) l

    ( V7 r1 L1 @9 H) R最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    + X3 T! g0 X. m- b% _BAT大佬写的刷题笔记,让我offer拿到手软
    ) `# n' O( w' c% U————————————————, T- y2 l; f  X2 P8 z* _1 J: u4 M
    版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。& R6 Q' k8 }. W" k0 N6 P) A
    原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369
    ) w3 t! Z+ j- R* {2 ]* A; R3 i( T" G9 o
    : b7 {8 v$ n6 k% L
    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-4-14 23:31 , Processed in 0.390670 second(s), 51 queries .

    回顶部