IDEA中居然有碾压Navicat的数据库管理工具

3,957 阅读10分钟

常见的Mysql图形化管理工具

在命令行当中来敲SQL语句非常不方便!因此,在实际项目开发当中,我们都会借助于现成的图形化管理工具来操作数据库。

目前MySQL主流的图形化界面工具有以下几种:

作为一个刚学习java的菜鸡,笔者对Navicat Premium甚是喜爱!

其实,IDEA中内置了一个Mysql数据库图形化工具,用起来极其丝滑,完美替代Navicat Premium!正经开发谁还用Navicat啊!

IDEA中的Mysql图形化工具

DataGrip是JetBrains旗下的一款数据库管理工具,是管理和开发MySQL、Oracle的极佳解决方案。DataGrip已经集成到了 IDEA当中,因此,我们可以使用IDEA来作为一款图形化界面工具来操作Mysql数据库。

IDEA的Mysql图形化管理工具在哪

IDEA的图形化管理工具非常好找,点击编译器侧边栏的【Database】就可以快速的打开图形化管理面板!

连接数据库

1、连接数据库

点击图形化工具的+号(创建按钮),然后 选择Data Source、MySql

2、输入相关信息

3、下载MySQL连接驱动

第一次连接数据库,需要下载相关的连接驱动

4、测试数据库连接

6、保存配置

测试通过后,点击ok即可保存配置,进入数据库。

默认情况下,连接上了MySQL数据库之后, 数据库并没有全部展示出来。 需要选择要展示哪些数据库。具体操作如下:

数据库操作DDL

创建数据库

创建一个数据库非常简单,鼠标右键点击【new】按照下图操作即可

有了图形化界面工具后,就可以方便的使用图形化工具:创建数据库,创建表、修改表等DDL操作。

其实工具底层也是通过DDL语句操作的数据库,只不过这些SQL语句是图形化界面工具帮我们自动完成的。

查看所有数据库

查看所有的数据库,首先可以打开图形化管理工具的控制台,然后输入指令show databases ; 接下来选中这条指令,最后点击执行按钮即可。

数据表操作DDL

表创建

使用语法创建数据表

语法

create table  表名(
  字段1  字段1类型 [约束]  [comment  字段1注释 ],
  字段2  字段2类型 [约束]  [comment  字段2注释 ],
  ......
  字段n  字段n类型 [约束]  [comment  字段n注释 ] 
) [ comment  表注释 ] ;

案例:创建tb_user表

建表语句

新建的tb_user表,没有数据,我们可以点击+号添加数据

约束

约束就是作用在表中字段上的规则,用于限制存储在表中的数据。保证数据库当中数据的正确性、有效性和完整性。在MySQL数据库当中,提供了以下5种约束:

注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。

在之前的tb_user表中,应该有以下限制

  • id 是一行数据的唯一标识
  • username 用户名字段是非空且唯一的
  • name 姓名字段是不允许存储空值的
  • gender 性别字段是有默认值,默认为男

我们的建表语句,就应该改为

create table tb_user (
    id int primary key comment 'ID,唯一标识', 
    username varchar(20) not null unique comment '用户名',
    name varchar(10) not null comment '姓名',
    age int comment '年龄',
    gender char(1) default '男' comment '性别'
) comment '用户表';

主键自增:auto_increment

我们删除之前的数据表,然后重新执行建表命令即可

数据类型

在上面建表语句中,我们用到了int 、varchar、char,MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

数值类型

类型大小有符号(SIGNED)范围无符号(UNSIGNED)范围描述
TINYINT1byte(-128,127)(0,255)小整数值
SMALLINT2bytes(-32768,32767)(0,65535)大整数值
MEDIUMINT3bytes(-8388608,8388607)(0,16777215)大整数值
INT/INTEGER4bytes(-2147483648,2147483647)(0,4294967295)大整数值
BIGINT8bytes(-263,263-1)(0,2^64-1)极大整数值
FLOAT4bytes(-3.402823466 E+38,3.402823466351 E+38)0 和 (1.175494351  E-38,3.402823466 E+38)单精度浮点数值
DOUBLE8bytes(-1.7976931348623157 E+308,1.7976931348623157 E+308)0 和  (2.2250738585072014 E-308,1.7976931348623157 E+308)双精度浮点数值
DECIMAL依赖于M(精度)和D(标度)的值依赖于M(精度)和D(标度)的值小数值(精确定点数)

示例:

年龄字段 ---不会出现负数, 而且人的年龄不会太大
age tinyint unsigned
	
分数 ---总分100分, 最多出现一位小数
score double(4,1)
  • tinyint: 这是一个很小的整数类型。在MySQL中,TINYINT可以存储从-128到127的整数。
  • unsigned: 这个属性表示这个字段只能存储非负整数。所以,如果你使用这个字段来存储年龄,那么它就不能存储负数。
  • double(4,1): 这是一个双精度浮点数类型。
  • (4,1): 这里的数字表示了数字的精度和范围。第一个数字4表示总位数(包括小数点两边的数字),第二个数字1表示小数点后的位数。

字符串类型

