QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2906|回复: 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
    6 f% ~- I7 M6 _- B" q: }' t0 u
    这个数据库神器真是太diao了+ j; c+ O/ r, s2 y, N" h
    前言
    3 F8 j) L) V) g6 ?( s) K( v对于开发、测试、DBA、运维来说,数据库再熟悉不过了。6 w3 {4 ^& r: r6 K
    : e2 [# [; v4 l4 W$ W

    & ^( V" y6 t( V. J3 E/ q很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:
    $ t: h. I9 c5 F' G. P4 g( \2 e) X0 K2 }0 r" |" [! u
    ( X. d5 L1 ]! o7 ^

    7 ^% X. h, ]  {' w5 v2 ~

    " Y6 b, d  {) }% A: w2 D. e: Y* U- v- \  ^

    . E! _# v' H+ `" x  h用过的人基本都会吐槽,太low了,极其不好用。3 r  i' [# q; P

    ! r, ^- y( R: z4 X2 l9 G! _

    ( }! f" H1 G- I写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。( U& h9 c8 H% h- Q9 d7 O- R, b7 A

    3 n/ m# z% o; c' v0 z7 C9 n
    # o' [9 ?: i) A+ G8 S7 v9 I7 o
    看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。
    % Z( k& L. r( ?: q
    $ z$ B" I2 V0 K4 w! k6 ^& y
    ! D$ Q3 y2 K6 }6 a1 a1 [% I# E6 K
    对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。) l$ _1 P1 x6 T1 a/ w: E1 S
    3 I' h5 Z( b2 u1 J2 E, g0 m- ^  f

    0 c3 I. K8 T; T& J很难看出表和表之间是怎样关联的。0 Y# u8 C( ?% S/ _) J4 R4 ^

    ( U$ r# N: }8 @( C, R5 H

    0 a# ]: S) ], H3 b导入导出数据就更不方便了。
    ' i& W, Z& e  K% D
    % z) y4 M' Z0 B5 y( f9 C
    ' }! o( ^  }8 f7 R
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    5 B) Y; J8 m9 {7 e3 \2 XBAT大佬写的刷题笔记,让我offer拿到手软9 {$ Q0 b  s7 o+ r
    - h+ T) q2 s1 L
    + e) D. J" s$ v3 F1 P, `* o* j
    有没有一款好用的工具,让我们能更高效的操作数据呢?6 ^# ]* y# r5 P3 ], m
    8 k* Z8 M2 {# ?9 e" U
    - w# ]" M* U! Z2 h
    这就是今天我要推荐给大家的数据库神器:Navicat Premium。* v9 ~" o8 }% Z" h# b/ Y& s8 \
    ; o. ~3 k# b) a! ^

    + _! B" A5 g" f# N. X; u% _下面我们一起看看Navicat Premium有哪些牛逼的功能。
    8 Z6 s3 N9 y" d; e* r4 s9 a. u
    ' L& X1 B: A6 K$ l$ O: o# g6 L# _
    ) S9 X6 E& @) J4 n
    1. 支持多种数据库8 G5 i- h, W' q: U  t# z+ N% e4 w
    在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。
    / ~9 N0 ?6 I( T- ?& f9 G4 P0 L  ^# r- U7 i. m

    2 ^3 C/ V& x* j3 P4 L+ F点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。
    5 R  s% D5 k9 E( v
    : W) @9 W3 \6 j+ V/ T7 d) [4 A
    : x: Y; P* m; S+ X( `- b! Z- P
    2. 轻松管理连接
    * u/ P2 f/ }/ ?" B2.1 连接数据库
    6 ~# Q% j; D5 E' |6 x2 ?之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:& ~; w  T, f& ]+ X, \3 v
    & e) `5 S9 Z" c1 H6 j. E% t
    5 b6 F- _- J/ A% J0 y
    mysql -h127.0.0.1 -uroot -p123456;
    " c- @1 l% z0 i4 q
    * s8 a7 N7 S: O8 a; ^2 w: C
    3 Q0 V% E1 t. M% Q% @; s
    12 V) W9 R) Y* {1 ~$ f7 w! s
    2
    7 A* h* |0 k6 U0 w每次都需要输入连接地址、用户名、密码,不觉得烦吗?
    / t2 R9 k2 F, ?5 X
    6 x0 c* b3 `# j5 K( a4 r. j
    5 R5 B+ L; a; m. C2 n2 q8 M
    恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。, t# V  g' S0 _1 u& I9 T

    ( Q* v3 W; e4 H$ y7 ~; `

    / t  B6 Q, d0 B% `: i以后就能通过界面双击Connection Name,直接访问数据库了:nice。" }; C' _8 o6 G6 r3 J0 |
    / U0 M! A( F8 ~
    . [1 N. {% w# m: q' E% C
    2.2 显示指定实例
    ' p% n3 c' W) Z3 o有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?
      O( Y. p! O% t& E( I( T, K1 |$ k  G
    8 P' a! G7 P, ~5 }: n" y
    这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。8 Q0 w1 k, j3 H5 [2 F9 e4 N
    , d+ ]; J: b& m( k2 S0 Z- K

    + Y; f& u& B% E- x这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。8 O( U( @& o& z% S* e/ M6 O

    # z1 z: Q, n$ M1 h6 u$ a
    ( L. e9 s, \6 l+ Y
    3. 方便查询表信息
    9 D% w( g: @3 F6 p以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:- W& @6 O; {* h% m. j

    ( f+ b/ ^. h& P  E$ b/ m# v
    " r, ?: n+ [$ u$ s' k1 q: Q9 Y
    show tables;! c* l6 v6 O6 w! P

    ; m) z# t- ]' y

    : y7 ?% S0 j3 s: Z5 }/ Z5 q1
    0 Y8 e) x; |7 A6 d  p" T2' g. X; z  Q/ Y% Z

    1 I( P2 U$ H; t/ M1 T# A, L# e
    ' H2 L4 C9 Y0 ?! M* N
    ' D. i7 M& b$ F3 i% E* A1 T

    $ a, T4 X1 P3 m% {6 P+ w6 f不好意思,那已经是过去式了。& [: @' y/ w2 }2 h* S8 {4 f

    3 G- |2 r9 f+ L$ W; ?) R0 ]

    4 l0 T& J$ z4 N$ u4 d- {2 ]现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。
    & C7 z) L% C; ]) F  C' m" o$ g1 a8 E) K/ T- s2 V
    7 Z* y1 s$ @" h8 s
    如果想看数据,选中双击某张表就可以了:
    : _. l; O: L+ c) {( W- m# C* }% Z, n8 A  A, k
    ' h( v" w" |# T6 Y7 L  m
    如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。# v3 h$ j* a+ E# x0 r) S( B2 F. B( F
    3 ~% E+ w  M  R% Q
    4 ]7 Q. R4 {. s3 ]% k
    如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。
    / n0 h" Y% b/ F! V
    ( \$ h/ r% Z$ `& v

    7 D  D+ Y2 B0 O" x! Y比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。* ?: p' s1 z4 H+ V- i& D5 [
    + D; g" V2 H6 i

    $ ^" A. |! _0 \, p; r当然我们通过如下命令:& q) q9 ?" `% }  c; @
    " ^2 D) V1 {. s) x
    - S! q4 t* ~  c' v/ N; |7 k
    show create table jump_log;
    ; B* v9 i% E" G9 D& q  V+ e; L* b. X# T2 v/ i" S, `4 Z/ w! C
      G  w8 f+ z2 f, n
    1
    * ^" L3 u6 m4 d- L$ p2/ B  Q. P( J) k/ x% v% Q# M2 E
    也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。: G/ w: y- e% m  F" h: y6 ~; a

    ) V2 w) o" N5 J2 g% l" ~
    - m6 c& K' F+ e+ o  B
    4. 数据库实例的ddl操作* I# l; H1 V6 {" _  i4 ]
    通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。
    ; m: c2 T- q# r" k; @6 O* t; M0 \3 {0 x. Q# p# v- R

    - i; y7 x; L6 M6 x右键单击某个数据库实例,就会弹出如下窗口:4 u9 J8 q  [8 K! ~, A' \% i4 L0 \
    2 R6 v: D. s) d- U

    7 m" r. K% {% |" d7 w里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。
    1 Y9 R# v! B' w7 u
      n3 s6 B/ p  {0 a3 r) t
    2 D$ J: J) i) D
    4.1 数据库的创建和修改
    " |1 f2 @4 K$ V5 m" H创建和修改实例时,只需要输入以下三个字段:
    8 j$ C& {; @( ]  N( t% g% k0 b
    & m( \6 h7 M3 N! R& G1 p# L$ I" r

    2 m6 W4 l# @. @% P$ D4.2 mysql客户端
    7 b( z, \- C7 B, p$ x* _; g在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:! E* P+ m: I, ^' t
    ; `2 I$ z( ]) O2 ]8 ^2 e- w

    % I* @: w6 V4 X# A5 l4.3 执行外部脚本
    : k$ `0 z5 B$ _* B7 U% c如果选择Execute SQL File,能执行外部的sql脚本:
    ( N, D7 o2 \: l# E) ^- U8 h4 {3 h* {5 h1 g

    , v7 L5 y0 M) d5 _/ M% x' x4.4 表导出! f+ r* B$ F- ^- r4 N" S/ P
    如果选择Dump SQL File,能导出所有表的数据:目前支持两种:# z8 _* u: ]8 ~- R
    # O9 W# y# }- H+ a) [( N7 i8 ?3 X

    6 Q6 [8 o+ v% G4 Q# A导出表结构 和 数据, |1 l* Q) N8 U1 l! ?  \
    ! Q, u9 f4 P+ l$ P) C% U( p

    4 y0 m# ?6 n0 S只导出表结构
    2 J! N) U1 p7 _5 V2 d5 n% `2 n; j# m
    4 R- f. n, I% J# O

    : v; t! Y+ K7 n( }# k最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。0 ?3 m" P' b' x, ^5 k

    + A/ E+ e0 x; P/ c9 |/ |
    4 m( A- G& `& p" p! q6 O  i
    4.5 打印数据库- z. s/ y" ?9 w1 O
    如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。: n& W+ }' \+ V+ w% x  O* b

    & B/ e9 \5 P8 `

    * G( V0 V  n7 d! F4.6 转换model
    ! U* p0 v% g3 @- S& @. _+ h& v如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。
    ; i9 i5 o1 @" j  C2 w* b% ~8 i+ f7 ~9 b- _# \

    1 j" e* |1 n* z3 ~4.7 找到数据, O$ f3 w) P) ]" @; |* X+ p
    如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?
    / {/ u+ W1 o4 l, I$ t- l) h- N
    ! y/ D& N' l, B7 n& a3 Y

    $ k5 f  B$ q9 n, q5. 表的ddl操作3 T* E# D5 z: r
    相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:
    ( J) k4 d# P7 G/ R
      b' u% u6 L5 |* H) H6 I; f
    9 |8 Q6 c3 B4 B- b
    如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。
    ( E! F+ I7 U' \5 {
    - t- E' }% y' X* p
    $ `/ @% r/ [) Y4 G! w# b% L
    5.1 表的设计窗口5 o% }2 n8 I' u* b' k( P, {
    如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。
    & Y+ ~  F2 P2 w, f# n: |# a) L1 ^1 G3 k$ t( }& h
    7 W1 x6 s4 ]/ r5 X
    它支持的字段类型有:实在太多了,列举不完。
    3 S. I: I6 V+ f: J: j# P+ P* ^/ F  ^  `

    ! e9 N% I% Q; s# F+ p& _. I, I如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。$ S6 ~$ p4 n7 |! u9 _2 s

    1 |0 K7 u- X6 Z/ T" X5 t

    9 C2 q& k+ S# X如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。6 P5 ?2 S! ?, v1 X9 I: \3 C

    % C- r6 v& w+ s1 F
    / Z( x; q, A9 P' T$ S& ]! O- e
    Comment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。
    7 V6 A9 \1 q( m; P7 D
    6 O; v: B" S" `" q

    / b0 Z+ ^+ i. h, D! [如果选择SQL Preview,也能看到该表完整的ddl语句:7 z! {7 V& e+ x& [
    ) o# c* S- |7 i. _9 [& n
    3 V; {4 w( M" P4 b0 j# _7 d
    ; B1 T0 X7 A/ b' m, X
    8 C4 S5 J. A# \: q

    $ m4 @: B7 X/ s( f8 I
    / T! Z7 |) t1 S
    5.2 表的删除! Z' V- u7 a$ r% _( i; u# o
    上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?, B- t; A$ a$ @* x

    % u0 C+ H; Q. Y8 t  b

    6 ^; q5 D7 n' H' X主要是通过如下三个功能实现的:
    . G( _5 b4 @- r0 y: b& n% h% O
    ( r* B- c9 I& @. S& J7 Z* [

    6 {0 j/ f6 L' _: p# ^8 h1 jDelete Table:物理删除表
    * F) `3 {% E# v* f
    / [" m' n, w$ {4 L. z

    9 J. j7 \. F0 i( l$ h" OEmpty Table:清空表中的数据,但表任然保留( a  ]2 j1 Z+ g( h1 S7 Q* t  ^6 |

    * W1 \/ N  n; ~8 c2 Q4 T

    : }$ @  Z8 a& K9 [3 u  vTruncate Table:逻辑删除表
      {' |" U2 s0 i0 T' x
    8 M# I, h. g3 z1 k3 f/ n+ G$ B0 Y6 h
    3 c. _( l) @: H, D1 W, E9 v
    5.3 表的复制
    # j, E: Z) k) h" e6 Q1 E3 r9 p有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:
    0 L* J, e1 N1 K: j
    : i& w% @: |1 o" s! V( L! w% n, t! m
    5 y0 N# v1 W0 i! T
    如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:: F5 \  {5 s$ n: }! y

    . t5 r( ], m+ {' `( H7 [
    # @8 t% S& K$ h/ m* o
    , M1 V  _; P# \9 `* j; ^4 g

    ) U$ t7 ?) o0 g1 k( i" ]' D4 q" H/ t

    * K5 q, a: F4 M2 b- I- ]里面包含的数据跟原表一样:
    + m* m, V, K$ f* d: L1 `" E& G3 C8 m; ^0 ~1 d9 b- ?

    : f* t9 F' W# @5 j7 L. S/ H/ Q! B1 ?如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:
    6 M9 K( K; k9 R0 v7 l
    0 F% b, j+ o- d
    6 o- f8 T0 ~9 }9 I3 Z
    5.4 数据导入
    : g, J+ s( J, c# q8 r6 M" `在实际工作当中,我们经常需要导入数据。
    ; _5 k. ^8 |& [) b+ [/ y$ X9 {. c1 q1 l+ z# ]
    * {9 J# a& _9 {3 M" {
    比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。8 l* R/ u& A- i

    + o* m; S+ ]; U3 d8 O2 y% }

    1 L' d) b# a# O: J; g我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:
    ' @0 g: Y( \( R% R. M3 a" Y! W& `0 B% f
    8 w& i4 [6 o( Q& U) t
    可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:$ l2 R2 d4 h. D( M

    6 a- m9 p! ]( f4 C6 h; O

    + a) I  l! W% V% K- H3 r$ U5.5 数据导出$ o) r2 h3 h( O! M, K
    在实际工作当中,数据导出的需求偶尔也会遇到。
    & `& P& D% x& i9 x- w5 q# L
    , F" |+ r! l9 E1 `
    6 X4 r8 }; y/ s4 Z  y. e
    这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:- @) c8 Q7 N# l$ F9 E% ^5 n

      g; J# B' e/ u( G8 f  E
    5 x6 A; i/ L  \- l
    可以选择要导出的表和对应的sql文件名称。
    8 n# \$ u: Q9 Z. M$ U" h. u* P/ M# {* M( C7 |. d3 X5 M" U# g
    ) [5 b& ?, x. y  O
    接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?
    # ^1 d) A7 |5 P3 `: d
    4 r# b* A% w. F+ [7 a" h
    . ?' _/ Q& s) K- u+ u
    6. 表的查询操作% c1 T- N  a, f. X& F& b
    查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。
    . t! V, ?% M7 d  J3 x
    0 M, t4 j$ p* n( E2 ~5 G$ c
    * Q* i3 g' `- Y; I1 w$ D
    选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:
    ) P5 p' `0 E& t8 `4 ]" [5 Z7 G  O2 R6 @. ]
    1 B; F' l! H8 I* t: J7 ^
    6.1 执行sql语句:( u: o! [5 g& w7 G( ]1 G
    在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。/ V9 X9 w( U- m# }/ j

    # i, d2 b, w1 v( r) n+ f1 V1 I
    $ f9 u- j- L+ e2 S$ i% I
    虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。
    " W; ?3 |6 V* @5 @, v  x$ V) v) D  W8 a- E1 H

    : U2 q2 t6 X( P5 I$ o6.2 保存sql语句:/ h9 r" r: B1 L" p3 v$ F9 L* |
    有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。
    + Z+ E8 _4 i/ K8 D7 E8 W3 M
    ) ]& x6 |7 I9 w/ h
    & m3 \- B* x1 c9 R8 V
    这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。3 z# y" f8 J( x- u8 x' ]

    ; a/ ~  u% n: G! Q7 _5 Y8 p

    + l0 [! F2 g8 s5 C5 y, W: U这样以后就能在Queries中非常方便得找到该sql了:
    : T. j7 q3 W! C9 s" J6 d( s# a* U+ B$ l
    5 B$ |4 r  S# }: f9 H
    6.3 快速关联表
    1 G& ~3 Q7 `, |+ |: r我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。
    9 E  W- K: W5 M$ P0 S2 h/ y! n7 \
    % F# t  w1 J. s$ s& j
    这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。
    5 B8 m& w3 d6 j- I% [4 y3 L' o! x: i9 J3 |. l8 j) `( T9 \. O: ~* Q! x

    ) S. `$ u6 s% \+ m1 Y" r9 F7 M" j1 h难道还有更高效的方式?& U2 @) a* ?$ X* P+ K
    4 ^* r$ \# U! Z# s$ v
    & g9 m+ U3 d* w' m* r' I
    点击下图中的按钮:
    3 _- f9 P6 ?$ d: J1 h# \0 H: a" Y4 l) w# d4 h0 S

    . G; y1 w; T7 P) U1 g3 }会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。' J7 I) }* R/ {! g
    ( z$ [( i# p8 E: f( D9 I
    - R. b+ {% @$ s* e
    然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:& d7 F  N1 K  u
    * w0 ~" b+ n* r5 R% l" Y0 ~+ ^
    $ G% o' w: i8 p0 C
    太牛逼了。
    3 ^2 {& v, G7 `1 n' a4 d, w- o; ~. H2 P4 _! ]6 W) I
    # P) D- \6 m2 E  D7 V$ V
    6.4 格式化sql语句
    & ]. y2 S# Q; C3 }# g# W8 Q# Q有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:; C$ l0 Z, F2 U5 t7 x* @

    ; _* Y4 w2 R3 u2 t, ]6 ~

    / v+ K( U* r: c; G+ `, B, i# p$ [看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。4 q8 S. V" b# {, o

    3 I( l) s/ a9 S) t

    4 V3 `9 a1 e2 `) Z, o6.5 执行计划
    % O7 o* B' {, g+ Y  b' A有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:& ~2 F. c3 X3 h$ b  U
    5 x) b, p; y3 p! r( _' G

    + e+ ?5 W" f. v9 d3 X3 ^* t1 @" O这样执行后,就能看到执行计划了:( F# z+ n* r) s' q7 f

    & ]1 t* C' G3 S1 P9 }& z- u5 F

    5 ~6 Z" b5 n7 q8 @  L  [但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。
    : M, N& S/ a: N" ~! R0 Z8 m; w' M& F5 P
    ) O. @+ x' }" a
    6.6 切换展示方式
    / L8 k6 @9 M6 Y" l* W1 J7 X我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。
    5 |" F% R/ T$ X9 ~# l9 F
    1 I0 ?7 Q* }% N$ g) S" g

    5 Y' S4 E+ V7 |/ }6 x6 F这时可以切换到form view模式:
    - F' q7 {8 q$ J2 K4 z/ G( A4 b* M- u: Z$ \  }+ ?

    ( q. z2 F$ v& @' f- s4 v+ `$ u% y然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。6 F; R+ f" \" x# s) t

    6 ~2 g0 k) [8 J3 n2 T, M

    ; Q0 v! ~+ K; z3 L6.7 新增和删除数据" j) T: ~( W* o" g4 T
    我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。
    : O, R& w  a% K! X2 G' B; [: j4 T: b5 n# Z5 `% D
    3 }  [4 U( K' u) \" e6 \
    同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。3 K% @% e9 |8 _

    1 H2 i  H6 z, {

    3 Y# g# f/ L8 B' E7 }5 g最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。; ]3 _* ~: _' k+ T0 F
    BAT大佬写的刷题笔记,让我offer拿到手软3 K) R: P6 u, L, o% ^7 A2 x
    ————————————————
    8 V  G3 w' L7 ]! W版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    ' ]0 ~7 j6 o; Z1 q: {原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369
    3 v, a' v/ C1 z" n
    6 |# P% ^9 w. f( K, A# d
    0 ]0 p4 x; O8 Z, r4 i
    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-8-2 21:26 , Processed in 0.726154 second(s), 51 queries .

    回顶部