QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2612|回复: 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
    & Y0 e* |) T# m' `
    这个数据库神器真是太diao了+ k% v* h( ~3 W) G, X' I
    前言% ?! t, _/ w- e0 {9 E
    对于开发、测试、DBA、运维来说,数据库再熟悉不过了。
    % S9 y3 c# ~) s3 q2 w" }
    " Z" t- o2 F. E8 h4 T! W

    * Q' @2 Y- F9 D0 G0 s# W很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:
    * T2 D; q2 }3 r9 A7 g2 T4 j5 t% U& a+ U$ T

    - V& H3 p7 {" R& L8 b! k9 E! P4 p: d! _) j' W7 s$ |1 t% i, ?: o8 x
    " p0 {9 j9 o  c
    . w* U  {2 Y; N( G

    + W8 \3 {. o0 _# @用过的人基本都会吐槽,太low了,极其不好用。
    5 |1 d2 U$ i8 W; f
    1 \. r( w; g' ~( n. r

    . n1 L( q7 t+ X+ k6 F写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。6 N0 d( V( w# P$ W2 X
    0 R' k( u- _6 o* N
    ; [  C" V0 R9 l/ ]
    看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。
    $ r' Q- x6 w9 u2 F: i# c+ w
    ' g7 y- f  P% h3 r& M; \1 e
    8 w$ M4 i+ H: j; e% d# k
    对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。
    ) m6 H3 N0 k9 [. L5 f, d: B, S6 J+ P7 z$ m' o$ N/ ]- i4 r" }* h5 l) ?; K
    . ?. v& n5 I4 m7 O0 a+ c
    很难看出表和表之间是怎样关联的。! @4 V5 O) V# F+ ^
    4 T6 d# G& D& n: M. v5 i3 P4 W
    % i, j, f$ }, X1 f
    导入导出数据就更不方便了。
    " @4 Q  q  k9 d% X- x0 S" }6 {. Y" U- d( w  A# U, C0 c
    * _$ C5 f6 D+ @; d/ F7 k9 r
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    , X/ P$ g. j2 D, J: s6 FBAT大佬写的刷题笔记,让我offer拿到手软
    2 \  c% y# W( I
    # G7 s% D/ _7 a% ?* U

    2 s' T: S, U# w有没有一款好用的工具,让我们能更高效的操作数据呢?
    6 M# c( _8 E" e: }2 \- ?5 l7 P( f1 Z0 D
    % z  T: H. x7 w) j6 g- h& l
    这就是今天我要推荐给大家的数据库神器:Navicat Premium。; V, J/ P) D" S9 s1 ~" k" F' z

    ' ^0 s/ Y" }" s8 m: W
    : [5 u* R% Y" W# ^+ q
    下面我们一起看看Navicat Premium有哪些牛逼的功能。
    9 [9 x) Y$ e: Y2 _+ V% L! c, j
    0 g" l8 j7 o) G0 h9 Q2 M4 s
    0 |9 M; B- [/ _8 V4 E
    1. 支持多种数据库
    7 y$ L% h) T' P0 j; J在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。
    $ o# W, }) D) @, ^# h% v" a( O+ @
    9 k5 s+ C% u* }! h# W) A+ h
    - h7 I1 y# N* z  E  V7 z
    点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。7 |- V% M) n; W8 O' d4 K

    , Z7 ]5 _4 B  q. \9 C
    . d( J' k" \) @7 V. e
    2. 轻松管理连接( E: E  Z9 N! u; f2 l" v
    2.1 连接数据库  z+ f; A4 j$ q/ H2 g! k4 I9 @
    之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:( I( d  d. [* t) q, }

    7 x) G! l/ Q7 ~
    $ j5 }/ {, s3 `9 f$ j  l5 a
    mysql -h127.0.0.1 -uroot -p123456;
    9 T, }& i5 u  J; y4 q, D( Q8 i; O" m- _$ q( P: X9 l, f0 `. [& g9 f  d

    1 ]* r) C% n, d8 P: G1' S' t5 l' o" u. W$ c) L! _0 K3 e
    2
    & ?$ n/ S2 q, r3 e( K6 Z$ c每次都需要输入连接地址、用户名、密码,不觉得烦吗?" j9 \7 ^% B2 A
    $ L- V5 E. ?4 b* o3 m
    * L* h- ~0 K' a1 `+ u# d; Q7 L2 ?
    恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。8 B* g. g4 I7 B( ?

    8 R+ c( b( i5 L* W

    - Z+ F, _/ k+ j& n8 S以后就能通过界面双击Connection Name,直接访问数据库了:nice。7 o% f4 t  Z1 R6 M7 R: V1 q8 H! c

    ' C: t" I, p1 T0 \# s

    + o$ ~' H3 B" T  L4 [5 v2.2 显示指定实例
    : B) ?7 a$ f6 r2 x2 ?3 N/ _有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?
      P: f" O, I. J! V0 {. \& D' u0 k3 g, X' I

    5 [% n& _5 k. c' a这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。
    & t! z/ h( A  W! j' P8 `% }' W2 O' F8 x
    6 E# l( E8 z% ?& J) F$ h0 S

    - ^+ H) c/ j( T这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。
    - q2 m8 y/ f" Z; f0 s0 n- k, a3 }! c7 T8 a% w1 Y; U4 Q  k4 n

    0 I3 j1 C" u+ c$ r* {3. 方便查询表信息3 C# D, s7 n( Y+ A6 k# L
    以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:
    6 Q- Y7 _2 }0 D% e
    # ~4 X, g1 x: s6 C6 G

    " Q/ \  r; k. H; d9 G. P9 {: W, zshow tables;# c5 i8 I* @* q, ~4 L# m% M0 @; I

    ! `" y# z" {9 F3 N$ s

    ) S0 D$ b2 V/ J- @6 Z* T; H, T1
    9 w# h  v( E& S5 a29 Z5 @( q. k4 h- h! E, q1 y

    3 ~+ b6 ~& w( E$ C

    7 |7 i- H  a9 _& e' D# N' `2 I/ @6 X8 n: `8 _2 F! i9 J

    0 U; K+ j3 D. t; n( T不好意思,那已经是过去式了。
    ; c' P# R0 N; L+ v+ z6 w9 p1 M9 v+ H! S6 u5 y9 [

    0 F5 M: W% K8 u3 [- F现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。0 A3 h# d' X$ A, W/ R2 ]- F& w

    7 }- h% }9 I# s  Y$ `
    $ T( P# G- r: h( O4 L  {
    如果想看数据,选中双击某张表就可以了:3 V2 p5 a3 G8 C3 z5 w

    6 a6 Q) g/ k+ \; d; a
    & h$ W3 o' B& J9 {- N# l1 N6 s
    如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。. Y$ S: T/ X+ w( O% {( @
    ' c( G7 F3 g( d; S* ?
    9 x* ^9 g& i& c% c
    如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。+ L/ n  p0 x: {8 G. D
    + \/ U* ~  y7 D: i8 k' g

    . w3 X; E8 g* l" r' Z比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。9 S0 x- K) X9 ~8 `0 U- j  t1 l) u5 _- [3 V

    : v) Y" l. C* ?! E" c: q
    * {& h/ ~% n# h/ Y
    当然我们通过如下命令:
    6 C) i( f. r% G& Q! u
    # D8 F( I, Y* Z9 A5 Z5 q
    & a, b7 `7 h8 ?" _
    show create table jump_log;2 {6 E7 c$ ~1 ~2 L  `

    0 x: h6 F) O' W1 x
    7 N. ]& N% b; {4 o5 ~, P
    1' {+ ?* w/ A$ o5 y* s- Q
    20 c  d) i0 h7 x8 I% S# m
    也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。: G0 U. ^# O2 U1 J! L

    , I8 c0 V% v, U

    7 u6 F" v- _/ a3 t) L4. 数据库实例的ddl操作9 j) O8 u. n0 l: e
    通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。
    4 Z, A" D& q1 P* w8 X3 b. {
    $ g. W4 `7 W, o0 i
    + F' j; V$ G/ Y2 i( Q9 w* @
    右键单击某个数据库实例,就会弹出如下窗口:
    * E7 E+ }( v' b. v/ h/ s9 M, {# b. ?5 N& B( N

    + }8 V( B7 @5 f( }' i1 \+ R里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。
    , e0 L- x1 |: A, n9 s+ L) ]# c9 m6 f0 ^

    + _  B) Z, A, g! b4.1 数据库的创建和修改
    $ c2 S' ?/ }6 z' \2 L3 l创建和修改实例时,只需要输入以下三个字段:! ~* P6 V  j& k. B& ^: d
    / l) l; {* @* u. I# S4 A( t

    ( z  s8 A) ~. A: |6 L8 Z4.2 mysql客户端
    # F4 z1 r/ {8 a# R% n在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:% J2 A5 X+ r$ X/ G: c7 c8 @& a! c1 s8 e

    . f7 s& n  u4 J7 U, H

    $ f' [5 C& B+ ~4.3 执行外部脚本
    0 c1 m, W: ]' M% z如果选择Execute SQL File,能执行外部的sql脚本:5 r: Q/ ]- F3 \3 |3 e' e9 p& Z4 N

    , G2 `3 S8 H: W* G0 Y' Z$ K/ ^
    $ ]' k2 v& G' ?* a/ ~" u
    4.4 表导出
    . S' G# {2 F. x* H" _如果选择Dump SQL File,能导出所有表的数据:目前支持两种:
    $ O0 c/ K+ ~$ h% {) r! v: D3 d) a. Y( q3 z: O9 \/ F" I

    ' J2 P( p: Z3 r9 o  }导出表结构 和 数据
    + I( j1 s/ f3 k7 M/ t2 F# I) Y1 m; B+ |
    3 [+ N! E! ^3 ?+ h
    只导出表结构
    * R* P0 l( J5 q. W) N' I* e! F% y4 ]9 I

    ( [4 a8 y8 H1 \6 G6 x最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。0 M& h! i* _( X- U9 Y, X& r

    7 I  {; ^3 t/ F5 b& @' \, w
    - Z/ Y& ^0 b- n8 j
    4.5 打印数据库
    6 a4 s+ j; [9 T1 d如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。
    5 O; P) \* h3 c$ N# p4 s0 ^4 S% Z$ V

    5 I* R3 [( i. e8 t7 i- V4.6 转换model
    5 m9 J) A7 o* ]- j8 ?  o; @: g如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。
    % o8 K& r/ D1 u4 O8 Y+ [; D. y. `2 q- W

    ( y2 a" s, ?4 T! z% P4.7 找到数据
    % [7 S3 ^" C0 F! X7 M: r) M如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?, l  }3 B+ z1 u( q6 }* c# ]
    * `  r, h) G/ T7 g: f% |
    1 P1 H# y5 Q+ G1 M. x1 i. r
    5. 表的ddl操作
    * g8 s; H# h; b0 Q5 H9 Y3 f) O8 F相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:' b$ v! F. a- \) e

    8 n1 k# n% W# u  |* Z( x7 n4 a
    ) M; {/ a6 f1 `) B% ^$ O* m
    如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。
    . L' f0 i0 a8 I
    9 b4 A! h! F! z- S8 E

    7 }( q5 r* o4 q5.1 表的设计窗口
    # w6 x6 l: n  c如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。- T1 T3 m9 m1 w4 f( R4 y
    / W$ Z9 w' b0 D) h1 s0 q

    . F, L5 U2 z. ~, Y' r4 t0 p它支持的字段类型有:实在太多了,列举不完。  e. A1 \# E/ `- D. \
    1 _( C/ O. [* U# e6 j& g9 y
    & X: [# c4 T: g$ b) {
    如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。9 @- F3 L( z$ q0 L7 D" ^1 q
    3 z8 F6 q1 z7 i$ l2 ~* S+ Y

    $ g0 D2 g1 M; p1 c9 n5 G3 G# g如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。
    - q0 a# y7 l0 ~- z5 F2 _. @4 n% n
    ( F: l% N5 F5 C* @/ R
    $ ?& i+ W9 Z/ f
    Comment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。
    , ]# M7 N$ u" N7 X6 p5 {7 J
    4 o/ ^& ?( E4 Z: `7 C
    ' S  M; O7 K: a# _
    如果选择SQL Preview,也能看到该表完整的ddl语句:
    ( @1 p: H! i, G% @# C% V/ d" \4 Q- n
    ! B% V% B$ G$ F3 D8 e

    , D# ^& ^; g7 A! b  p- y4 q4 p7 d3 k' T. Z

    * w* e* M# u% J6 |
    : Z- r$ Z  Q- W, u7 ^

    ; h6 B% `9 m5 K6 k. C; f. G5.2 表的删除. {$ N: Y. Z/ V% Q$ k
    上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?
    - S8 @! D! t/ s# n2 i: v( z9 T" E: t) H5 ^
    ) P3 R" b) x7 W* l2 a( B$ K
    主要是通过如下三个功能实现的:
    $ W- J- [9 a. @3 @" [# V3 Z
    5 l& q5 z' |, I* j$ Y* G
    8 s  Z. u9 \) ^9 N( D8 H0 P) \
    Delete Table:物理删除表/ v) Y% V1 |5 u; D  L
    3 r9 u, M8 F- M# l; b

    3 ?- V0 v  j, NEmpty Table:清空表中的数据,但表任然保留
    2 J4 E/ z5 K4 L6 Y5 b+ H5 H( j* }8 H( X) d) ]

    7 C3 J/ Q3 j" x: l( ^Truncate Table:逻辑删除表
    9 _/ t( D- F8 O3 q6 c* x0 Q$ ~3 I6 s

    2 I, G0 a8 P2 o( e4 @. z0 X5.3 表的复制
    + @8 O" B$ ~5 H有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:
    , c: V0 M) r0 {/ x; g: {& `1 O% g6 ?2 R- M4 O1 j0 s+ y! x" X# Y! n
    / v8 k  Y( Z0 w9 A
    如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:$ c6 `' _+ }( p; w# z7 R( C' B! N

    8 z$ l+ V: s2 d( U0 E
    5 |3 c# ~7 P6 P6 h) }- N8 B0 q
    ( t3 ^, J) j7 M' Y; F
    4 @( V5 X! }& T! H* [

    7 e, {& i0 x' r% p( A' g( O, f% u0 e

    ) F% }4 n; R2 y6 f8 @里面包含的数据跟原表一样:( y6 p1 }, D3 c7 q# t( c
      U: {& D* X( x
    - u4 T3 S; {. I9 m
    如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:1 i# o: y9 Y+ @( x* H$ S5 Q( [

    ' }5 d7 c0 {2 _% L) J3 }/ |
    , M0 R( W/ R- M7 P' F
    5.4 数据导入
    . ]4 w# _5 ^' V0 w在实际工作当中,我们经常需要导入数据。6 a3 |+ j( t9 m7 g$ Z

    $ I0 q' ^( Z& M6 ]
    5 Q9 `& S1 [; B& R$ h( d# [; z
    比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。
    7 I4 j' ~  r. O- F* g$ l
    $ H/ q/ {6 ^" c4 |

    5 u4 R9 [* j4 Q% n. J0 A+ Q我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:
    0 g4 y; |1 v3 c; p
    ; I; f) i3 P6 U  y2 p% w, w

      ]; d! B0 X# d1 U7 c9 J可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:
    3 i, w+ a$ C+ F2 w& _' k' P7 ?, e* D! f- k$ {  l$ T* x
    5 u+ _; u/ d1 V% X( t
    5.5 数据导出2 |5 o. E7 }  I8 J# i& S+ \
    在实际工作当中,数据导出的需求偶尔也会遇到。8 p% t, s8 u5 O& ~8 ?0 D' S: K9 w

    , h7 B" s1 A9 x5 e% c' D( c1 d
    ) K9 p& s+ V3 j: D5 g* T
    这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:
    $ W: C3 ^' B' r
    9 y9 r  s( m* L) ]$ I9 R1 c3 p
    ( g! Y4 |) z, a3 W" }
    可以选择要导出的表和对应的sql文件名称。* ^* w" O8 S: v# f' u

    2 m" g8 F* f0 L* u  ^: E9 k3 o) [

    1 f0 S% D& [) Q: j接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?/ l7 m0 t) V9 B, E- R; W/ u

    8 e0 ^' O7 T: R* k1 Y! w. J" `" y0 y

    $ y- v5 A% K; B8 e2 K1 K; \* @0 i6. 表的查询操作
    5 ?. H) q) e1 P/ R# Y- W查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。6 d2 J5 y$ o+ g. Z+ f# D
    ; \" w3 `/ K# n: @9 S0 g& Y0 V

    2 N, T) d+ C$ n, i# d: G& \选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:2 G- n: F8 ?1 h: s$ j3 B
    7 \0 m$ U0 j6 r. O

      A0 `2 m. _3 h1 x- a3 G6.1 执行sql语句:, I3 d( w/ E" i! U8 }( K6 V4 @
    在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。& ?: N3 X6 q( h) |9 U! h
    * E$ a  |" L, S
    - \5 x! K% t' v) S9 p
    虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。1 H, B+ q3 O4 a. V; h$ y3 }! w

    * L4 ^/ p3 A8 ~

    ! K7 \1 c2 Q- Y! A! [8 M6.2 保存sql语句:2 U9 D! O( M% l- W! W7 Y  W
    有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。
    ( n! N- _: E+ E6 i4 ?, {5 Y: g5 O+ y4 w

    : M% |2 k8 v4 n& ~9 g这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。: f3 b  D' {9 W) l+ i- z

    2 z% u, ^8 I, M; n2 A3 z

    $ T- E# M+ T4 e这样以后就能在Queries中非常方便得找到该sql了:
    ) C8 \8 H2 k# {7 M) |' c) W' s2 v) }4 K) e! S+ }2 A

    4 ~$ A7 o( Z. y7 `( y1 J- B6.3 快速关联表
    + f& z. v5 x# B) N我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。
    9 v6 Y1 J3 E- w# S* e4 E2 e$ W* z/ F; I, A
    % f' d) l; B! E  B
    这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。
    : g  c/ I! d" c3 o4 Y  U) F
    . E2 {0 G# y# \* O
    9 J. ]+ C, P5 c# f9 `: A' z
    难道还有更高效的方式?3 O. U7 X& n/ _5 I& ~- Q: z
    / u5 C2 R* E: S) w

    ; s4 ]6 L8 [  C& Q9 B点击下图中的按钮:2 l) v! g' f5 X1 O  n* _- O

    " I& Y2 `' L) A" t/ g* |9 }$ G$ G
    4 g) Y5 P. j0 E5 Q
    会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。! ?" ]) m- @6 l* ~: R* b6 |1 u: U
    0 v; V# j! a$ }; \# ?; v
    & o, [7 C1 g" J2 b
    然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:  P1 |$ F$ Y: K' p! q- e
    8 o6 ^* G6 o, P+ i- y& G9 Y

    ; W1 ^5 Z0 @& d: f8 Z太牛逼了。" y4 z6 E  J. Z: c5 \5 i. q

      u6 C6 n7 _# U4 p2 O+ q' D
    8 c6 A' Z& P! R* t: Q% v
    6.4 格式化sql语句
    8 l. P) Q. T) W$ M有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:" J  q+ Y+ }, j+ h5 H- y- a) \. P% [
    ; O5 h! S: g+ i6 l" L

    % z0 B' M4 o; \& W; `看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。! X8 A! ?" Z4 j8 g- l; P/ C
    2 j, @" I9 ]" B: C
    ! F! X4 u7 a! g* t
    6.5 执行计划
    ; N3 k+ K4 E$ {+ T有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:5 @( S  J$ i' G& a
    ' o- g, R  y. Y) Y1 x3 U$ J; o) I

    ) r) p% |8 }- P; o! }, d6 f9 }4 w这样执行后,就能看到执行计划了:, }% e" M+ u( ]$ V) u7 ~

    5 ^, w4 Q' J) l8 k, o' \" O. K
    3 a/ F/ x4 v5 C* N/ |0 k( I" S4 D) O! Q
    但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。, F* S. ~, N  p2 m( [2 R

    : E1 R% m" ^! w- z

    + [% c% g) p; n6.6 切换展示方式# g4 q- J) P, N) D5 o7 j0 Y
    我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。" d: n$ t4 P- G4 Y; i- [

    6 e6 y; S" x6 _; A

    3 s# j$ w) N. Y/ U这时可以切换到form view模式:( e3 z6 E" k6 ?: l' N) K) o9 n" h8 |
    ) c3 x6 g  Z. D9 R6 ^# v

    * ]% j4 z2 F" ?: |' E然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。7 _7 N* W9 w0 H
    - F5 Z& J$ f7 J4 P, e

    ( r; \. x8 I# S6 o; t8 A: e% w6.7 新增和删除数据! q/ Z/ C3 Y/ f2 S5 T
    我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。% i0 N, J' H$ q

    3 p8 m7 A; z9 |3 l, i

    : n; t* b3 Y# Q, {! f同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。
    + g- e. G4 }: X% k" b# M+ _+ _$ p& j+ K  W$ s- u* d/ u

    1 i5 ^% Y0 T7 O7 u; c7 B, k4 A! K最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。  ?- T2 e& k. z6 n
    BAT大佬写的刷题笔记,让我offer拿到手软% J+ n- e; B; s9 M) k0 a# S* X+ n
    ————————————————! k. }+ y. K- a5 i  i
    版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。* |" s) }1 s  E; j; S
    原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369
    + k; s& x) N, G8 q7 T7 J$ `) @5 E' t% Q, m. Y4 ^+ ]  ~
    2 U  G+ L1 a$ F6 q* R4 M
    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-9-12 01:10 , Processed in 0.423276 second(s), 53 queries .

    回顶部