QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2943|回复: 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
    $ M: ^% h  f& l
    这个数据库神器真是太diao了
      U9 _. _/ ?' }. I1 Y6 @前言
    4 T! h+ z. O3 P* T! a! e7 t对于开发、测试、DBA、运维来说,数据库再熟悉不过了。* l# Y, G3 `4 ]5 H5 R% V% K5 Q
    $ Q  d  b7 k2 P0 D- Q
    4 ~% {9 b3 ?% q( \& |; ]5 D
    很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的:
    : d3 E% X7 C( i1 F" A9 W' B  {
    : b( [9 i" k' `4 E
    ; f( d  `2 Q/ y$ @' X# _+ I" E
    0 v$ @/ T8 s' U- D; `

    7 A0 q  C$ R' Q
    5 f: B3 @( I1 f/ S4 I
    ' q/ p/ G$ [) i8 e
    用过的人基本都会吐槽,太low了,极其不好用。
    5 ?9 }2 x+ c; o, I- X
    % s' v% C& f# x) |; V/ l

    ) W' b" O$ }' I# [+ G+ o写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。
    & L# ^9 ]5 L' R. A$ L3 P
    $ _/ N4 z0 x* K, O: o

    9 w9 {$ \* j) {9 x看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。
    0 A( p: t1 u+ ^1 P( b9 |7 o, _+ D# Z

    0 j  n/ c% d* P0 s8 A" P# h对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。
    3 f0 I9 T2 H' @& U# w* h) e. ^
    5 m- k+ f+ T+ v9 O) M
      S  s$ i) {! ^# O6 N
    很难看出表和表之间是怎样关联的。
    . P" y) s" |6 }* O) U4 s2 O+ t4 m/ d7 F; `' u. I) p6 }

    ' }* v" K2 N6 E8 X导入导出数据就更不方便了。, J6 j# w/ F+ `$ e
    . S6 ?6 p3 A: c, H$ P6 g( B8 i
    3 I1 h7 f* f" u! a9 b  l% {: f
    最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。' P* a; X+ J7 C0 d6 {8 M; ?; q
    BAT大佬写的刷题笔记,让我offer拿到手软2 ~2 d( |; y% W

    " O1 h- G" w$ T2 S  ?: s! C
    ) W/ \1 {' }  l: X( ?& F. E5 X
    有没有一款好用的工具,让我们能更高效的操作数据呢?0 p- _. e3 I) T- K/ ]: N

    , _9 D9 v" D! c: q7 R& i7 l' Y
    $ \2 b( J+ M3 R3 t2 \  L
    这就是今天我要推荐给大家的数据库神器:Navicat Premium。
    " D* s. s0 h' H# U. \9 a4 f
    3 T8 M5 c8 K8 Z$ Q

    1 O, j! u: a2 g( T$ ^下面我们一起看看Navicat Premium有哪些牛逼的功能。
    : ~8 A, O4 E0 H7 B4 A& e/ ~5 [& C
    " J& [, `( N2 y" _

    % [( u  A! ?) K0 \$ o1. 支持多种数据库' T8 w, e' o" g: R/ T, ^+ i
    在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。+ \! m# y' W* z+ P4 J! A. C* L9 W2 @

    1 L/ ?+ K& E! K  T; a2 d; d
    5 Y; E' k/ J1 S  ?
    点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。& D( J9 |. m+ I* t, i: `- w( T# G5 P
    # U, v. p3 D6 w  j9 e
    9 ?3 D; d7 T! j. ?
    2. 轻松管理连接' E+ p( M; k: n$ U$ v0 V
    2.1 连接数据库2 _' a; K+ D0 \( I1 B
    之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:  q( a9 e+ z' {9 i! I

    3 n( w" k! F4 Y( r- f$ `

    ) h% Q: e% Z( m# qmysql -h127.0.0.1 -uroot -p123456;
    1 b  O0 `, \' e7 v, x" `) G- _+ s( Y; O6 n) L, c( G/ j

    ( a, I5 j3 F3 w; j* x/ i1
    # @3 h8 ~1 |( i0 b2 I" M# f2
    " ^# X" ~, S5 o4 k* e  R每次都需要输入连接地址、用户名、密码,不觉得烦吗?
    + K0 V8 `; M1 j7 J  H8 p# ^7 Y- K5 i; y6 e& e& U, n0 V

    ! M3 i2 x& o5 O0 q" D9 H" [恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。
    " i6 a+ o$ U" \
    7 ?( u  C2 d; S( e$ N

    / s9 g4 J) |6 ]* q4 i& n& a7 _以后就能通过界面双击Connection Name,直接访问数据库了:nice。" u* Y! H. U& d, K4 r- K

    : Y( J! R* n  ^2 Y+ j; l3 }, A" H

    # @+ K1 ^7 Q/ ^3 o4 E2.2 显示指定实例
    4 ^: \9 T) F+ j1 e/ |有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了?: }7 \/ ^" C: ]/ ^" K4 k' S

    - B5 G6 I' g: @- y; J  G) }
      W3 J9 P3 j+ H, {2 [6 ^  E  j
    这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。
    9 w2 G$ o1 _, T4 ]/ A8 w' k! w7 U1 p6 @3 \1 `; }& D1 h* o6 n8 e' F

    ! a5 u  X) E# L3 }; W& K3 x. Q这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。
    2 k! h/ Y5 O* j
    3 I6 r2 s( p5 Q: R0 ~
    / L5 g: R/ U1 N6 W  b4 O; S
    3. 方便查询表信息8 E/ w  e# n7 J2 |( y1 H
    以前我们查看某个数据库实例拥有哪些表,一般通过如下命令:
    : R2 X% w# V& j( b& R: q! H3 @/ \
    / j  i9 p$ d" N/ m5 F
    8 A3 ~4 Y% Y- h* P6 m
    show tables;6 D' F; d/ q9 G" `7 I) S

    3 ]& `' P" T! h' R- r7 f
    5 Z3 ~$ ]& X: V. v6 X; i
    1
    3 O+ Q# G2 H7 c, m  X. w0 O) X2
    7 C$ d$ j  Q9 U# B
    1 a- _8 n7 U0 S  ~, C  \

    , a& X0 u' P% C1 E3 G/ F0 A: i2 b! L+ z. p7 W7 U2 e3 Q& a2 u

    0 N; a# s1 R. S$ ?/ K* m% S* M不好意思,那已经是过去式了。  W- q! \" K4 h% n$ A+ e. E) B
    ( ?3 W- W  D$ h; h; M- L& A+ L

    0 D1 g. Z6 v) S9 y5 m现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。
    # v3 P; {" [% ?& J5 _/ ~- N: a/ P; ^5 n/ S- j; w

    / Q) r& g2 r# C% O如果想看数据,选中双击某张表就可以了:: R8 i) ^: c# s1 _2 p9 m

    ) I2 O, ^. u& a/ U" ]+ z* i" Z

    ! Z- e+ C6 h0 [& h如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。4 U5 H1 D& _9 v5 `( K5 Q$ a

    ; |# \8 A# a' h6 h- p, x
    ' u; V" q& V+ O5 ?* s2 ~$ v
    如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。& I6 V- |9 r, n# B- S/ B
    / m9 r7 j& C; [9 x# B

    ; ~- M5 c; u  M: J比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。! s1 @# p; l  m2 m$ b: q
    $ n' I0 T0 U# i- R: C& X
    6 L6 d$ J+ u1 l. Q/ q
    当然我们通过如下命令:7 \9 E! d$ h* g/ ^1 B9 x" g& q

    . v' r4 R4 C. t) k! c. F1 ?4 n
    ) _* i, U& s# o# `% O1 L5 [" m6 a
    show create table jump_log;
    7 Q' o8 a) Q7 f) l+ ?; R6 W# m1 P  n+ `* ^* l0 T8 H

    " P9 ~  M- Q# L" x& o1- S; H* L: E5 z) A" r
    2
    3 X, h+ t( V1 A9 A+ Y" q  J也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。
    / o" k( K3 V# V4 l$ k4 [9 x2 t  o& B) E
    + b+ v6 v3 c4 I2 X0 y; ~
    4. 数据库实例的ddl操作/ H" z4 I$ _9 d8 C4 s
    通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。
    & S7 `8 v$ M9 a
    , [1 u3 u4 ]3 k  a2 R: x  n  y: d% C

    5 C! w* p! @/ l, c/ |' Z9 I右键单击某个数据库实例,就会弹出如下窗口:
    " h' z0 L6 X4 h1 H, S, [7 V0 a( ?: X7 ?6 ]' V
    $ p9 A2 I: K7 ?0 O- H1 u3 u
    里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。! e, [' t/ H& R! m6 u  s3 q2 D

    8 `- |% r: S1 F

    : S; n/ |! F$ h: D. V4.1 数据库的创建和修改: i0 ^' m6 Y4 O: n' R
    创建和修改实例时,只需要输入以下三个字段:
    , T0 a" z, a2 t" g- L
    ( Z( l% t) U, f3 H2 [
    0 Q% t0 p2 F/ R$ `. Y
    4.2 mysql客户端
    , }, q1 m/ ~  [, E9 a在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:
    ' u* u9 Z' A$ t1 v0 w* f
    , _- G9 h  a3 P

    / J' W- {6 }& a/ I: K4.3 执行外部脚本
    / I5 v+ K% D1 j7 S* O如果选择Execute SQL File,能执行外部的sql脚本:+ C. z8 a4 p( i$ l+ v5 X( ~7 U$ n
    ' u; R% A1 [7 B; Z' c
    , v) w  @' @# }
    4.4 表导出7 \- L6 W( F% @! u/ ?; q% |* a3 T
    如果选择Dump SQL File,能导出所有表的数据:目前支持两种:, y! n1 u1 Y5 I  w  t6 l
    2 Y  _! v4 ^: I1 n( ~2 R! V
    - I) R* }5 a' D
    导出表结构 和 数据, k% ^* ]8 R! [* ?& [0 U
    3 v  z% f) z- E- J/ h4 b  t, H
    * l+ h/ X3 y& {7 s2 C- N
    只导出表结构6 |+ p$ x0 N& q% i
    " o  Y8 k8 p/ r% q! i

    / R& m1 O$ b% w' G( N2 }- z) l最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。) O- Z8 o; d9 [
    4 F0 ^9 C! j! _4 {4 w- x7 Z$ d

    % ]8 y/ G+ F+ X- h$ [4.5 打印数据库$ D1 N: W" I8 j' [
    如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。9 U0 j+ i( U5 g$ O1 D4 a  H

    6 w9 m% b& L4 x
    5 {0 Q6 b9 b2 z- _) [
    4.6 转换model# G: s6 N' Z3 |+ w) w
    如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。: U4 w& q) P9 o9 j) }, N; X
    . r, y' w: p2 B! O$ s- S
    1 H; f2 h7 j5 D1 Q0 n4 [  J
    4.7 找到数据. ?5 U/ a- U! ^2 B6 q% h5 F
    如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧?
    ' X" I, \/ k; W* O8 s6 Y1 Z2 d. V. r2 N5 v! ~. g5 V5 m

    , A3 o, u5 d" D; a5. 表的ddl操作: H) g9 O) o1 Z2 ^3 W$ X1 I' D8 R
    相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口:) L. u' ~0 o: R0 y! B
    0 E* E5 Z5 E" k6 i7 d
    + P' f' U0 |# b# R# w0 q) x
    如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。- G3 ^  F1 Q# P& y
    3 W1 S  G2 [( W1 y
    / P! [+ P5 ?* ^
    5.1 表的设计窗口
    9 n8 v$ ?4 ^4 D# X  D3 B/ B; P; P如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。
    ; P8 j4 A" n/ o. ]3 @- ~
    ' _7 y* G: L: X% v  W

    ; O+ z0 a8 e% a7 L1 w& R它支持的字段类型有:实在太多了,列举不完。( R/ o" F3 f& ?) s. g
    ! z, v( [) }7 m

    * v; J4 v! _) c' D5 Q如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。+ R" N, h0 I: d. x7 L" i: c" I6 I

    5 y+ q6 o* r' F$ y. d5 H  z8 r

    7 K7 ~' m, Q6 E( e如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。* I: A- k+ B4 E  e
    / d( h$ F: N% E+ Q- T4 W4 E# b* b

    ' A) Z& _6 L& EComment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。1 t, T3 N" `/ U" s8 ]! i& a
    / T  q, `. {0 o

    ( g2 T  A. ]; [. ~+ A* z如果选择SQL Preview,也能看到该表完整的ddl语句:
    , m0 O) k+ w5 U/ B' h$ A& N. Y0 ~/ n/ I5 r
    * B3 f* f2 I. ]6 c( t7 ~% R: ?

    0 e2 S9 B) Y  k# T  l
    , R% g  o6 u0 x% W( N2 b# D/ N

    4 U' R" f) E2 @/ x9 b# S

    8 t8 _, C* p/ e' l/ Q# ?! a5.2 表的删除/ f+ ]) A$ B6 U9 B4 r' a
    上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?
    / d9 T  Z! _, P% Q, Z- s, e
    , C5 ]( C, }1 R- x2 E( Y  I
    # H; t  i3 F6 G. `( T
    主要是通过如下三个功能实现的:7 n4 L7 o! f) Y$ c# Q: d& J

    4 o9 h; \; z; n4 Z2 V" f, a2 ?
    # e$ @  p' k) }7 C
    Delete Table:物理删除表, E. G# v& ^8 s% u2 s
    ; r5 r" E* e5 _. y0 \( \/ F. o

    ) s' n" s4 n& A4 G* UEmpty Table:清空表中的数据,但表任然保留  f$ M& e& l6 }7 l5 c

    * o" @  ]8 G, z6 s; ]2 U

    : ^! C1 c! Y* s9 j7 OTruncate Table:逻辑删除表4 [' R7 ]9 D2 [# }% {

    % C' [! ]' l$ [' S0 Q5 R5 i3 S
    $ Y+ a$ l% |) b1 s% ^
    5.3 表的复制; d; R# ^7 N, c$ n$ ~; ~" _! u% M
    有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:% d, k4 L5 u5 t) X) Y
    2 g. G5 g" L3 R9 j
      P2 q8 s/ {# X& R+ q* T
    如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:
    : {7 {$ g3 \- t) L1 w) J9 R' X) T
    9 m6 g- ~% f0 `3 p

    * ~  ^+ o1 c3 A( I6 u
    ' s( w; c' e5 |; ^1 B$ I
    / G& ^5 I& }! R( y$ M

    / w! h" M' X) J8 `里面包含的数据跟原表一样:
    1 m0 ^& v% V( |, d
    ' j$ h$ d4 B( D* u; C( o3 Y5 h, K9 T

    " i9 N4 j( y5 z9 d, X如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:9 B! `1 i' r1 c1 o2 X

    9 g* y  }2 @9 u  I. H- ~

    ( T1 q5 R( A0 o; Z3 i/ a) k$ B0 ~5.4 数据导入
    2 i( @( J) l% t7 F. t在实际工作当中,我们经常需要导入数据。
    ) b* \& d. o8 C) L: S. P8 x0 H
    ; J) x6 Z; l3 s. i$ P- p
    3 i( G, B7 |4 F# e& E. N, c+ S; C  F3 _
    比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。
    3 V/ N, W: p" F/ W* v8 R3 l' ^& ?/ \; P" N8 u
    2 p! I' f' V% ]$ a5 F" E* w
    我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:9 Z- S7 B# g5 m( {- [$ K% d4 A
    : w" ?& K  B' D# _! b! G, s, l* K( @
    ! t! P, \( M3 K- N: E# r
    可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:
    ( ^- p* S" q2 ?5 S  ?9 x0 h! t% ~. F5 A* g
    ) Z. D5 [( @5 v8 M% t# h
    5.5 数据导出) w# \8 L$ _  u' `' e. r2 ?
    在实际工作当中,数据导出的需求偶尔也会遇到。
    4 ]; b: L' ?- j% Y
      o) r$ a* E8 D7 N) w6 U- z

    # o" u7 I- g8 f这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:
    ; ]  X! ~2 U% L& o
    / u- V( ^+ g; x4 a& J4 ?
    5 g+ w8 d1 a# s# G( ?/ X: u; @" T
    可以选择要导出的表和对应的sql文件名称。
    7 ?" R5 `: q  i; y$ o; n( \5 ]# M
    ! T! b7 [6 f; A$ d7 y2 q) @
    3 R5 A8 p" t. \9 f4 [/ `; h+ W
    接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?
    8 ^! Q* E: ?9 z( x. W7 t) g: a& Z
    $ j0 w2 Y+ u% |; s4 v. D

    $ ^" h! e# U  M( K6. 表的查询操作  ?9 z6 S8 F3 d1 L: d
    查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。
    : e. v$ ^, L+ S! i/ ?. e0 y! H; ~4 K5 L4 s6 }9 g- p6 n. H( l4 B" v

    ' Q5 V  O- ~. \$ ~选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:
    ! n' C& O  T/ b' A1 ?' X6 z, v# b1 {- f: Q
    ) r1 m& `; k( S
    6.1 执行sql语句:
    3 l) Q* j# v3 v# f在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。
    / ], _- D* X/ R! ~5 n( U. Q/ r7 r) t0 ?4 w8 U6 a

    5 f9 ]8 E3 N# n: S/ D虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。
    : R4 \5 r) P; L5 v% [2 \
    $ }8 p; ^# P& t1 k; G

    ( b9 }+ s) m6 j& k0 E6.2 保存sql语句:( Y, h2 `( W5 D
    有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。
    : m" g8 r- `/ Q; h  f. Q: B( g5 w7 Y" s9 y+ r6 g/ j2 }/ _

    + {) ~: t. V7 D9 X; O' t这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。9 ^5 ^% \( Q( y( Y
      a$ P# d; N5 t( z  {

    . J$ E" z1 \# {" m$ o- o# J这样以后就能在Queries中非常方便得找到该sql了:. @" ^3 @9 t) L9 {  }8 ?) G  v5 y
    * R* r- M* X! X; r+ A9 F2 q$ O

    % |7 K8 e9 s2 N9 h6.3 快速关联表
    0 N0 K% P9 q) K( d9 E我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。! L" i: i) S2 L* ?
    : F! W6 D+ G! |
    7 q1 f$ x- F' r8 @. m( C
    这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。# Y, k3 [0 A& ?0 _% r/ r

    5 p8 q. v) y& ]! \" ~8 q% u' b

    ' t$ y7 M0 a$ e1 ?7 D/ q/ r1 o: r- p难道还有更高效的方式?, \+ {( ~4 r& Z4 [- s4 M4 U
    0 e# n4 l; m$ d$ P( {8 b; ~
    ! C3 I& d. \* M/ |1 L9 i& r" x
    点击下图中的按钮:8 e8 C) X( u6 Y1 ?4 O

    / z5 R" L2 z, h& G3 g) j6 d

    ! j; D6 E; Q, q  I- q/ ~会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。) _4 b+ m! [: s8 p1 A9 I% A
    % s! {( K4 S6 G) Q
    - Q) T/ q+ |+ v# t4 b6 w, M
    然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:" I3 i6 U+ A) a/ F2 v/ C# j# S

    " O7 y0 t2 E* i" x  d* ?- u
    & N( Q- @  l7 Z, f4 O3 S1 [
    太牛逼了。
    ' V* y; p6 \2 V- b1 t' W/ ~1 h6 Y5 Y, Q& }2 m
    8 a4 e2 n8 R$ ~, K% J
    6.4 格式化sql语句
    % _, G- c5 b2 q3 ^% D( _0 n( k有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:
    4 p" m# W) h" b- a, u6 W) W
    2 r! L* `) E1 Y- H, q8 j
    & Y5 s7 g* v' e# I7 f& @
    看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。
    , x$ k3 C7 V8 ?$ ^
    0 m8 X; a  e5 W  U' J
    ) A  Y1 w6 H) f% m6 A/ _
    6.5 执行计划- g2 Q1 A1 h# ^8 \# V0 r
    有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:
    ( y/ n" _) q- J* W2 X: l3 |% s1 M' Q7 |! q& q0 X! [

    $ ?5 t7 m& }* ?: k+ m! |5 F这样执行后,就能看到执行计划了:
    9 S, H, F) t, }7 C! {% H: d) x+ U% Q
    : l7 M1 h" S& q6 c+ R& `$ [
    但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。4 l' {2 K' q$ w' p  V- A
    " A/ S$ w' D0 G! \; ^4 ^

    8 K5 o$ C1 ?8 C' s5 }- W7 E9 w6.6 切换展示方式
    ; W& Y+ m/ ^- H6 w# Y我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。
    ; k( U) e9 c+ }" _
    , I! }" [+ U5 @: {4 d
    " n2 Q/ S; p" B: H+ t
    这时可以切换到form view模式:
    1 L0 d1 ^- h+ b5 ^6 M4 p' Z
    ; x8 a1 _: x2 L4 S7 K" p6 B

    % ^( G; i9 v+ D6 Y然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。+ |) S. O) |. ~. X5 ]
    1 T5 P, j' _$ m4 G

    ) g$ A+ z0 M* h- x& r; b  H6.7 新增和删除数据* o* F2 C/ z0 d) k
    我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。
    + s- x7 }+ L' f1 q+ b3 a
    $ |" j3 I) W, D8 H2 y* z
    & I+ E* ]3 |& S7 O0 T  ]: ?
    同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。( j; x4 d! e9 y! K- z5 |
    + B0 m- K$ n% k# ], ]% E

    % N0 g% A  Y( E  a- A  v  V7 ?' S最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。! z6 {) Y4 y7 @; O  {0 P
    BAT大佬写的刷题笔记,让我offer拿到手软
    2 z( `6 j- b! T; h" U————————————————
      C) p4 n9 O. M6 X版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    2 o6 m  d1 i5 C# H原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369
    6 ]' M' y8 L& o* Q9 y/ \& F  B& e! [! o* U- t' t) ^

    0 N3 Y& L6 j8 T! C
    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-9-27 19:38 , Processed in 2.104687 second(s), 50 queries .

    回顶部