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