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