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