QQ登录

只需要一步,快速开始

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

    , z8 H$ Z5 p; U2 H: G! X. E' C$ Z: q这个数据库神器真是太diao了$ ~. F& t( N! L; Q, R( `
    前言
    4 H1 |# o: P7 o$ M- X1 p5 K1 ?对于开发、测试、DBA、运维来说,数据库再熟悉不过了。
    - d! [, |! V4 Q6 r0 ]" V, r, Y' U

    8 g; c9 d3 W8 Q1 t5 |& }% Z6 @3 |很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:
    5 Q  C3 j2 c' y/ C- N
    0 E, ?9 O- {8 @7 T+ D! p$ N1 l
    % ]( N8 `! O7 \: ^! N/ K4 L
    - z) h- g9 Z7 s" y
    " Y5 C) E: k. ~
      V- p' T  @7 E( Q9 |7 J
    ) s: Q* I5 E! [/ ~3 ?: ]* C/ m
    用过的人基本都会吐槽,太low了,极其不好用。% F2 E( m1 M# Z- G0 f. Q

    ' ]- L0 @- p, f( i) L1 |
    * A( p) n# F' u
    写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。0 N- [0 S( ]8 S! }8 H- x+ q& d
    2 Y3 [4 m3 Z( l% d! Q6 G6 c

    1 v/ a5 |7 ?+ F# p看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。$ m/ j; Z5 r9 B: Q
    + H! n& x" l$ P' _0 b* A* r

    ' |7 N" C: }+ N, x对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。
    9 _2 _6 r1 l1 Y  w0 u$ l# a& ?: O. C3 y) c

    4 P; m$ Z; w( N0 d8 d$ E% ]. q' ]很难看出表和表之间是怎样关联的。
    9 U4 A* ~2 u  a% x+ w2 i& {0 Z3 _6 l8 d8 z+ P% g0 F
    ( s" ]) Z6 O3 |) B
    导入导出数据就更不方便了。9 j4 ^2 C, o( N6 v% h' o% H  d' Z
    9 M0 h+ r& B: V7 T# x& K3 o
      m+ p% L. I# g& s1 a
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    + Y; S5 O+ ~$ B) kBAT大佬写的刷题笔记,让我offer拿到手软4 W3 s$ F$ _: D" ^

    % U7 N8 f8 N* T% |1 {, M$ B

    5 R/ A8 H7 M* B0 ^/ O9 s有没有一款好用的工具,让我们能更高效的操作数据呢?  T+ p! D; ?: D- ?8 E7 B9 `

    7 O0 S* V4 k; `. {- |+ v
    7 G* _4 Z, a+ L. t% t3 e
    这就是今天我要推荐给大家的数据库神器:Navicat Premium。! Z; N" r) v0 W: O1 I% n
    2 h2 v  c+ o+ e

    % X% M' e' D( Z下面我们一起看看Navicat Premium有哪些牛逼的功能。
    1 f/ c$ ]$ m! Y; Z+ t  V9 g& q: E  z. ^# w: Y+ J

    ) ~5 N$ B/ U$ i# Q3 ~0 Y1. 支持多种数据库
    " b0 X: R/ B0 o8 R, M在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。
    2 d" [6 `* m9 X/ U5 |
    - |( S) s' Y- y+ |- v
    & y. Y1 R& m6 h# f( O, ^' @
    点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。! |' K7 F9 a4 C% S! z- y$ F3 Z

    7 _) p4 Q# P* W- v- X

    ' B6 j( n. D  }0 v" g( @. \2. 轻松管理连接
    2 O& I! ~; T7 u9 F  }2.1 连接数据库2 |6 W: h+ Y3 Q2 I1 u  x
    之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:" t# Z$ i  s" o7 h: l

    7 Q7 L- o" X* y( ?; ~" T% _3 J* L
    + v1 }, @; e& `4 u- c
    mysql -h127.0.0.1 -uroot -p123456;; E$ _- \% [: L* I: V

    - s  c: t' N& T

    , \% \) |+ s9 G2 m1
    ( X. {) e. t5 ^& i6 X; t  n2
    ; B) B) d; Y9 e每次都需要输入连接地址、用户名、密码,不觉得烦吗?
    , N6 s1 i" w) G2 V* x5 I7 {) N  o2 f9 q  b
    ' B( O$ Q7 A' g6 t0 l0 O! d9 w7 T
    恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。. r1 M: p0 o3 Y& z/ d2 E
    ( D4 r3 o2 D! J# w6 S9 v

    0 K! c; e3 H* o9 a以后就能通过界面双击Connection Name,直接访问数据库了:nice。
    # G8 P! d: ^+ N" v9 H9 O# u5 A$ O, f4 Z& A0 Y6 I
    0 _8 k- n' O9 ^: X, I: m
    2.2 显示指定实例( ?0 y3 N* {+ }5 P0 L
    有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?
    & u  e! h0 t  k* C' k# u
    " P+ J. E5 A' u+ S) O# ^

    , g9 d$ x7 D0 J( Y这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。/ v5 R" f& S& Y9 v$ _& V

    8 F! E. G# l. ^3 i% b' {: n

    7 @' C" q2 A# v% [6 k7 u这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。
    4 y$ N9 [  {  v  N% O% R: U
    # Z2 S4 V4 s" o' C
    2 C) O9 y0 w5 g' {
    3. 方便查询表信息
    - r6 k* a5 N4 |, l9 {. b% k以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:
    1 T+ x, O3 U2 x, e0 I
    5 g1 Y; f* p6 Z' h5 k. c+ S
    6 ?; @7 {/ I/ Z1 D- @
    show tables;
    1 u) Z4 Y) z- z: o! ?! I! @7 H; R9 e- o' w; f0 _* y, d" ]

    : ]0 G8 ^! g; |( {8 Q/ c8 i+ A1; s- V# P7 X0 f3 W" S
    2
    ( c8 D4 j( h% N& v7 e9 {- W4 O9 r! u, t6 t& p

    # h4 g  F  @$ s) i2 h; v. r% o
    1 j9 S3 ]  ]2 E  b5 F6 |" H9 B

    " F( O) A; ]5 V; W3 F9 p! H: v不好意思,那已经是过去式了。
    7 c- F7 K. U0 I5 S* M. m+ }" B) W1 p) N* Q
    ; _" ~+ a8 d& z. V$ C2 }
    现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。& d! C3 Q* A+ R, k! c

    % J* s! q  P/ ?2 i. h

    5 X: ^! v9 m; i0 r" d" L如果想看数据,选中双击某张表就可以了:
    ' l& s+ s5 g& D" L* n4 F0 T' H
    ' X9 V' b! b  E+ |% q7 O
    * f/ ?8 ?& H- [% ?
    如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。
    6 b7 L4 m/ p; r7 [# R' V
    0 Z: p7 D9 X  O# i

    8 `/ ^7 ?: Z; |; q7 a如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。
    8 {. h$ V4 S7 r( E7 l' l8 C/ V
    * U$ Y- F' g; B) j

    ) u" f8 o3 Y+ E- p6 S比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。
    5 Y4 f& ]2 y* [. E. T4 _+ O! v! n, D1 z9 W) @2 ^. l

    * L2 K$ c: U2 H$ F, f) z当然我们通过如下命令:
      y9 f. Z9 @" y  p7 b) V
    9 j2 B* v# |4 b, U  |" i

    # ^' Y7 c0 s% s5 ashow create table jump_log;9 O# E+ B* X* ^

    / I! ]6 q6 z- [: |& D1 K3 [/ H
    , z; t: z# f5 ?. ^! e9 V" Z* V
    13 q+ B! A8 _  p
    2/ j' h# r  a' a% Y0 e# s- h3 ~9 }
    也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。  D+ |# D1 V- d  K" L

    ' i6 D: b( i  W/ v

    ' }! t) T6 `; i; p- O: N8 l4. 数据库实例的ddl操作, `: N  n& h; c, C( p# e3 V
    通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。
    8 T, d  d- k: W; p# f6 G
    ( I6 x4 H6 t1 n( y' l

    , k' ~$ f9 O$ Z6 ~0 ^; }右键单击某个数据库实例,就会弹出如下窗口:% d4 q* b2 K; F. ?4 Y9 f

    3 ^% V; H8 n( y( r2 |- @
    8 l& P1 n$ m6 `6 p  C( Z
    里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。
    & b4 t* R# T% \! \7 L% |" G& D/ w* F% _' p) }- i. p
    3 N1 w# s; V+ _# E
    4.1 数据库的创建和修改( s0 A5 h. j. }1 d- E: e
    创建和修改实例时,只需要输入以下三个字段:4 _0 [6 y  N! X
    $ A' J6 @9 @7 i: R
    9 i) B: B# a8 }3 ~3 a
    4.2 mysql客户端; T( a8 Q6 E' D1 e# D) U
    在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:
    : s) C* ~& Q% c7 U* i3 R2 W- ]7 J: \. R+ Z8 F: k

    ; S+ i$ q$ c) V1 N' N* {" W9 Q8 p4.3 执行外部脚本! F* D) A3 C/ H+ ~
    如果选择Execute SQL File,能执行外部的sql脚本:' D! Y1 {5 C, H# Q
    ! ^# N& v# _) h# C5 R

    ) Z' J4 s& i. X& v0 ^9 F  d4.4 表导出
    ' r- i& e7 i& m! R, _如果选择Dump SQL File,能导出所有表的数据:目前支持两种:( X3 V- E0 m' n4 t: K$ H# s
    5 E3 H1 g4 G) X; c0 J

    - `4 l5 Q+ f9 L  P5 `3 r+ X导出表结构 和 数据
    : K9 g: y# T5 o3 M+ t& V  V: \' v. n+ A& m+ C( W
    4 i9 F# V9 {& p7 x0 |
    只导出表结构8 v5 z. ?( g0 f; k! ~1 n" }

    , e5 v% @; x% B! M& ]+ v7 a
    " l9 i/ ?5 d2 ^) Q( {& ]9 T
    最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。
    : W; ^6 l& U+ w. l+ {; _# l" r
    + q, J+ o: W! q% ^8 {
    4.5 打印数据库% |/ [" r1 s9 |2 F  B- f- B
    如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。
    ( r5 Q- |4 I! N: Z9 Q' ]" |
    9 Y+ N0 H' r# W9 `: ~
    4 ~( f. u$ W* B- k
    4.6 转换model
    % P, i. ]0 ^; f' q: a$ Z% [如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。8 M2 t" A* t8 q. G" C( y5 I

    - g0 [# J1 w8 ~" m4 P
    2 p& d' S. {9 ]8 v
    4.7 找到数据' f" c4 o$ W8 @" h0 d* Y* O* e
    如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?
    , T1 f( s$ q, r: K* K1 Z% o% l- P" q8 L+ X/ l9 `0 O
    ) c; K( S6 L+ r. y( Z$ r
    5. 表的ddl操作8 x# n# X5 l7 R8 ^1 N
    相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:6 b5 \, j/ N7 P( H# x

    ' P: k" ]- T& h( P
    4 ]8 q  y' h  u* R" O
    如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。. l2 b  v2 p, G# i
    " D# u" N4 Q/ I1 K8 X5 t
    3 E, |6 L- z3 s" }- _7 \
    5.1 表的设计窗口
    - M( u% `9 I: {, \, l6 Z, e如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。
    2 J( ~6 ~% g5 D
    9 g0 {$ R; X* O- u. }9 l4 B7 v

    2 e; m/ E2 [; |它支持的字段类型有:实在太多了,列举不完。
    & e' S' }5 ~9 w: _8 n: d+ p
    : g. c7 Y/ D: V# _

    1 C, ~3 U% c; R3 w3 f- g/ |  y' G如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。: _/ l- n: S6 ^

    ; N0 a3 x$ U# h4 M

    9 A% P! Q& x1 F; W/ I如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。. f6 {$ x7 K) P8 ?& N6 Z1 g

    $ S, D; `9 U  C) F7 L8 w
    ( g$ S; [0 T8 I
    Comment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。2 N  X" V8 I, m
    6 a8 O$ m" d1 G8 c

    6 }2 M( G$ h% T1 M: Y, X如果选择SQL Preview,也能看到该表完整的ddl语句:
    5 T6 V3 g( w2 J( c  Q6 z8 ^0 m% m1 i% n5 [- R

    ) k+ z/ r$ f3 {1 F( G& Z% `) Y# n+ p, E; Z; s
    3 ]5 x0 D* s! r7 r9 b( b

    ; C* k& s. i" b$ B7 d; {

    8 e7 O7 g  {" }+ X5.2 表的删除! P) ^9 i9 U  O$ w6 B$ v
    上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?
    7 P% t  \) L2 f0 l+ d! V, _* [0 h5 U$ C% Q9 O! U3 h
    7 x& j, O4 U/ D6 ~* P1 n: u
    主要是通过如下三个功能实现的:
    - O  E# u, R! x9 G! |: K. }0 s/ o9 L/ A7 \! `: j2 R$ [4 q
    / c8 [: `; k5 }: P- r' D( `
    Delete Table:物理删除表
    1 U1 |0 `7 L0 h' I9 ~
    ' [# u5 s. k7 |0 U/ i
    3 q" H% h5 W9 B+ |/ @
    Empty Table:清空表中的数据,但表任然保留
    ( m# z" Y. u! i1 V1 X" N; i: p& m/ [9 u7 k0 P9 R4 {

    % `2 q3 U: p2 ]5 j8 n" K, E# qTruncate Table:逻辑删除表
    ' j/ e, T4 ~, q0 R* Y( Z2 a' `$ W+ O: k* _

    ) b1 l. [: f9 B9 M: E! y) A5.3 表的复制
    2 |% |3 s# d! F8 w& Y# ~: Q有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:
    , v% L  K7 H4 O# h1 u+ @; i7 H- S4 N* E' g# y
    4 [" Y- v/ Q6 x8 H5 V; o- @
    如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:  W; {3 x4 a) K" o6 a  u
    0 g! r; |/ ]/ f6 {4 p2 ~9 d. X0 R
      S7 B: N1 o& f/ b0 W; \) J
    2 F1 O7 `, c- \7 {( I% G
    / G1 C# L" m/ G# [6 L
      }4 y) M/ H% M) k9 V
    ; g5 S8 W7 L. L1 t
    里面包含的数据跟原表一样:( D4 w; y! s- R6 ~! I
      x& `( ^  Q) e

    " E# b; p- d1 \+ A  G; S& U# b如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:# d8 R/ p" u6 B

    ! L% ^# W6 p5 d8 R  ]
    % d1 p) K7 {/ U* \+ i5 K5 I) m" n
    5.4 数据导入
    3 [5 H3 }1 x9 _6 C在实际工作当中,我们经常需要导入数据。! s6 ^7 v# N) z" O. O
    9 N" N7 J9 i: M$ ~
    " j8 O, s2 e( }+ z8 _* j- |( Z
    比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。
    - ?. L5 G4 G. a+ X  K8 m8 E! P6 l0 T5 N& N& V6 Z' L7 j* l
    ; J5 f1 z6 D- B" U5 t  b. W
    我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:+ |8 H! l; u0 e% G1 h$ M" l6 j

    / J" }$ \4 C, \3 F" A) W) f
    3 U3 s4 V; w! {7 |
    可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:
    # t8 l5 B  F4 t% {" `6 F* `& ]; c& H" O. N

    % Y/ S: V0 _! f$ p& v) q5.5 数据导出5 u1 e; l6 Y: c6 ?
    在实际工作当中,数据导出的需求偶尔也会遇到。9 S2 q  H4 Z5 q
    3 ?) p' U3 f0 s: D5 s
    1 E* @4 f% z8 _5 ~9 r$ {! j+ h8 o# e
    这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:  V& _, N5 M9 m7 @, d7 G7 c+ a

    3 n, I0 u$ w0 `2 N) w

    " y! B4 X8 N$ f. Q  i, d可以选择要导出的表和对应的sql文件名称。
    9 O, @' F7 ~# M4 h
    * s, w) p3 L% t# h5 n3 e

      x, R7 A5 t5 V, y8 u6 F7 T接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?: Y# C4 M* H; u1 j% N7 ~1 S, i

    % |) f- b; X& {  i
    * R/ r3 f2 a  e- j$ X  L
    6. 表的查询操作
    4 k9 v4 F# C: d7 E. l) p! M查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。
    0 B2 L! Q9 P" p6 j
    ; r. I2 g" H7 w
    " [; o2 W' A4 K; R; \: i) i/ ?9 z+ t
    选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:
      }- Z$ W7 P8 M1 o0 W' {: Y
    ( Z$ Q  R- a, }2 u3 `
    * g2 b  L$ t- s6 Z
    6.1 执行sql语句:
    : Z) F7 F7 u, E& k在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。$ N; D9 e; G; L+ }+ i$ E( J0 K  K

    9 z; r3 O& y9 N) A4 t
    $ a- Y3 Y4 W9 f9 S! h6 o. m  W4 o
    虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。
    1 ?9 s8 j& L9 G, X9 ~8 @' ]0 y; f: [- v+ Y; F# @6 Y+ v
    $ C/ y7 `  V3 ~/ S0 @/ d! v
    6.2 保存sql语句:
    ! _# i$ @5 b+ j, f; \有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。
    0 V& O) _2 J3 H  n$ i8 {, B" }0 X' M4 Q7 I0 l
    $ W) N% v- M* x: B3 R, u
    这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。6 a6 X' w6 W' s3 s9 [' E' I
    & h$ |" P, b! {/ X) m

    2 ~+ g/ u! `1 `这样以后就能在Queries中非常方便得找到该sql了:+ n: D/ Y* ^" a& Q
    5 n" M" {/ J& ^* q7 ?
    6 e- R/ l6 E% T; p, ~
    6.3 快速关联表
    8 c" u1 F9 v5 z- p/ f7 Z4 K我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。  b0 `! ?! `( E4 d
    4 I" C( x7 j* V, v! {7 C! j

    ) ?1 L* W1 `1 k* @+ l这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。
    # N. Y0 Q3 p" J/ f5 G
    ; e! y7 V' ?$ G2 z* p' O. n0 ~
    0 {" Y. g9 D# k
    难道还有更高效的方式?$ u( @5 c. E( H0 T4 O3 S. X
    7 m2 n% l4 P/ |

    ) T/ O+ J& V( m  |# e0 O) N( a% F' n点击下图中的按钮:
    , C+ l% y1 e/ O. k5 `
    " [1 g2 @( P0 K+ V' w! S1 j
    ) R! _) Z+ z0 _* ]1 l# M, C$ Y2 |
    会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。" B; h& g) R1 g5 d( Z5 N! G
    % B" ?; R8 _8 n) E+ r

    ( [8 H& t+ z! }4 Q: P! m: {) O然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:
      Y! r. c8 @0 [  N8 G6 o
    ; a+ ], i- @8 B1 X5 p
    6 W* Z7 }7 ]* F5 q! p% [( ]( u2 k
    太牛逼了。
    + e9 Q9 w* ?* l2 H% Z8 g9 h4 v* c) o5 E9 L8 v- [
    ' B7 e! x# J7 q$ M% w9 b
    6.4 格式化sql语句, z1 _, Q8 X) G7 k: f. H8 ~
    有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:' \3 D- {* C7 _+ i/ i- G1 s! z1 ^8 X
    9 q: M0 g% n  Y4 H' \( w8 d
    9 \: P& b- ]+ b' z  E( J. L
    看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。
    2 f& ~2 D5 N+ @) }
    8 I" K; P$ B3 Z
    0 p8 l/ r6 f( }: s1 ?
    6.5 执行计划3 @+ m! z4 I8 Y# K
    有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:
    : W+ t. q* ^6 g3 Y" T5 @1 G5 n& r7 b+ ]: s4 W' s# y8 _
    # j, E* ~( @) l! R! u+ i
    这样执行后,就能看到执行计划了:- a* e% D1 Z- W

    : w# |1 b5 m8 @; f4 I

    8 \9 N6 U6 D+ \' k1 l但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。
    4 k% e% @$ O1 s6 b* Y; {0 l7 h: V  y) V2 _

    ) P( N! l/ _& U% M6.6 切换展示方式
    ) ~. C1 g7 {0 n0 t% V我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。: I# A: ?( [) m; H+ H  z
    / S8 w3 q, S% C
    1 L- y. K4 D6 L6 S! Y
    这时可以切换到form view模式:0 \, _) f9 V# M# j

    5 d2 Z* p* c5 {: J, n
    / }; ^' e' ^  W
    然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。
    9 m4 f; _; A+ I# V2 Z, E
    ; O3 d: c+ W1 P* @
    ; A& R, v) q7 w: U# k" w
    6.7 新增和删除数据
    ( _, S" R  ~6 V2 n* K% ?7 Y8 K我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。
    ; T7 d$ v/ A, G9 n/ f( y$ a" i/ d1 b, }1 R: X3 `

    " J3 L  K5 D7 x& o) t同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。
    ( w; p7 B; e1 |. J
    5 V7 c+ B% n! S9 H5 N" }  `# {" ]- G
    5 \0 \' t) ]5 V5 T8 {4 B
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。( x# J" M3 d" I
    BAT大佬写的刷题笔记,让我offer拿到手软' L# L, U! c+ r. w
    ————————————————
    3 I5 s1 t$ w  z% c版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。( v9 D2 b: d% Q& R# t# u2 a
    原文链接:https://blog.csdn.net/lisu061714112/article/details/1187083694 a+ D' O1 ^1 C; B

    0 w2 q1 e& D) e. x: y" o; o5 L/ N- A" X" G; G
    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-5-27 05:10 , Processed in 0.557087 second(s), 50 queries .

    回顶部