在线时间 1630 小时 最后登录 2024-1-29 注册时间 2017-5-16 听众数 82 收听数 1 能力 120 分 体力 563278 点 威望 12 点 阅读权限 255 积分 174206 相册 1 日志 0 记录 0 帖子 5313 主题 5273 精华 3 分享 0 好友 163
TA的每日心情 开心 2021-8-11 17:59
签到天数: 17 天
[LV.4]偶尔看看III
网络挑战赛参赛者
网络挑战赛参赛者
自我介绍 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
群组 : 2018美赛大象算法课程
群组 : 2018美赛护航培训课程
群组 : 2019年 数学中国站长建
群组 : 2019年数据分析师课程
群组 : 2018年大象老师国赛优
' @) V& |% F& E1 \
这个数据库神器真是太diao了
/ ~; y! q/ t# P- u 前言
" a8 `# j, Z J Y) B( C) @; t 对于开发、测试、DBA、运维来说,数据库再熟悉不过了。
& ~2 u9 b& m. y- _5 A: b : m8 K# g" ?2 t; e! h" n5 P
* w& q$ D( T) V3 e
很多时候,我们需要在本地电脑上,直接连接开发或测试环境的数据库,方便对数据进行增删改查。当然很多数据库都提供了自带的客户端,比如mysql的客户端是这样的: $ g, Y( \9 n' q9 u" I
+ x6 h( H7 k- Z1 h( I* V1 L) r5 ]6 w
# J6 ?1 x: K1 Z" _# g* s1 H 5 M2 O; T; ^ t# k1 W J2 {+ _% z: @
9 a) ]6 ?- {1 I- u. R
* s2 L2 K3 C4 S; d% X( | 4 O/ b. V: Z2 X! d+ C" [
用过的人基本都会吐槽,太low了,极其不好用。 7 [8 a; a% a( Q( ^; w% T
1 M* t3 x8 v2 x
7 U% \6 T4 z6 m$ C; m5 x' {% q 写sql语句不方便,没有提示功能,特别是如果sql语句比较复杂,不能格式化,会看得人头皮发麻。 9 m" _2 `# }* }
& l2 D# {" P7 ~$ ~
' w O( E" V* L7 v. v. v 看数据不方便,如果数据比较多,整屏的数据显得有点凌乱。如果字段中包含json格式的数据,基本看不了。 5 Z0 R$ M, o- v: v
6 _1 [$ P; G8 J& _
, t* T* \% i( D( m3 b X
对表的dml和ddl操作,都必须通过命令,低效率,而且容易出错。 $ Y. ]+ J+ o0 q* s$ [+ Q- U
+ E! l8 s9 a1 ^$ }% b
0 ^- z, C3 O3 c5 @0 _ 很难看出表和表之间是怎样关联的。
" K# I0 H7 g2 g5 q
7 ]5 \) z3 P; p4 M" k8 z$ t* q
0 g7 c& y- m. @% S5 W 导入导出数据就更不方便了。 2 n4 ^+ Z* }% O
c( X% n0 v5 h$ k! B/ M p0 j9 u! K6 b& v, r
最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。 0 @) \, n% [ f- W; w' n
BAT大佬写的刷题笔记,让我offer拿到手软 ; E1 k) A) {# W; A/ C( w. C8 B0 o
+ ~6 X! Z4 `9 d, F
/ |* g' x1 C- H- r0 _& Z* } 有没有一款好用的工具,让我们能更高效的操作数据呢?
$ z! {* i$ q3 H
/ z% ~# Y# }& m* Z! ~
0 ]6 J6 M$ ]+ e/ r6 g1 P 这就是今天我要推荐给大家的数据库神器:Navicat Premium。
/ P# T# M. R' ]" { 9 H& I7 G0 k2 [0 L' }' p, j+ m
! [- p2 j9 ~" ~5 e: d# k* O: A 下面我们一起看看Navicat Premium有哪些牛逼的功能。 , p9 o4 L0 L: p
0 H( F5 U! U# h6 v$ ]- {, h
V9 J5 Y c- H1 O, y4 ~ l3 o9 t
1. 支持多种数据库
; R5 ?; q3 U* G1 G8 @4 K; m 在连接数据库之前,我们需要知道Navicat Premium支持哪些数据库。
# ?) S. b; ?5 H! L( z1 Y& j* v
# d. h$ n5 ^6 k$ F / J3 X3 ~: e$ T- z F" M: h
点击工具栏中Connection上的加号:就会弹出如下窗口:从图中它支持7种常规数据库,包括我们经常使用的mysql、sql server、oracle,还有mongodb等。此外,还支持8种数据库云。
% s0 C3 b0 D9 |$ V1 _& ` + h4 U8 P" C. G6 a1 Q0 E3 X
, b3 M) ^! K @8 n+ m5 \ 2. 轻松管理连接 & \) T. ?( J5 v0 h
2.1 连接数据库
. P( C; i# o+ f9 b n- Q 之前我们通过mysql客户端连接mysql服务端时,需要通过命令行,比如:
+ ]6 h5 `5 p- L
3 J7 l9 C& ]- X2 {- e" ] ' R f: l p- ~& J/ G
mysql -h127.0.0.1 -uroot -p123456; + |: C, A& y6 e6 m+ _
6 l/ ~) ]( S, [5 X* \ : v* @3 a3 D4 H3 f. |
1
1 t/ i0 g4 J) M# o3 M 2
$ o( I) {2 Z+ Z4 G! `5 D 每次都需要输入连接地址、用户名、密码,不觉得烦吗?
+ @. e+ R7 ? ` ~ I
, K' [' Z7 _& |
- Z4 Z5 _$ v/ @) V- y# ?! p4 ] 恭喜你,Navicat Premium自带保存密码的功能:只需第一次连接数据库时配置:Connection Name、Host、Port、User Name,然后勾选 Save password即可。 0 t, f- V) E1 H1 O# k, @1 G
; I6 [$ T f- L& U
+ [' j" i8 G2 J5 [9 s7 v 以后就能通过界面双击Connection Name,直接访问数据库了:nice。
6 @- |: V! i! C8 I ; ~% z' S; ~, v
7 ?! k8 A a9 a+ w3 ]) O/ L# i D; I! _" V
2.2 显示指定实例 ) S) C8 s! g; e8 O6 _$ o
有时候,同一个数据库连接下的实例很多,但只有少部分是我们真正需要关心的。我们想要过滤出这部分我们关心的实例,该怎么做呢?如果每次都从上百个实例中找一个,会不会有点太浪费时间了? + a: N R6 f: q" |
2 @* t! w" p- s, A2 Q1 A$ H
6 I1 Y) ~- E. l
这时可以在databases tab页下勾选 Use custom database list:勾选我们想看到的数据库实例。
9 m6 [8 Z' P; W5 ~ ( ?: U8 g$ K# Q9 z5 a0 g, x
+ l) d: ^; `* v7 S- ^
这样重新访问数据库连接的时候,会发现左边实例列表中只展示了,我们选择的数据库实例。
$ y% U' @/ P1 @' r * `, Y& g7 `7 a% y
! W* G8 x3 ]+ y! q& t# S
3. 方便查询表信息 + T: y" ~- l" `
以前我们查看某个数据库实例拥有哪些表,一般通过如下命令: , U% p/ D* A: k3 k" s
2 o5 l2 P- K" q; M $ [7 A( ]2 |% f& u
show tables;
; K9 P# T" a& b( ?; B0 n
" L' R& K2 h9 D/ Z. p& _ 7 ^: Z( Z8 s5 b4 A+ j# Q
1
M/ g( N* |& k+ M0 V: m& W 2
* l9 D' f; C5 G4 C( O
& I H0 `% c& t5 T4 P# {1 S* ^4 Q3 m
* H1 I7 G8 ?: m6 k
) Q$ x# S: K* @; c; l1 ~! p + P S3 y9 i0 g) L
不好意思,那已经是过去式了。
1 t1 v2 {& {/ z+ g" _4 E
& A. M! p# M8 D# V5 U q 2 l; B& ?( ~* F: ?9 j6 h: ~
现在只需双击Tables节点,展开即可。除此之外,还能非常直观的看到试图、函数、事件、备份等功能。 ; a `& ^: n1 }# y3 _
1 t2 I7 P1 v2 x3 \' C( W
6 T8 s; D% L ?# W: s 如果想看数据,选中双击某张表就可以了:
. ]1 i! t M$ s: ^& } $ @; w0 E$ A4 V/ w, ?4 ]
" y& K9 W' r, O- o r2 g# q
如果想看表信息,可以通过右边的窗口:里面能清楚的看到表中的这些信息:记录行数、数据占用磁盘空间的大小、存储引擎、创建日期、修改日期、字符集等。
2 ~+ K& y5 \+ J0 Z! @
% g( L3 a2 o! n) g1 g, ^
1 a0 H0 v+ }8 U% i. T 如果想看表结构,只需切换成ddl选项:这样就能看到该表完整的ddl语句。
7 x/ K1 k* E( N* p 7 p: m4 |+ T& A. `8 p/ O2 Y
/ Z: b. u' U" Z9 D+ h, p
比如:之前已经在dev环境创建了表,通过该功能快速获取ddl语句,然后复制到st环境执行,简直太棒了。 6 A9 S! x' e- O! ]7 \9 o
. K) {/ n9 Y& s# U 2 J$ i; }8 B2 A" \' o
当然我们通过如下命令: ' o1 ]& `) X8 K! E, c) S
8 i c- D# j, b# s( A' { k
' I, L+ q$ [2 L% i0 K ~) ] show create table jump_log;
1 i" t7 G- s; v/ b4 R
: q1 p8 t# U, x9 y % _# N+ N4 `# m6 Z1 C% S1 e7 @* d
1 6 j7 K/ J+ U5 Y/ X
2
, w; d. x6 s* p$ L7 L. j2 B 也可以看到同样的效果,但是在Navicat Premium中只需动动鼠标就能搞定,确实更方便。
% Q3 M5 b7 m8 `7 K4 D
% |" X5 R7 E3 F0 w- g1 r* h' W+ ?
( V2 d a7 b! B 4. 数据库实例的ddl操作 ' ?: R, o, y3 O: x" k: m f
通常情况下,我们对数据库的ddl操作,其实不多。创建了数据库,很少去修改和删除。这些操作虽说有点食之无味,但确实弃之可惜。 & H. s$ a8 A+ W$ }
- K. y$ [5 ~3 ?# |. d j
- j' ~# h0 X$ I( o v* I4 H' f: H 右键单击某个数据库实例,就会弹出如下窗口:
" q- o) [1 Y \% F8 f. \% z * U! ?6 Y8 R: p6 E3 r' O
/ z! O* I/ f9 U9 c) r+ X s 里面包含了数据库实例的:创建、修改和删除操作,同时还能打开、关闭该实例。
/ L' N' r8 V7 l4 f$ u- b$ ` T& c4 K j. N$ X: f
' [7 C4 j/ ~' ^) j! Z 4.1 数据库的创建和修改 $ k; }7 {7 j+ l! e
创建和修改实例时,只需要输入以下三个字段: : j, Y1 o# U; m0 f+ H3 p
5 W1 }2 E$ N# H- M* ?! ~& o0 C 1 @& O' m! |; t& Q$ J, Z
4.2 mysql客户端 " \; I& ?: Z* ^- {0 N) i
在右键单击某个数据库实例,出现的弹窗中如果选择Console,能调出mysql客户端:
& H: h) ?0 r9 J2 D0 ?: v3 U) R
5 V0 w2 H: ~$ f, Q ) f! G/ I' c3 r; \: [9 ]) d
4.3 执行外部脚本 8 v! K- l; V0 V0 H9 R Z
如果选择Execute SQL File,能执行外部的sql脚本: 4 Y9 [7 W/ @, I! J
. X$ }0 D8 u( e( A/ g
$ m2 Y) b m! I9 o; j. i) ^ 4.4 表导出 2 P- Q: Y2 a; \! l5 l, c% u
如果选择Dump SQL File,能导出所有表的数据:目前支持两种: 4 @& A& H9 G2 t9 K- T* V
/ J8 g- P! W9 R( D8 Z - v1 F6 }7 {: A) v7 @% r, Q
导出表结构 和 数据
1 \( g8 _3 H2 v! X) u! u$ h( l3 U1 v
+ n( Q9 @0 M5 }; Q( v1 \ 2 i: u3 f) a9 p1 s, @, i( c0 r9 }
只导出表结构 + r# W' u% j# p
1 s. u. W* J6 K- h" h! k% V7 f / U. V! Y. X, X& r# s' }
最终会导出到xxx.sql文件中:从图中看出,它最终生成的是能直接执行的sql脚本,如果选择的是Structure + Data,则它里面既包含表的创建语句,又包含数据初始化语句。而如果选择的是Structure Only,则sql脚本中只会包含含表的创建语句。 ( {2 ?3 S9 c: o) E" l% C" V
! K. p. H0 V) F6 P" U7 q
/ {2 g0 F; S% z* l( D2 j" Z
4.5 打印数据库 # h9 @- V0 C4 m, z7 y
如果选择print database,能生成pdf文件:里面包含了表的信息,方面打印出来。
0 N2 {( B- P6 l" e/ g G, S! z) K0 l. T. i$ e
. Q/ }" o/ ]! G( g 4.6 转换model
% r9 B9 o- X" b! @' T/ k2 X4 N 如果选择Reverse Database To Model,能弹窗表的model窗口:表的名称、表的字段,已经表之间的关联关系,通过这个model窗口能够非常直观的看明白。这个功能有点强喔。 4 `& ^. U# p: d9 ?2 D% [! A5 V
7 z# D) @& | p
8 @- \. f2 F6 A V( P! _8 h$ K7 [ 4.7 找到数据
' S" l, h/ }% C 如果选择Find in database,能从整个数据库实例的所有表中,查找某个关键的数据:比如由此有个需求,要将数据库中所有的域名A,替换成域名B。以后我们需要查所有表的所有字段,是否包含域名A,然后才能找出有哪些表需要修改数据,相当麻烦。但如果有了Navicat Premium的这个查找功能,能够迅速减少我们的工作量。哇塞,太厉害了吧? ! o9 d& }" X- ?9 p
- C1 k4 ^; H& Q/ ~
* w1 x2 y, |7 h 5. 表的ddl操作 ( ~: b, R9 K) j+ {8 p Z0 {% A& i
相对于数据库实例的ddl操作,表的ddl操作使用频率会更高一些。选中某张表右键点击一下,就会弹窗如下窗口: % Y8 i' O& g: ~( s
$ g' m. d; c {; b6 n
, g' S* Y- W8 h1 V
如果选择Open Table,会弹出查看数据的窗口:这个功能后面会详细说。 h) m, o: s4 l* ^$ `7 |
6 S7 d+ d6 ~. q" c/ z1 p. e
! P* w7 b' ~' ]+ ?8 o+ [7 b& q 5.1 表的设计窗口 , P" @4 s& K9 K7 k) W
如果选择Desgin Table,会弹窗表设计窗口,默认的tab是Field:在这个窗口中我们能定义表的字段,包含:字段名称、字段类型、字段长度、字段精度、是否允许为空、是否主键、字段描述、设置默认值等等。
5 [3 w+ y) ?3 g3 t7 Z0 J3 V
: S' _& H$ u9 }1 A
4 W" t: M( E- e0 i2 { 它支持的字段类型有:实在太多了,列举不完。
1 N% H! u/ K+ \) } ! I1 Z- Q$ F) i9 j
! K$ D7 L% l. D5 _* c( M/ G% ^
如果在该窗口中选择Index tab页,则会弹出索引设计窗口:在这个窗口中我们能定义:索引名称、所属字段、索引类型、索引方法和索引描述等。此外,还可以建立:全文索引、普通索引、唯一索引等多种索引。
8 i3 w% y+ [( T# N! O* \ : y8 C2 r- L$ l& T" f/ {4 E
7 [: v2 j+ g: m1 y j: d 如果选择Options tab页,则会弹窗表信息的窗口:可以设置存储引擎、字段增长基础值、字符集等属性。 , H7 N2 G; [; i! l8 ~% \: ?
, T! W6 W8 N( h# s, t! E , [5 f- w4 z o! M1 s0 K
Comment选项主要是为了描述一下该表的功能,由于过于简单,此处省略截图了。
7 Z: c7 B6 o) G 5 d {' X; \# v
5 J! p+ M% O+ }; {2 g& s( A 如果选择SQL Preview,也能看到该表完整的ddl语句: $ U* u& G, b' h9 ]- j. ^$ ?, ^+ ?
- u1 v$ p# \. w
) n* T! Q% w# ]
) m: s& G s# D
; C& K' o/ D- ~0 m4 T( m9 p
1 n- U! I' y) J5 P ; m2 s% ?: O; s& k" h) j- M* { E
5.2 表的删除
h: g& K( K$ _% O 上面重点介绍的是表的设计窗口,通过它我们能创建和修改表,那么表的删除呢?
/ f! f; p" j, I) Q ) p( V i4 p. W0 r* P
; ?( L1 G% {) u* _) E 主要是通过如下三个功能实现的:
2 L% N; v' G9 y1 E, n
" O( f$ b0 ]0 T. n0 f( c * n+ E! b+ e& C6 p1 c7 J$ L5 ]5 R9 Y& k
Delete Table:物理删除表 ) R8 z# f( S5 O) q
? Z! W. b% z! H7 s) B- [
$ e! @, I( D* n& T% s# Q
Empty Table:清空表中的数据,但表任然保留 $ `: k2 H* e" I" x
- |3 R3 o) Z5 R6 c
/ A5 _- m5 J( `& u( }3 Y7 Y
Truncate Table:逻辑删除表 " l4 H; U- l6 M
+ B8 z5 V1 } {6 b1 x q% z! X% j4 N
5.3 表的复制
9 `0 m" h2 r6 g6 F* U0 [/ ]6 o 有时候,我需要复制某张表,做备份。或者为了节省时间,基于某张已有的表创建新表。如果选择Duplicate Table,会出现如下选项:
( F* ~' I5 |* Y* L+ O. e
. c% B1 |1 a1 }8 s3 L+ l! Q% T
! b, d8 Y# o5 b3 q4 s. j' {* Y 如果接下来选择:Structure + Data,则表示复制表结构和数据,数据库会自动创建一张新表:
2 }& b3 h0 D' w1 s
0 k7 n2 m$ x. M) A# V : `% i8 m5 K7 o. }
3 ]5 I* S5 i* b7 D8 Y) i5 y
- p+ S$ M7 [. r' {" i7 ?2 k I - V, F) o/ x! w; q
, _2 S% J1 R/ X/ @; G& C* f
里面包含的数据跟原表一样: ; o& A# W/ c( L9 o$ M
$ w$ i3 k. I( L$ e3 }$ h# i( C' H
1 n; ~8 f4 E3 Q, t2 U1 a+ P 如果选择:Structure,则只复制表结构,数据库也会自动创建一张新表,但数据是空的:
I5 g$ x1 ]5 q- r$ V; E5 F+ T 6 }- e3 E# W4 W1 [: P# l
. ^: g" G4 k( l/ U9 o 5.4 数据导入 & v2 z+ @0 x3 r- ~. p* q/ T
在实际工作当中,我们经常需要导入数据。
* D9 j6 i# t4 |' J5 b$ h. R / t8 F2 R& Z1 q7 |* h; Q- ?! T
! f0 U7 M" s8 Y 比如有一批新的用户数据需要导入数据库,这时可以选择Import Wizard,会弹如下窗口:目前Navicat Premium允许导入文件格式包括:dbf、db、txt、cvs、xls、xlsx、xml、json等。
9 n; F* c0 F, y+ `1 _( V! k
8 c" @! G- t" ]# U & {+ y5 G2 s W9 _% q
我们以excel文件为例,假设现在接到需求,有这样的数据需要导入数据库:
+ |4 o P% J: x7 Y ^* i 3 G* v4 F% u% T# U" N6 G; [
, P) h8 e9 r! M+ L9 _* L
可以新加一张表字段跟其对应:然后选择刚刚的excel文件上传:当然还需要选择该excel文件中的sheet,对应具体上传到哪张表:接下来,还需选择excel文件的字段相对应的表中的字段:然后发现已经导入成功:查一下表,已经有数据了:
- x% x( r) o1 I% O5 {; G2 O
; z2 A) m5 m" l7 L: u' X ]
b7 {9 a- q* y( N" r7 D0 Z 5.5 数据导出 I( t/ X5 i$ A- r& }, A) `
在实际工作当中,数据导出的需求偶尔也会遇到。
/ C8 g+ l- v/ `$ j% E7 l " X a, W' z {" M. |; M
7 x+ |* C2 W& I6 `; ~/ |
这时可以选择Export Wizard,会弹如下窗口:我们选择导出到SQL script file中,然后会弹窗如下窗口:
) {4 Q1 R1 K/ S
, N9 Q1 C0 z+ S" ?0 G
3 _. x+ X ]% k8 K7 W$ l. M 可以选择要导出的表和对应的sql文件名称。
2 N4 V/ Z9 L; [ y- J
. `8 q; e5 f4 a7 M1 i. ^) L
" B e- ^8 L! ^; i! T 接下来,选择要导出的字段,允许只导出某些指定字段:然后发现已经导出成功:在这个路径下多了一个category.sql文件:其内容是很多insert语句,这不是我们一直想要的初始化脚本吗?
' h2 N. x' ]6 y% n2 ?- L
1 t$ A p4 w# D. w
" s. H! o3 _! S( K3 B& G. v 6. 表的查询操作 : n9 O' \) E; H) r p; v
查询操作可能是数据库中用得最多的操作,因为绝大多数功能,都是读多写少。 % F! [# l* f- m% X7 K1 D' Z6 X
: n$ G3 k0 T1 M5 g8 y! h
3 C7 J: M2 |1 |$ u" h N( _ 选中某张表,点击工具栏中的New Quer按钮,就会出现右边查询窗口:
$ u5 K& I0 p" d8 w& H+ U- ~: a }' h
. Y, m0 P( t7 e2 o! Q7 P
0 V9 r" @$ O9 w& s 6.1 执行sql语句: 6 K( p' V8 |' \7 ^2 Y4 d
在窗口中可以选择一个数据库连接 和 数据库实例:在中间的空白区域,我们能编写sql语句:点击图中的类似箭头的按钮,就能执行该sql,执行结果会在下方的Result中显示出来。
9 e% M$ J3 y& Z' u
% I9 g4 G; T# P1 d! p
8 M \7 S! Z! Q8 v, K5 O 虽说该窗口的名称是查询窗口,但并非仅仅支持查询操作,还可以执行其他操作,比如:update、delete、alter、drop等等。
9 S1 e! h2 f- p$ E2 ]+ [9 f 5 ]3 D" ~& F7 c2 y. ?0 g/ ^
" a% S X! B& H 6.2 保存sql语句: 5 C, R1 z9 k' Y e
有时候我们新建了一个查询窗口,里面写了很多sql语句,但由于急着关电脑,又想保存这些sql,避免丢失重写的情况发生。 8 b3 T; C6 G1 F. B5 \
' K ]" e5 I# B( R
$ j7 O$ w: ^! ~) Q# f! g/ T+ Q 这时我们如何保存该sql语句呢?只需点击上图中的保存按钮。
! b. u0 s$ p' W- o, J& y+ P7 B: w
6 t# l/ ~$ c) Q4 q- r$ C " i4 V) P' ]; l1 d& z2 m0 j
这样以后就能在Queries中非常方便得找到该sql了: 6 g& q F% S8 e a0 \0 m: U# H1 B
3 Z! O# l5 j$ [
; s. \5 u/ ^% b4 G
6.3 快速关联表 i, F( F- f' d( j
我们写查询sql如果涉及到多张表的时候,通常需要通过join或者子查询做关联。
# \ z! ~, N* U9 U% j! B7 p 5 H: F7 v: I( X! B
' z: E) f5 X1 h1 w2 E& R
这种方式不是说不行,但我想说的是,如果需要关联的表太多,这样sql效率比较低。 * p W) ~* S, t6 w5 ^
! k8 z, q* T( o
" W& S' j( }: @' ?0 I/ }1 N- \ 难道还有更高效的方式? ! M, t& A7 i, I% l% B2 t
4 M$ y3 J9 I+ H$ c* b7 N1 n0 E& S
' j- u3 {! T0 J# H0 ^
点击下图中的按钮:
( T' r& m8 v! z% L& @! C8 a / p( y& U- U9 Q, K9 Y+ R, ^
) h$ S$ m2 m& R 会弹窗如下窗口:在该窗口的左边选择需要做关联的表,选择完之后会表会自动出现在右边窗口中。 " {5 Z( H2 @5 G- Z! n$ v
/ r% k7 e- }( P' \. T6 J, ? 1 P) k9 B0 I2 h# d
然后在右边窗口中选择做的关联:点击ok之后,会自动生成sql语句:
# O% P) p9 h8 H7 V* }8 | ) g0 X3 T& }! p; `6 l$ i4 p! p( @
# z7 \! P. g- K' @, G5 z+ t 太牛逼了。
( o. b% h) h5 k/ T 6 j: }: o5 L7 X' W# K
* a. {% a! o1 @# v* ^
6.4 格式化sql语句
0 A3 P% |" w( B8 q 有时候,我们写的sql很长,而且比较复杂,一眼根本没办法看出层次结构。虽说该sql能够正常运行,但每次看到它的时候,心头可能会一紧,比如:
_8 h7 Y2 C' ~: A. e 7 c& k% g4 u+ }9 v- @" f
2 b' }( Y) e* x 看起来非常不直观,这时可以点击下图的按钮优化该sql:优化后的效果如图:感觉瞬间优雅多了。
; J) q" p9 X# {9 n1 z& _5 ^ P* a# F8 _
; Y% w7 R9 w1 @" J2 n( N5 E+ y4 S
; w) {) S. B" J X5 R 6.5 执行计划 4 o! c9 f) j7 G' }# e5 {
有时候,我们想查看某条sql的执行计划,通常情况下需要在该sql语句前,加explain关键字,比如:
$ ^- d2 l. T/ M9 a / q) O! G2 X# S2 g0 B3 I5 f5 C. E
* ] k" ^2 \ D' G
这样执行后,就能看到执行计划了: + q4 A& q2 l; z% w, C2 H
; H4 ^% I/ H8 d
: I3 K1 D) a7 a# A 但还有更简单的方法,就是在执行sql之前,点击下图中的按钮:我们看到没有加explain关键字,但同样出现了执行计划。真的帅呆了。
' x8 F' c/ U9 `3 }* L8 G * V* k& l+ d2 V" p
+ e: \+ G4 `8 w8 R
6.6 切换展示方式 ( l) ^3 u; }" o
我们查询出来的数据,默认是用表格的方式展示的。如果字段中的内容非常少,这种方式还是比较好的。但如果某个字段的内容很多,比如extra字段是json类型的,里面层次结构很复杂:该字段展示的数据显示不太完整。
+ ?+ T! p2 j- A; H0 f' o/ j) P ! b1 [! i/ D6 m |5 t n" E
1 i0 U/ l1 j8 X8 ~
这时可以切换到form view模式:
1 h" q# ^3 |! h( V) x / C; Y- T, z5 p
8 T1 s, s/ J. x2 z
然后在弹窗的窗口中点击下图中按钮:就会在下方出现完整的数据了。 4 H G3 j5 v9 ^. K$ ]* }
! Z- d! S/ V a
S( f) C! A% [+ s 6.7 新增和删除数据 4 y% D- u( }9 W
我们在新增数据时,只需点击下图中的按钮:就会在一行空数据,然后在里面填值即可。 ' d: \" Q( E4 `7 g. T/ n& A r
6 ]% T/ w8 Q! Y' x4 n/ h/ c
8 Y% ], f' m) b9 k3 P) P- u5 I 同样,我们在删除数据时,只需选中要删除的数据,然后点击下图中的按钮,就能轻松搞定:当然为了安全考虑,会先弹出一个确认窗口。 ( o4 T( ^$ y! ?9 K$ E) `
9 k3 e" p' }/ g. j
) L9 O3 T/ R9 G( }% b4 i 最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。
; `( r$ f" l6 P8 _ i BAT大佬写的刷题笔记,让我offer拿到手软
3 Z4 H8 w8 f! J. x, ~" { ————————————————
- E) \0 b" m- Z e, `8 Z Y 版权声明:本文为CSDN博主「苏三说技术」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
! d z$ ~ o e ^ 原文链接:https://blog.csdn.net/lisu061714112/article/details/118708369 % K& j% U. ~9 x7 v- B0 w# X0 j
5 j8 \: \/ K7 P. v! n- ~
8 \1 g0 ]" D* w+ ^& I1 R& C
zan