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