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