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