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

常见的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

表创建

使用语法创建数据表

语法

sql 复制代码
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 性别字段是有默认值,默认为男

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

sql 复制代码
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)范围 描述
TINYINT 1byte (-128,127) (0,255) 小整数值
SMALLINT 2bytes (-32768,32767) (0,65535) 大整数值
MEDIUMINT 3bytes (-8388608,8388607) (0,16777215) 大整数值
INT/INTEGER 4bytes (-2147483648,2147483647) (0,4294967295) 大整数值
BIGINT 8bytes (-263,263-1) (0,2^64-1) 极大整数值
FLOAT 4bytes (-3.402823466 E+38,3.402823466351 E+38) 0 和 (1.175494351 E-38,3.402823466 E+38) 单精度浮点数值
DOUBLE 8bytes (-1.7976931348623157 E+308,1.7976931348623157 E+308) 0 和 (2.2250738585072014 E-308,1.7976931348623157 E+308) 双精度浮点数值
DECIMAL 依赖于M(精度)和D(标度)的值 依赖于M(精度)和D(标度)的值 小数值(精确定点数)

示例:

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

字符串类型

类型 大小 描述
CHAR 0-255 bytes 定长字符串(需要指定长度)
VARCHAR 0-65535 bytes 变长字符串(需要指定长度)
TINYBLOB 0-255 bytes 不超过255个字符的二进制数据
TINYTEXT 0-255 bytes 短文本字符串
BLOB 0-65 535 bytes 二进制形式的长文本数据
TEXT 0-65 535 bytes 长文本数据
MEDIUMBLOB 0-16 777 215 bytes 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215 bytes 中等长度文本数据
LONGBLOB 0-4 294 967 295 bytes 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295 bytes 极大文本数据

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

示例:

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

日期时间类型

类型 大小 范围 格式 描述
DATE 3 1000-01-01 至 9999-12-31 YYYY-MM-DD 日期值
TIME 3 -838:59:59 至 838:59:59 HH:MM:SS 时间值或持续时间
YEAR 1 1901 至 2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00 至 9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 4 1970-01-01 00:00:01 至 2038-01-19 03:14:07 YYYY-MM-DD HH:MM:SS 混合日期和时间值,时间戳

示例:

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

使用图形化工具创建表

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

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

编辑表结构的相关信息

表查询

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

  • 查询当前数据库所有表

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

ini 复制代码
show tables;
  • 查看指定表结构
sql 复制代码
desc 表名 ;#可以查看指定表的字段、字段的类型、是否可以为NULL、是否存在默认值等信息
  • 查询指定表的建表语句

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

sql 复制代码
show create table 表名 ;

表修改

添加字段

语法

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

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

sql 复制代码
alter table tb_test add  qq  varchar(11) comment 'QQ号码';

图形化操作

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

修改数据类型

语法:

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

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

sql 复制代码
alter table tb_test modify qq varchar(13) comment 'QQ号码';

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

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

图形化操作:

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

删除字段

语法:

sql 复制代码
alter table 表名 drop 字段名;

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

sql 复制代码
alter table tb_emp drop qq_num;

图形化操作:

修改表名

语法:

css 复制代码
rename table 表名 to  新表名;

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

css 复制代码
rename table tb_emp to emp;

图形化操作:

表删除

语法:

sql 复制代码
drop  table [ if exists ]  表名;

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

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

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

图形化操作:

数据操作DML

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

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

增加(insert)

insert语法:

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

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

sql 复制代码
-- 向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字段插入数据

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

图形化操作:

修改(update)

update语法:

ini 复制代码
update 表名 set 字段名1 = 值1 , 字段名2 = 值2 , .... [where 条件] ;

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

bash 复制代码
update tb_user set name='玛卡巴卡' where id=2;

图形化操作:

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

删除(delete)

delete语法:

sql 复制代码
delete from 表名  [where  条件] ;

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

ini 复制代码
delete from tb_user where id = 2;

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

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

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

相关推荐
大拇指的约定1 小时前
数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(三),单表查询
数据库·mysql·oracle
银氨溶液2 小时前
MySql数据引擎InnoDB引起的锁问题
数据库·mysql·面试·求职
IvorySQL2 小时前
济南站活动回顾|IvorySQL中的Oracle XML函数使用示例及技术实现原理
xml·数据库·sql·postgresql·oracle·开源
ON.LIN3 小时前
Hadoop大数据入门——Hive-SQL语法大全
大数据·数据库·hive·hadoop·分布式·sql
unix2linux4 小时前
Parade Series - SHA256
linux·python·mysql·shell
好好学习的人4 小时前
SQL第12课——联结表
数据库·sql
hefaxiang5 小时前
【MYSQL】mysql约束---自增长约束(auto_increment)
数据库·mysql
计算机学姐6 小时前
基于微信小程序的调查问卷管理系统
java·vue.js·spring boot·mysql·微信小程序·小程序·mybatis
逸巽散人16 小时前
SQL基础教程
数据库·sql·oracle
月空MoonSky16 小时前
Oracle中TRUNC()函数详解
数据库·sql·oracle