QQ登录

只需要一步,快速开始

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

    4 A2 k. m& W8 Q/ w) N  |这个数据库神器真是太diao了
    6 a3 J$ q0 E/ q; t0 }- Q前言9 u: d5 @; g$ m) Z5 q4 H5 _
    对于开发、测试、DBA、运维来说,数据库再熟悉不过了。
    ; h; B# D( G7 ^8 {5 g* ^' L' ~$ Y
    & d1 X5 C0 r; d0 W) ]: U
    4 p% L1 e& J* y1 v
    很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:! b2 Q. Y. ]5 Z  F
    ( y: L* B# c5 D# D: ]& [$ U7 U9 ~

    6 C( S+ Q; z! M1 X8 d5 `, g% n; h8 b! ^1 r( I5 ^0 S( {

    5 x3 b& n$ _6 u' b* I& L$ U. f8 |: o
    2 Y8 E- p+ h7 [/ z; R
    用过的人基本都会吐槽,太low了,极其不好用。
    4 H% b* H+ z& C8 e3 ]
    , s9 v+ u( Y. H6 j  ^2 ~

    ' N  k/ Z( h$ n( a1 \写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。
    . W/ p' O: O5 r9 j3 q; {& m3 i% c8 E' `, D9 s

    2 n/ [' G" q8 m( w看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。: A8 Q3 _; q) z8 e( e
    ( r1 F4 ^3 p, Z

    ' E; _& G  _  S5 o8 w# L对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。
    . H# B  k! F3 _6 Z# u' v! ]
    / {8 I3 b" z9 v
    + p# l: a5 V; v6 I' s) H- E
    很难看出表和表之间是怎样关联的。2 i! p5 `( x# T2 Z% r# S$ I
    6 a$ Z0 r# k3 F* j! J) T5 B) g! R
    0 v8 g; J+ J7 L$ j
    导入导出数据就更不方便了。
    0 F3 r7 U9 n. R; n- k& W- A
    % E$ |! _8 {2 }: V5 h

    : u9 K! K0 N6 Q最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。: t+ {) }7 l" H- v
    BAT大佬写的刷题笔记,让我offer拿到手软
    3 z% S" I2 Y' K# E- e5 ?5 S* P; e5 i  y' J% X/ h: ?1 Z; p. E& G

    7 g* [5 Y# Q6 Z. m* \4 J有没有一款好用的工具,让我们能更高效的操作数据呢?1 N8 h: y5 p- K

    " f" ^! `! P9 Z- w3 b
    0 e; f. v4 b' S9 ~6 R
    这就是今天我要推荐给大家的数据库神器:Navicat Premium。8 |1 k" T; i4 \& g

    & g  z+ y2 ^+ {% [2 {: \
    8 Z0 I3 S0 o+ Q
    下面我们一起看看Navicat Premium有哪些牛逼的功能。
    9 t% `$ W/ ?' e* y& _1 X1 R2 K9 O, O# |; B1 ]! S

    & l6 Q" o' U  W! g6 v7 d0 v1. 支持多种数据库) c% P1 K- |. M* d8 B
    在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。+ E5 E) J0 N: X  g& |% J

    ! J9 L6 [( F% f* \: V8 K) U: r

    * x/ W6 q9 h! h: {/ Q' f3 q点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。
    / @8 i2 {- c2 e0 n* @6 T1 c5 U
    ) u. h) W# v! K7 f# u9 x. A( }8 X
    2 F; A  x6 w, i, R; T
    2. 轻松管理连接
    ! x8 \2 x0 x& t0 T& X6 o2.1 连接数据库
    2 k; {' P! C2 p0 e( `" F. s8 M之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:( Y' \. l& y' Y% `9 F( R

    + y& ]: R) i' b% u9 F: j

    , j8 L: N( _1 Wmysql -h127.0.0.1 -uroot -p123456;8 a6 J$ Q1 v* c& C

    4 q  S7 [7 s% L

    8 V1 ~8 M8 i) S$ H0 Z1: Y) A) M8 |- d& R: E
    2; ^: |2 H. M. H) u1 W  _. q
    每次都需要输入连接地址、用户名、密码,不觉得烦吗?
    % e# H+ r3 M! l7 N5 {' m" _0 p( w
    ' R: ~9 M7 S3 e- [
    恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。
    # |; b/ J" \& d8 Q0 R8 m' ]6 m
    % @8 c8 e* ^% x2 J$ n
    $ \! G( B5 M8 E$ p" I$ r; d
    以后就能通过界面双击Connection Name,直接访问数据库了:nice。
    ) Q6 {  k$ `7 H% e4 V: k: a. W" U5 Y- g/ t: {

    $ H3 u# `' B; V' X2.2 显示指定实例* y1 i( f$ I& Z- `
    有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?$ Y6 L$ s2 y* X. I

    . R1 H; J* U9 J5 a8 c0 P2 f

    # k* `  W+ P9 o这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。
    3 U% [1 t( t) }/ d0 j6 H- |) B/ }# K
    4 M! m6 b' T1 N0 L  g# I
    这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。
    0 s" c8 ]9 i6 z# M. Q: l  q3 a5 i! H4 v) K) D- T( Z
    + Q6 i' P) f( u( H! K) ]
    3. 方便查询表信息1 W6 k5 ^( K5 \$ a
    以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:/ P& l% v  w: E; l' k9 }9 ~' G

    * H6 J2 }. E: Z3 h5 p7 ^
    5 z" L8 {8 y. l' K- p- j
    show tables;( W- d6 F; Q  f" m6 k: O; U/ {
    : ^& I- h7 _# l( u$ C7 n

    ; G  `0 y2 N5 t2 q9 E1
    9 Y" q1 Y2 H' Z2 j5 Q& e" R8 v2% f6 h( q  K. [  k  L0 {2 X

    0 H; w+ R5 c( G( L8 A) Y% p+ p
    $ k* {' `" L: C" I8 {  D2 s

    0 O) O6 X7 c' c& q: O9 q' Z+ Z% G9 X
    # A% e0 B! w* i6 w/ o" W  }; A
    不好意思,那已经是过去式了。
    : k% T1 a8 E" p; s$ G7 |0 P- f* l* H/ i; i
    ' y' X' L" g% f/ `" x7 @
    现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。
    ' `+ w# ]% b; X+ S& }' U/ `) u3 V2 [: }  |$ }; z) R  _- j
    9 p* Y5 i3 s+ z3 o8 }* `! r$ K5 h
    如果想看数据,选中双击某张表就可以了:
    1 A$ H2 j5 R3 [0 f/ F) g2 r8 m

    / m9 C. Z0 E" j( I  ~+ J如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。  X$ m0 U9 d: f* ~' F& T, a8 J
    , V) w: C1 d5 o% [1 W" x' h
    : T3 |. u9 K" }4 G, O6 q8 g
    如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。
    8 m- ?9 I  V6 a2 ^$ a& C+ Y* g, i7 r) X6 ]7 Z
    ; a5 |) \1 y; f# h
    比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。
    ! }8 e2 W/ m: U: u6 l
    : K0 Z7 c3 j" S) R( c& Q

    , b6 c: ~% Q; j' H- Y* c! b) L当然我们通过如下命令:1 e( ]9 d+ B2 x

    " U9 n/ o4 C, K) v+ I

    / j0 k" B- r- z$ ]+ C5 S4 l  B. Eshow create table jump_log;5 U5 s' s5 T8 Z+ J
    - R0 ?& r! @7 F' G/ G7 f
    9 b6 L, N9 @- s& a+ s! q  y
    1
    + _3 B7 g) }6 O9 L  K2" G- Y/ b& p/ Z9 N
    也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。
    1 A3 a9 V' g+ @4 j! J# z
    6 o0 P; }! g( ~  K* H8 [
    6 u( p4 c5 X9 k/ P$ l$ k% p
    4. 数据库实例的ddl操作
    - i0 \) Y$ z8 m2 k& W( ?通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。
    ' ~# a; C* W& _. V2 t. P9 @4 i8 m. w3 P- {

    4 \* C( G7 [. e- w+ I右键单击某个数据库实例,就会弹出如下窗口:0 [) f, G  ~8 B+ v1 o

    1 r7 G! ?" K  @, b
    . g2 ^$ O/ \& P7 f' _! n
    里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。
    , G: |# k0 D% c. F0 ]4 i2 ^  C" S" H& g

    ! X  |1 a' e% G% i& t- h- R4.1 数据库的创建和修改
    % O  Y  U+ V( Y2 T创建和修改实例时,只需要输入以下三个字段:; I+ f! @) R0 I: }# I& Y
    ! @& e: s5 m2 p0 w5 Q4 Y

    ' M1 o* y; j2 j" |& q4.2 mysql客户端
      a. s6 j' k5 c; y在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:& s, t( b/ f1 _  Z, J

    & N4 ~  Q$ f, V) T# a6 J( k

    * f* f0 ?3 f2 O' b, ?9 q1 k# d4.3 执行外部脚本
    - _/ V, B0 W  c& u5 e7 @; v, T如果选择Execute SQL File,能执行外部的sql脚本:& \2 h3 c6 K* K+ p- G7 h

    8 p. j$ _+ Q+ p# @+ e6 r
    . @' A# j! }9 q: `8 j* ]& i2 H9 J
    4.4 表导出; X6 [2 j5 b0 [7 P4 U+ }
    如果选择Dump SQL File,能导出所有表的数据:目前支持两种:8 Q4 \* e" n; ?  g5 K! e
    ; x9 p/ O' v5 S$ R. n4 `/ ~1 U

      Z% n! |: g$ \. x, y% C- J2 {导出表结构 和 数据: g3 j' X' |: S

    ' ?$ N2 T8 p7 [  v$ [1 m, H

    , c! O( n4 q: {5 C只导出表结构: H" U* g# g$ |5 f; h% ~0 w+ m

    + }  Q! e" _* a: U3 a8 f: r

    5 o+ u- c" ~7 G6 N: `: W* h最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。5 w$ f3 l* {- p$ c

    # z9 v+ {, p8 B( l
    # U  |4 S9 r4 {
    4.5 打印数据库  J: w/ x+ _' ?6 V( O1 S4 M& K$ {
    如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。' M; F6 l* |9 O' k& A* |! f+ B

    % d. R* j2 [$ T. e
    8 u6 n; i5 ?) A( f
    4.6 转换model) [+ d. N/ c; _1 O! H5 F) [$ V6 x
    如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。# ]5 b$ [9 X/ R5 i6 c5 |% E

    / q/ _  o1 |* ~& a& R* H9 @

    7 o% v9 B2 M! B. g3 b2 w9 {5 l* ~4.7 找到数据' t: }; g' `  _: p2 Y  @/ `
    如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?# J; n/ @+ A$ g8 z, o
    7 V; s- e" O, b0 y( {

    4 f1 l3 o  z# b: z8 ^5. 表的ddl操作) I8 x+ G5 v/ N% i
    相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:
    $ O+ g0 X% R5 a' ~0 {+ K3 r; `5 @% \% j, a' L& f* u! I2 P! p( M
    8 Y6 |. b# n: d+ F
    如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。( a1 {* ]! P2 I1 o( d

    0 w0 ?6 P3 ]/ o1 p3 k. h
    & q: n6 O: _) v0 t# H
    5.1 表的设计窗口
      o: e" [7 h/ ?& W) Y1 S2 F+ h; ~' L如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。9 q' f; `; H0 y+ \& T  j
    # W" K3 x% n+ T0 |: ?" b  l  l
    ( A5 y; y: e( Q8 V, o; I
    它支持的字段类型有:实在太多了,列举不完。
    # m) L# ]  A+ Z3 p3 Q- D0 Y8 N: j. k0 e

    3 }2 Q- F3 f$ L5 i/ l( |- o如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。
    5 ]* J, H- T5 J3 Z0 D7 z& }  ?: ^9 B4 D

    $ `, R- w5 u7 w3 q) H如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。
    1 Q" ^7 L$ o9 E- L" k9 v8 N6 w* K8 e

    2 o) y( Q+ f  r7 zComment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。! O8 K8 z6 E2 r, a$ `" S+ z, f

    ) l' |( e  {" ?! m
    ( I& Z% X7 q' ~. q9 R% j, i) f* a
    如果选择SQL Preview,也能看到该表完整的ddl语句:  @% `5 ^' B$ z
    * B; T4 E/ s+ O+ i: {- k8 t+ }

    ; N/ c" Z  d3 O8 M3 b# q" ]# X" l
    ; N/ w& c* C: {: w( t: Y
    + `1 u, w0 I# |

    7 c' o- L8 c2 ?  _0 W7 z# b5.2 表的删除5 Z& n& s% `+ i/ a
    上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?9 `$ n- B& P) ^8 u. i7 _% i, f; X

    0 Q0 f0 P2 E7 P$ f. ]' F5 `
    / `0 t# q( |' w
    主要是通过如下三个功能实现的:
    ' m" b% O0 u0 u- K  V
      y1 t# ^( ?; r. W) `

      L( ~, J. {; h5 mDelete Table:物理删除表" a$ ], k) G' e

    3 v% V: @6 A9 U2 ]/ S( a* E( Y
    8 E7 j5 Q) c; A+ [; m8 h  F
    Empty Table:清空表中的数据,但表任然保留
      i  `' d5 j: k) {( k3 p* k0 J* S; D

    1 a7 {8 L, h5 k7 n  ]) PTruncate Table:逻辑删除表
    7 y- A1 q4 Y5 w# S- j" J6 I2 @$ c, l- s1 h# h7 C2 D* C

    # N/ G! F% t( y5.3 表的复制/ r" X* Y* x; Z' a9 T2 b7 r1 |
    有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:
    ' k2 t# p6 ?3 D' m! h4 L% B. d, h7 D( O3 C2 Q& L' O
    / o3 m5 Z3 E( r/ `
    如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:9 p( o% e' d9 {/ W' `$ z& c

    6 L8 c( c6 t+ L0 R& E% R
    4 P3 b( u. y9 t, n$ l2 j7 T( l
    5 i, ~, a, M, I8 w
    * \6 K0 e; H$ R- b6 B( _

    " e7 X8 P' I: b1 l  L+ }9 N

    ) T) Z9 ~# q' `+ I  J5 p, I里面包含的数据跟原表一样:
    - m0 {! S- ~  J9 {% g4 Y
    9 H" I, d% J- S5 s2 C. n

    2 C: w1 z9 ~1 D' b6 e9 T如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:6 s4 g+ }  T' z8 w+ a4 S7 g
    # x- {6 d  m- D+ K; G: \' j; p1 e2 a- Z
    6 x+ J) z, P& C6 e- Z
    5.4 数据导入' X. D9 F% r& ?& K( {0 C% r- t
    在实际工作当中,我们经常需要导入数据。
    # `( C/ E( b( m2 K2 Z0 J3 v% l1 E4 F

    8 H- }3 U: b" m( W比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。% p- V0 P' p% X& v4 m
    $ u' A3 M# T9 D: t9 t0 }
    ; X! R6 O  ?# X
    我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:
    * f2 L! D+ }9 Y- |9 T, O
      j/ ?5 n. b" h% [
    , j/ A0 w4 m/ D7 H, {& t  r& T
    可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:! b& N( p$ H' J8 X& H7 e# u+ k

    - K$ K6 Q& z, r+ u& H% W

    % k; a+ W( M/ H" s2 d- i1 w+ ^5.5 数据导出
    ) ]$ c9 Z* w; S! R; n' `在实际工作当中,数据导出的需求偶尔也会遇到。
    0 L4 i8 p  @, o# d9 C, w: O/ ^" h6 g6 H  }: x5 n' s
    . a8 e! \1 E! M; [# G
    这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:
    & s* _7 b: ~. z; B6 A0 G; R4 S- U9 f7 d: D( M- d1 a

    # z( {9 k3 L; B' J1 C( z可以选择要导出的表和对应的sql文件名称。
    3 r; f& D& L% f) C
    / W1 ?# Q0 L- M5 k4 h0 W9 C
    & q/ f+ s' M6 L- B& ]8 N
    接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?( _* j: R/ H+ s
    + x/ u0 C% ]4 Y
    # @7 M, ~5 R6 k7 ~* }. L7 D
    6. 表的查询操作0 m% A+ f+ Q) A+ W* R4 F! I
    查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。
    % B$ K6 ^- B  N% N
    : @8 l2 b. Q5 J7 {* |

    $ [' k7 G" }9 R, g: D' P选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:0 p6 F/ l- `1 Q6 w% r! o9 D8 g

    4 X8 z0 j8 w: ~

    7 n! _' u( u1 N  H& f+ j  J' ]# y6.1 执行sql语句:( z7 Z0 Y$ l( T+ |# c- s
    在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。1 v3 b4 p8 q% E4 `% E

    . X$ E0 s# I/ [

    8 L) M" C7 K3 _% C, `6 \$ u  n) v6 R虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。
    : J+ F+ J& q- c
    3 b4 c0 S6 x1 I# r5 ?

    - T7 D/ Y* }  f  M9 ?0 E6.2 保存sql语句:; v9 f2 x. n# H9 `
    有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。
    + P- b* V0 }6 ]" H* N) R1 A! @' X( n) I6 [: ~" F
    / W% A3 L& h, i( ?8 r7 U( S+ q* f
    这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。7 z/ V+ e% ~: B6 {

    ) `' _# @. ^) ^6 s* ?
    : j& @6 G6 r* F: W' z  |
    这样以后就能在Queries中非常方便得找到该sql了:; [* E& q+ }$ _
    % D* F; E/ V' ?& c. j# ]
    9 Z+ U+ a# E/ r9 l/ w' ~0 @8 }
    6.3 快速关联表, x, |2 t; t! {4 @7 `& t; B
    我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。
    3 E) p* y( C' X+ {' P' y
    + M  g1 W" V6 m% e
    ! h/ k: P+ Y/ l2 Y0 {. d9 M  W
    这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。
    ! }2 C4 w) y$ @- ]. n: Q( j7 |9 N5 F. Z3 c# C

    % f1 E' r- g5 y难道还有更高效的方式?
    / |& x5 ~. x/ x* b+ e3 x! Q8 Q, l! N5 l) T

    + y; F0 p( ?+ O4 N% P点击下图中的按钮:0 G% k) h3 K- x: q8 O- C; ~

    9 w1 x9 M4 {: T- C2 |* `0 v% B

    9 H) o% X6 v" O" ^5 z0 Z6 y6 M1 M1 g会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。' [! }7 p9 u1 U! C
    " S. o" o+ S( |/ {/ c4 M
    5 S* _" }$ {! I2 z/ j3 R
    然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:
    1 }. X! N! Q* V5 U9 Y! _, B5 h* l- m% v  w- T
    1 S, R* i8 X/ w' F& G& s: Q
    太牛逼了。& a: D9 H5 l4 d3 w& w! f' e* U
    + h& K& n+ C2 u: V+ R/ E

    " Q+ F" h( E$ B8 i3 |6.4 格式化sql语句
    - t4 D4 h) ^  `0 A; R4 ]% d有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:# k7 y- h+ A' C- Q& V8 C. J$ e

    5 J' A6 M% X2 }% L3 Y: ~% ]

    ) H' H: {. Y' P- U( g$ F看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。, [6 {) q$ F: L, }! u

    & ]; y; j) M' D% a5 d6 m
    8 P$ P, ~; g- J- Z) q. N2 o' h
    6.5 执行计划% R: N  S) }" D( ?% b! j
    有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:, T! j0 y4 A6 h/ ?! k

    # g) t/ i$ g9 M! g
    : }2 X9 q" [2 G+ W) K
    这样执行后,就能看到执行计划了:6 t5 b( s% ~6 t3 U( N
    4 k3 ~+ v$ m1 n+ }
    & o$ v; R( C" y: {, s
    但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。! r+ U) k8 z, ~* G5 ^/ p
    - z* [2 Z5 D: Q- d! i% N
    9 G. _2 X1 x0 A* A( z1 U
    6.6 切换展示方式
    + _$ O, Q& d$ {1 R# J/ i5 l我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。
    5 i3 ~: C' D# m- r6 o$ S  A$ Z) i6 }: Z" v

    ) g! L4 @& T6 }( p这时可以切换到form view模式:! X5 r( e. f! `0 e; u4 A% {
    * n; z& u; @' O$ A6 l

    % x: [, C( r! J然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。7 K; V! x8 V# P, _

    7 {5 X# S$ m1 Z# G+ {
    9 J$ e2 D. ?5 v. L4 m( y* J
    6.7 新增和删除数据
    & l8 N$ w/ x8 I, Z0 D9 \6 E我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。
    ' M  W( M4 v* e+ ^
    1 }2 E) J$ s0 Z2 r  k
      ]& |7 R9 M- a$ C" n# V' G
    同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。
    # F8 T3 Y$ \' I5 t9 ~5 `/ ?& N% L3 w2 t5 y" T+ z6 u& J+ O" C2 E" h
    1 C/ \% t& d7 @' T: J( I6 T7 L
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
    : {  X+ Z7 H- s0 W. ~: o; q5 cBAT大佬写的刷题笔记,让我offer拿到手软9 h) c9 m7 x* S1 f# y% w, E
    ————————————————
    ( T7 d8 Z: f0 ]0 S. q) d版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。  H' S3 l# f6 \- d  @- A/ D+ L
    原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369
      ~9 {: H: [- k. V$ C: h# Z& J9 _9 Q6 F1 K' v. K( q: M: G

    + F" C1 u) g; G( e  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, 2025-8-24 12:20 , Processed in 0.348539 second(s), 50 queries .

    回顶部