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