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