QQ登录

只需要一步,快速开始

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

    5 P3 s# M  N  v" S4 {4 d5 z# J; y+ q这个数据库神器真是太diao了* K8 ]! C+ Y& m3 y/ N3 l
    前言
    & ^5 a$ k6 O6 O: B& V' G对于开发、测试、DBA、运维来说,数据库再熟悉不过了。
    8 X4 u6 X8 Q2 |( M
    1 R; E1 A9 \. N8 A8 }6 K6 W" m$ k
    ) ~0 Y6 t  t* A' `- v! J
    很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:6 z2 [8 A$ k4 P& r3 K8 S% n( C, v9 e% c

    7 }* j# Y% A7 n6 c% k) w
    $ `1 V7 {" l, h* T
    " j/ ]1 q% {8 l0 D- {1 C! p

    ; s1 }, i" s# ~1 l3 _: J, B7 r9 o1 {! ]) ?

    . O" z  g9 W0 ~( [% X0 z! w8 H用过的人基本都会吐槽,太low了,极其不好用。
    . [( x, s$ b7 _- b3 u. _6 Q; D- R% V" r

    9 ?2 h6 z. }1 E写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。) t; C; R6 H$ b7 u& S+ R

    * n( F9 h7 H: I7 W# U! q

    , s& R  V2 ^. [1 W( _& I. U# o看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。7 O  U* O2 r: w( J& q4 C
    " n" n/ r7 ]& `: e
    + k3 n5 s0 b. a6 @* d+ r1 d" v& x+ I
    对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。7 N0 Z% a, ^8 p4 M8 z1 D) B# I
    ; \  S2 M* j; ?/ t
    & Y$ F7 E. i2 S
    很难看出表和表之间是怎样关联的。' O, K/ @  F% }, x8 c0 i

    : ^2 J- e  M9 h, j. _

    % ]  O  N8 P! m, j" H导入导出数据就更不方便了。
    - }8 `% w9 P( Z' _6 ~5 @
    $ T3 H9 w7 S% U2 s- E
      m' w- ?' O1 F1 K4 k' Y% l. t  s0 ^
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。/ d! x$ O. g2 x' u0 v
    BAT大佬写的刷题笔记,让我offer拿到手软8 E. D; R( W! c. I/ v, O
    / i" m; d% S9 K% l; n2 w0 _( M/ h/ R

    ; c: {& s/ V) Q0 u7 ~- j0 {有没有一款好用的工具,让我们能更高效的操作数据呢?6 u" V! M# P/ f+ b! `# D$ L
    / z9 Q$ t: g3 z0 w; X4 w: y( B. H

    6 w9 `; P' _! y9 W3 w这就是今天我要推荐给大家的数据库神器:Navicat Premium。
    6 z  X& I7 F9 e$ k* x/ n: O$ A1 x  c$ R. }

    4 U9 C1 u* M8 N: s4 P" B下面我们一起看看Navicat Premium有哪些牛逼的功能。
    & \1 M8 b% h. r# l! p
    6 c5 I" C, a" v% w

    % f2 q+ k0 [" A; j1. 支持多种数据库- p+ q" D; h( {) d
    在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。% D% k) ^& g  U7 i# B$ O
    - c8 A: k' }( y. }% k: S  N1 G

    , u) d) k( e) }点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。
    4 x  @* x* w+ K7 P. i* Y. L9 e
    * b2 _3 p# y+ ~  j) I
    : i7 y, M" A1 w" }; P& {1 R7 S& S
    2. 轻松管理连接0 R  e# b8 V# w
    2.1 连接数据库+ G- V+ M5 ]4 A1 v: [1 z
    之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:
    ! G8 o2 p% D5 t2 P( B4 j% v. s. ^3 S! \8 i4 X3 E0 P
    $ @' j% O" q3 O+ _0 a
    mysql -h127.0.0.1 -uroot -p123456;
    1 [' ]; p/ I7 |# M3 A  w- Q: e3 q' g% v1 ]3 S% O% w% d
    3 k: H; n, ?7 L# v/ l2 D+ L; v2 P
    1
    , f2 Y" S. ^) G2 I8 j* H  d2; ?  S2 D5 @6 `, G: D1 v7 `
    每次都需要输入连接地址、用户名、密码,不觉得烦吗?
    6 T( M: C9 e/ n0 |! \" A* G3 S! T$ j1 a

    0 B* v: e, t3 Y- @恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。
    / ^: U) Y- R% }9 |* q# |. ^$ A: k& e/ e* ]* Z3 _% q  o2 v
    4 q1 N$ l/ f" S" e( s  [
    以后就能通过界面双击Connection Name,直接访问数据库了:nice。
    " n  @; U8 Q3 d( O: k# n/ \' q  D' P1 V, D% Q" X' A  w( \
    8 V7 @& ]" E/ ]9 P3 s  J& p2 y5 r* y# x
    2.2 显示指定实例7 |$ c' d- M' I$ ^# k4 [* l. E  A
    有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?5 z8 D2 I. F" s, Y/ t) i
    8 g  f& a6 C* u# n* W
    8 ~" v# r8 Q0 i4 a( C2 [2 z
    这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。5 t- D: Q- v" F7 e6 R: g0 z1 j

    6 _) U! J8 J6 i- S$ l

    1 ]6 \3 m  N4 S6 |这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。" Z, y$ M2 c$ H' a% p: ?7 e

    * u/ ]* p9 z- [+ f
    4 C, |( N- T$ j# b% H7 `, Z
    3. 方便查询表信息
    - C' U  _( X, W& X. B# T  o以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:7 Q- [' {! @, |

    5 X6 q; ]- U" k

    , A" ?0 ?( w6 i: B1 Z8 }% Mshow tables;2 s. `+ T" B- O0 U
    6 Y1 ~, Z0 r0 v5 B
    " \# f* Y5 k' i0 R) z
    1
    ' K4 P% p( M- B# {6 {3 N  a/ i2
    ' g8 {( P0 w6 r) ]7 x8 q- u( B: p0 ^! k2 f

    / K' {6 ^& t  ^6 _, Z' ?2 S$ E( N5 D& l/ K5 Q" U. Z+ g$ D) ]# [' t

    & X' [- I, X% p9 Q, i不好意思,那已经是过去式了。
    5 Q; F$ s6 u9 L# E0 e2 [( r1 H5 }, k6 I) L2 e
    + }4 H; w4 J* I: t4 R
    现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。
    7 ^0 a  G  q. f1 _& @
    - q7 W9 Q8 T  F% R5 y1 I; A; v
    ) E! W3 v5 l7 ?* w/ ]
    如果想看数据,选中双击某张表就可以了:
    5 d; R- u( V, R8 U0 \2 p. q8 h/ Y6 @9 a! ^1 b; V6 h3 V0 J

    8 c: Y/ Q% t/ ^& p4 ?0 x. b$ @如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。, D9 z; A, k3 i9 e+ {$ l5 ?
    ( C. J: O. [7 V& e& {
    ! d9 T5 k0 n% W6 E$ B' B
    如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。
    / T* ^( ^0 }* b* h; R/ x# R! [5 {, @& F% \$ l

    $ I1 H! H7 h; ]/ f/ D3 V比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。8 Y) K8 @& U8 h3 C& `- V4 ~
    1 S5 B; E; {- S% l' A! y

    # T% T0 n9 C8 I- Z. e当然我们通过如下命令:: F5 t0 {0 B4 f4 ?! e3 Z

    / i6 k- c! J% f
    * _( t; j! E4 ^
    show create table jump_log;! Q/ \" G* c# E9 C# n: q  ?1 Y! E
    0 q. J9 C- W+ @2 Y5 O/ @/ ]" h

    " H/ r2 {) h: }8 S12 w, C. y0 T, S, i% i1 z8 _4 F6 _
    2. O' K! R) I+ p1 V  A# L, G2 X
    也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。% H& E# ~9 R( {4 N- ]

    1 m0 Q6 k( n$ T: d8 n1 z6 }  y, p1 p

    # m: `0 ~# J/ I' l2 B& P3 t$ [; e  P( h4. 数据库实例的ddl操作8 i8 M8 O- n& h4 r
    通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。
    - h8 w8 a5 |& A0 A& {/ k' g. w" K) ^9 Y1 Z! s
    # s  C0 Y4 ~. P! h+ h8 y  x3 T: P5 }
    右键单击某个数据库实例,就会弹出如下窗口:8 @/ e/ v" e8 B9 C

    & N" u, S/ C2 Z( Z8 o. M( D
    5 U. j& ^7 I. k) ^- g
    里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。
    ! G7 c0 X* Y8 N9 E: \) Z$ |! S: S7 c8 B
    ; V7 n4 Z+ Y" o6 D0 ^3 [# P" _
    4.1 数据库的创建和修改9 p8 o+ Z. V- d# s
    创建和修改实例时,只需要输入以下三个字段:2 @& v, H, c3 h0 C8 D
    $ S8 O2 ~. v# }9 m" O
    6 n$ Q. t/ ?7 j3 o+ d- |; |
    4.2 mysql客户端3 o5 m1 V' \  M" F- ^. q7 w/ ^
    在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:. U( z! W( n' b1 B
    % u* [) `' [4 e" _5 g" n& c
    . s; F. M- {- U+ ]! y7 O. S* G6 q
    4.3 执行外部脚本
    + z  ~7 o$ h/ V( q如果选择Execute SQL File,能执行外部的sql脚本:
    & B$ J" |- [) j; Y4 g3 t- ^3 H7 z, c  i1 B% O

    : p/ h+ ]  ~/ S4.4 表导出; g2 l+ E0 }9 Q6 g& ^1 Z
    如果选择Dump SQL File,能导出所有表的数据:目前支持两种:- x! K! Y6 r0 I# H& ]4 H
    % v( I+ G# u& j4 T" l( q
    4 r8 R) p. V* j
    导出表结构 和 数据5 m5 X* z5 M' G7 z7 \- i

    , L8 S/ a. S5 B! g

    7 ^$ U6 Y1 M: a( O2 {只导出表结构
    7 Z3 d$ A' J1 r" W; Y: q0 P. H2 {, B8 l& o* f. W

    " L) E% e9 p, q6 W2 {& L/ ^最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。
    & @+ w* G! F& D" i7 L- \& F% z
    9 a+ _( U; m# t  C% K

    8 }  I  W3 ?; a, D) E4.5 打印数据库( y7 p' Z& e! C( g& h
    如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。% i4 R- ^/ ~# u/ A$ h, b; _( m
    9 m: J+ b0 M3 O7 y

    5 J6 Y. z0 C7 i, N, H2 d! b) c- b4.6 转换model% ?& [3 a, N: M& z  i( Z
    如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。/ U7 P, d) c' g- Q
    ) @/ J' E0 }% W

    2 H, T5 o6 J9 U- e: w# _$ k2 W; {1 ?4.7 找到数据5 ~% u9 F7 J8 _1 K5 U0 g
    如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?
    , h# W4 @( |4 `) C$ }# [" o/ s/ S! U/ Z% U  o0 I+ K
    8 k( z7 n% K" {
    5. 表的ddl操作
    1 Q! _; ~2 b# @相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:
    1 A, q# ~& }# u- p) y" J
    0 i3 _& f" R0 H; |* _8 S4 d" d+ Z

    ; ^* x5 U. U+ h$ e$ x如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。8 A) M) X/ \1 H& x; ~
    # H$ O1 u( D( S+ Z- \
    / ^/ e" a0 I( i
    5.1 表的设计窗口
    * G& ?! N- s  P- R2 ?0 P' w( ?* u- ?如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。
    % M; L) T; ^7 R9 G. ]. ^/ `8 x$ [2 F6 H9 r) i8 |3 x' U' V

    % ?  n+ M0 p" k" y它支持的字段类型有:实在太多了,列举不完。) q( c' g2 r* F% M1 m2 w& e! U% b7 n

    8 c# j  v3 H* o8 L

    0 u; D, t5 T2 P( N: u4 H* x) K如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。1 i; N2 s9 S8 t6 B! ?

    # {) s1 q8 m5 K- N- G
    % j0 L& t$ v  g. D% e, h( O% D
    如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。
    & L" y0 T+ K  I$ \- h$ Y; }" J
    " e" S, E1 ?0 [5 D! O' o
    $ Y9 {4 ^- w# v3 y. U" |
    Comment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。
    ! f7 j7 I- j6 _% p* w; y8 J7 @* x7 h  F6 Q# \( |' u) [8 f; W5 {
    0 K1 T1 o- e# U/ m# w5 g
    如果选择SQL Preview,也能看到该表完整的ddl语句:
    + s3 z. U" z7 C# s, @/ M7 P+ S$ Y
    9 a5 |* o; V2 l0 [1 g

    # V; Y+ m( X8 }# a& [7 L/ q2 W/ R+ m% R7 |/ c) a( S

    1 v7 A; ~" h5 Q  p6 x# c. a$ W- X& \/ k( t. @3 u' C0 @

    ( V) U, X) m- |, O% C! r3 c  _5.2 表的删除
    8 W. |4 G) C5 ~0 M上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?" J1 L( W: }& v0 }/ E4 u' N
    : h, E+ B2 ^6 W# U* O8 O* d+ q: B
    6 }  q, L- s1 @' i
    主要是通过如下三个功能实现的:, A" L) i2 s! v% {, c

    6 Z+ J3 u! \' C$ `3 F+ z5 N! i
    & q- ?3 j* V2 r  g9 _9 E
    Delete Table:物理删除表
    : X& G  ~4 y' x. A6 V, G( }1 G8 [  `
    % N& _0 u  \! Y+ A2 E0 w0 o
    Empty Table:清空表中的数据,但表任然保留
    3 L3 X( _! ?5 z/ S( S  G3 Z
      `6 i/ v% v" S3 P/ ?# S# W& i
    / ?1 y* @1 S/ q- z! r8 E
    Truncate Table:逻辑删除表" Q, Y3 Q  S" o! _2 |

    4 |9 Z6 m1 t3 x; E7 Z

    ( u( m! j( ^. W; V; i( e2 l4 G5.3 表的复制
    : p8 b! I9 s+ V/ g% Q有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:
    ' K) F' _  e6 N+ J$ A
    4 P5 r& J/ {' W
    6 V4 e+ ]8 `4 K) a6 k7 z: x
    如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:
    # u0 z+ ^/ x' T, ~2 v8 e6 V7 _
    / C( D* a: A+ m1 [3 [) H

    % @2 B& o# _' v, }8 p  B6 ]  g8 A2 j- D6 j/ P0 _$ b8 d
    " N# T, `" [6 u5 q( O

    3 x9 h3 ]& Q4 W# |/ i% N9 }: K; e

    , }  K+ m  b: E: D& R1 \里面包含的数据跟原表一样:
    ' v  b, J' z  Y$ r$ K+ ?4 |: X0 Q9 y
    * s0 e! |  J  s' h9 a2 |' l
    如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:
    : t( P) L5 K# I* X3 L: w5 g# U4 @) o+ D& A7 t) X+ ]0 C0 X# |  w
    + T+ h: E$ o" u2 v6 H
    5.4 数据导入
    - K+ D7 {; q* I' Q在实际工作当中,我们经常需要导入数据。
    3 S! R: v( q, W9 _
    6 s4 @4 D% x7 m3 k/ f4 F
    1 B9 X. j' x. m* j4 ^
    比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。) a5 H6 Z$ d0 K' H% N) j4 }( [
    9 i& i2 A& ?% e
    9 l* o" m& S) ^. V
    我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:7 w+ a7 z! P. ~6 t% Q( z! ~, H
    9 J1 o  v" N1 U8 ~# n# I% U
    $ _+ H* w( F# \
    可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:# s+ ^: h( ?* I6 k" O! Y
    6 _% c6 e3 K7 w+ f

    7 M- f' S7 @( r5.5 数据导出
    1 L2 F3 p6 W5 ]9 U% Y. n在实际工作当中,数据导出的需求偶尔也会遇到。2 r# V& m' u4 _- o# \

    % u) u+ [  r3 v8 r; ?; m; _3 ~

    # l8 x3 H1 y; N3 o- n4 Q( u这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:
    : o6 q' Y0 S. r, C( x/ P& ^5 M, P  k% s
    / k0 j/ d) Y0 J6 h
    可以选择要导出的表和对应的sql文件名称。" W$ b- ^& W3 d% H9 Z1 I

    % Q* U6 N/ q* Q

    ) n" g% u% f5 P1 }1 z: u1 U/ D接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?
    5 `& V& w/ r1 L2 N) v: J/ p( }
    " {7 x5 m( K4 k0 q$ m3 L& f; B
    9 P4 h5 G: P0 T! [
    6. 表的查询操作
    6 w4 i# [9 W4 I% s$ t查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。! R3 a9 ?0 M/ T! V# u

    : s% Y* R, N7 ^
    ! S* Q+ e; m! a& ]  Z  A1 x5 b$ R0 A/ m
    选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:
    8 d+ \# |  f1 d  }4 k! e8 M
    ; a# \5 [6 a5 D! ~( p

    6 d2 ^% X1 n8 m# I6.1 执行sql语句:) ~1 ?* |- E7 {7 X
    在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。
    , U) {! m" h) u% F0 E  T/ I
    # Z0 s, J* A  B) a# X4 |

    : X" p. c$ c8 ?% D  R虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。& |' Z2 S9 m1 g# p

    ) x# o- x2 i3 w7 v

    ! _; Y/ G: b% L; H3 U6.2 保存sql语句:: ^+ \6 n! m/ q( s  n* c; e
    有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。$ }4 I; e& t4 X. j5 t9 z; h
    / {, o" K8 Q1 l! P  q* ?

    + K" h; c* S# [  h: m& L这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。
    $ c4 R- C6 g6 o( [! ]: R& ]% ?* q3 a- `* O

    6 J7 I+ i. ]' y  R, Y6 N0 r8 ]% S$ b这样以后就能在Queries中非常方便得找到该sql了:7 s7 d- R: e$ |
    / B& C# F. A  u

    ' e" D3 _) \) p6 p: T6.3 快速关联表. T3 ]+ H/ ^- C
    我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。
    3 Q$ L1 H( g) D/ k* }  D3 H4 K) t3 k9 X
    / ?* E( N0 e8 F/ `
    这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。- M( @: s3 d) c

    6 w7 d1 ]5 X6 H, s, P

    3 i7 O/ ]  x  P. S5 G难道还有更高效的方式?
    2 a! w6 {/ u  C; E: v8 i: H7 o; m! R0 r9 z1 _/ D) l
    ' e( w- s- l! l
    点击下图中的按钮:+ p1 k6 g5 X, \% d. s
    % z/ X: a% H7 i! m3 [, A# S
    , C0 `( E, `+ U) J, c
    会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。
    ( h( y+ [# t, c# m: q0 F4 ]8 G9 b3 v& o; a. N8 |, p/ b
    2 }$ @4 F, B9 p# a# G" S4 s, p- w1 k
    然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:
    ) P8 x+ k5 o$ O3 a3 ]7 v( p9 c9 Y$ f4 T& |
    + b1 C1 x! J7 l. v. w% K
    太牛逼了。
    ! `9 `: ^' F. a% V5 _7 i
    5 X' ?( R" e. u# h( o0 r; N, j

    4 n; G, \4 J8 h. ^! }6 M9 V& `6.4 格式化sql语句( o. P9 c4 H5 w* [7 ~3 ~
    有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:9 K1 S( U4 @% E6 O4 U- S) J
    1 C' Y3 P  [6 h) X" m; X; A
    ) q* G  c% q+ u8 V
    看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。
    8 g  s: J" `/ _# d% f) N, B
    9 }0 k- l6 d1 E. x7 l6 L( I7 ?( C9 t

    8 w8 A0 u" k/ s# k6.5 执行计划; c3 @  T' x3 k* D
    有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:
    2 f/ N9 g7 I3 o. ^/ [0 n3 ^) n" d0 [
    . S" a% `6 ?# z* H% F6 x! Z2 X0 m0 U
    / E0 X( j/ A) }8 k
    这样执行后,就能看到执行计划了:, H. F. g, e5 q$ l5 N1 n
      w3 |% U2 S3 l. h4 D3 B
    & c( u  L( j: C$ z
    但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。
    ) W) j+ Y% e' i7 P
    * J, d- ^# f1 H" v' O! Y

    , Y% `' e( U& ^, ~1 m  Y6.6 切换展示方式2 j" V* B; }$ W1 ]1 s. c
    我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。
    8 q$ B3 `4 q8 Y+ W7 C: q* L; f! W  L6 M% B1 q# e
    / ~+ W5 E8 L0 ?
    这时可以切换到form view模式:0 r3 o- m; n, }2 F( P4 e
    9 o) a3 {5 `7 C
    : P: [+ ?- d' d2 H; y$ M1 A
    然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。( r/ J8 v: X2 v. ^

    8 c/ O! \  w  e7 ^
    * O& X( c. i8 h/ W( @
    6.7 新增和删除数据
    8 L8 A. {8 K* @9 |! K4 x' T/ a我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。
    $ p  Y2 [  f. F8 h, Z9 A
    2 N3 F; i+ c) x4 H
    1 g; }# _2 Q6 F) q' \* B
    同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。  {: F' X& e# e4 e% @1 o- p

    3 m' X7 Z' }, O
    2 Y, L# S7 K4 m7 x+ `2 @% R% p
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。1 }2 P3 V1 H$ G) c0 h
    BAT大佬写的刷题笔记,让我offer拿到手软
    ; H/ C) [. L7 g" t5 u, b5 T————————————————" n  U4 j! M* r; b
    版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。" ^% h1 |! O  l/ |% @9 B; r
    原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369; C; K7 x5 l0 ~/ q$ Q* a

    5 L& Y7 u1 T5 @+ w/ C3 \8 J, L1 r' U) u6 |: x7 a
    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 16:51 , Processed in 0.447504 second(s), 51 queries .

    回顶部