类型大小描述
CHAR0-255 bytes定长字符串(需要指定长度)
VARCHAR0-65535 bytes变长字符串(需要指定长度)
TINYBLOB0-255 bytes不超过255个字符的二进制数据
TINYTEXT0-255 bytes短文本字符串
BLOB0-65 535 bytes二进制形式的长文本数据
TEXT0-65 535 bytes长文本数据
MEDIUMBLOB0-16 777 215 bytes二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215 bytes中等长度文本数据
LONGBLOB0-4 294 967 295 bytes二进制形式的极大文本数据
LONGTEXT0-4 294 967 295 bytes极大文本数据

char 与 varchar 都可以描述字符串,char是定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关 。而varchar是变长字符串,指定的长度为最大占用长度 。相对来说,char的性能会更高些。

示例:

用户名 username ---长度不定, 最长不会超过50
username varchar(50)
	
手机号 phone ---固定长度为11
phone char(11)

日期时间类型

类型大小范围格式描述
DATE31000-01-01 至  9999-12-31YYYY-MM-DD日期值
TIME3-838:59:59 至  838:59:59HH:MM:SS时间值或持续时间
YEAR11901 至 2155YYYY年份值
DATETIME81000-01-01 00:00:00 至 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 00:00:01 至 2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS混合日期和时间值,时间戳

示例:

生日字段  birthday ---生日只需要年月日  
birthday date
	
创建时间 createtime --- 需要精确到时分秒
createtime  datetime

使用图形化工具创建表

借助于图形化界面来创建表结构,这种创建方式会更加直观、更加方便。

我们选中要创建表的数据库,鼠标右键

编辑表结构的相关信息

表查询

IDEA中的数据库图形化管理工具中,查询操作非常容易

  • 查询当前数据库所有表

点击数据库下面的tables或者输入如下指令

show tables;

  • 查看指定表结构
desc 表名 ;#可以查看指定表的字段、字段的类型、是否可以为NULL、是否存在默认值等信息

  • 查询指定表的建表语句

鼠标右键一张表,点击【Go to DDl】或者输入

show create table 表名 ;

表修改

添加字段

语法

alter table 表名 add  字段名  类型(长度)  [comment 注释]  [约束];

案例: 为tb_test表添加字段qq,字段类型为 varchar(11)

alter table tb_test add  qq  varchar(11) comment 'QQ号码';

图形化操作

鼠标右键需要修改的表名,点击【Modify Table】

修改数据类型

语法:

alter table 表名 modify  字段名  新数据类型(长度);
alter table 表名 change  旧字段名  新字段名  类型(长度)  [comment 注释]  [约束];

案例:修改qq字段的字段类型,将其长度由11修改为13

alter table tb_test modify qq varchar(13) comment 'QQ号码';

案例:修改qq字段名为 qq_num,字段类型varchar(13)

alter table tb_tesp change qq qq_num varchar(13) comment 'QQ号码';

图形化操作:

使用图形化工具双击后编辑即可

删除字段

语法:

alter table 表名 drop 字段名;

案例:删除tb_test表中的qq_num字段

alter table tb_emp drop qq_num;

图形化操作:

修改表名

语法:

rename table 表名 to  新表名;

案例:将当前的tb_test表的表名修改为emp

rename table tb_emp to emp;

图形化操作:

表删除

语法:

drop  table [ if exists ]  表名;

if exists :只有表名存在时才会删除该表,表名不存在,则不执行删除操作(如果不加该参数项,删除一张不存在的表,执行将会报错)。

案例:如果emp表存在,则删除emp表

drop table if exists emp;  -- 在删除表时,表中的全部数据也会被删除。

图形化操作:

数据操作DML

DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。

  • 添加数据(INSERT)
  • 修改数据(UPDATE)
  • 删除数据(DELETE)

增加(insert)

insert语法:

  • 向指定字段添加数据
insert into 表名 (字段名1, 字段名2) values (值1, 值2);
  • 全部字段添加数据
insert into 表名 values (值1, 值2, ...);
  • 批量添加数据(指定字段)
insert into 表名 (字段名1, 字段名2) values (值1, 值2), (值1, 值2);
  • 批量添加数据(全部字段)
insert into 表名 values (值1, 值2, ...), (值1, 值2, ...);

案例1:向tb_user表的id,username、name、age,gender字段插入数据

-- 向tb_user表的username、name、gender字段插入数据
insert into tb_user(id,username,name,age,gender)
values (2,'shixiaoshi', '石小石', 18, '男');

案例2:批量向tb_user表的id,username、name、age,gender字段插入数据

-- 批量向tb_user表的username、name、gender字段插入数据
insert into tb_user(id,username,name,age,gender)
values (3,'xiao', '小', 18, '男'),
       (4,'shi', '石', 18, '男');

图形化操作:

修改(update)

update语法:

update 表名 set 字段名1 = 值1 , 字段名2 = 值2 , .... [where 条件] ;

案例1:将tb_user表中id为2的员工,姓名name字段更新为'玛卡巴卡'

update tb_user set name='玛卡巴卡' where id=2;

图形化操作:

注意事项:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。

删除(delete)

delete语法:

delete from 表名  [where  条件] ;

案例1:删除tb_user表中id为2的人

delete from tb_user where id = 2;

• DELETE 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。

• DELETE 语句不能删除某一个字段的值(可以使用UPDATE,将该字段值置为NULL即可)。

• 当进行删除全部数据操作时,会提示询问是否确认删除所有数据,直接点击Execute即可。