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