navicat/dataGrip in IDEA/vscode/搭建mysql学习环境/beginner利用小皮控制面板(phpStudy)来快速搭建mysql的运行环境/生成测试数据并填充到表
文章目录
- navicat
- dataGrip (database plugin of IDEA)
- IDEA (Ultimate ) plugin for database
- 基本使用
- sql console查询
- vscode(免费系列搭建)
- mysql extension for vscode
- MySQL client
- 插件mysql 插件配置(功能打开)
- mysql shell for vscode
- mysql 补全插件:(mysql autocomplete)
- 浏览数据库/执行脚本
- 最终的工作空间视图
- mysql环境
- 确保mysql环境可用
- 新手安装mysql数据库(phpStudy)
- 环境变量配置
- 检查配置效果
- 安装mysql服务
- 检查/启动mysql服务运行
- 重新检查mysql 服务运行状态
- 说明
- vscode+extension建立链接到数据库
- 在工作空间中编写sql查询脚本/新建sql查询
- 关于mysql (client)插件的版本更新
- 插件适用情况
- 新建一个表
- 执行mysql脚本的方式
- 激活连接到数据库
- 检查当前激活的用户/数据库
- 执行脚本(方式1:inline按钮,执行指定sql 语句块)
- 执行脚本方式2:(command palette):
- Note:脚本执行顺序
- 插件执行快捷键配置:
- 交互操作数据库
- 数据库操作历史(命令记录)
- 查看表中数据
- 查看字段
- 生成测试数据并填充到表
- 测试代码
- create tables:
- 数据插入
navicat
商业软件
- 带有自动补全,连接远程数据库,应有尽有,面配置
- 考虑支持正版
dataGrip (database plugin of IDEA)
- jetbrain家的产品,有社区版?
- 以智能著称
- 可以在IDEA中安装插件来实现功能
IDEA (Ultimate ) plugin for database
点击market进行搜索并安装:
基本使用
- 添加单个数据库到列表中:
添加多个或者全部可用的数据库(模式设定)
这里推荐只将需要操作的书库看添加到工作空间中即可,避免分散注意力
sql console查询
vscode(免费系列搭建)
mysql extension for vscode
MySQL client
- 此插件现已转为收费插件
- 免费版有许多操作限制
- 截至4.6.0版本是免费版(推荐,可以禁止插件自动跟新)
- install and user manual
插件mysql 插件配置(功能打开)
mysql shell for vscode
- MySQL Shell for VS Code - Visual Studio Marketplace
- 允许您使用mysql shell,同时提供补全功能
- 如果要创建多个链接,可能需要重启vscode(bug)
mysql 补全插件:(mysql autocomplete)
浏览数据库/执行脚本
- (可有可无(可以被mysql client )替代)
总体使用体验还是不错的.
最终的工作空间视图
mysql环境
确保mysql环境可用
可以是远程主机的mysql 数据库
也可以是本地的mysql数据库
新手安装mysql数据库(phpStudy)
- 可以考虑使用小皮(phpStudy)来安装并控制数据库
- 界面简单,安装配置迅速
环境变量配置
- mysql:
- 软件安装位置查询:(可以将相关目录配置到环境变量以及将相关路径写入到Path变量,这样方便你在终端中直接输入
mysql
命令直接获取相关的sql服务
- 软件安装位置查询:(可以将相关目录配置到环境变量以及将相关路径写入到Path变量,这样方便你在终端中直接输入
检查配置效果
新开一个终端,执行如下操作验证
- 密码根据在小皮面板中配置的来输入即可
- 未配置情况下,密码可能为空(直接enter
),也可能为root
-
安装mysql服务
- 注意,如果想要使用小皮面板来管理,就不要安装mysql服务
- 如果你不再想依赖小皮面板来管理数据库,那么可以通过
mysqld.exe --install
来安装服务:
(安装完以后如果以下命令无法顺利执行,可以注销(重启)计算机,然后重试)
检查/启动mysql服务运行
- powershell下检查服务:
gsv *sql*
在管理模式下方可启动服务
重新检查mysql 服务运行状态
说明
安装完服务,就无法利用phpstudy来管理数据库了
但是您可以通过删除服务来重新启用phpstudy管理数据库
vscode+extension建立链接到数据库
管理/查看连接
在工作空间中编写sql查询脚本/新建sql查询
- 在工作目录下编写的脚本在运行前需要确保于sql服务建立connection
- 如果已经建立,尝试重载窗口来刷新状态.再尝试执行脚本
关于mysql (client)插件的版本更新
- 2022.mysql client 插件推出收费版,限制了免费版的一些功能
插件适用情况
本插件比较适合操作非空数据库(或者说有可操作的数据库的连接,数据库的可见性和可用性和用户的权限相关)
如果某个连接中的可用数据库为空,那么可以通过如下方式新建一个数据库
- 注意,新建数据库/表的用户需要具有相应的权限!否则创建失败
- 刚授权的用户可能需要重启机器才能够使得权限生效
- 把
[name]
改为你想要的名字
新建一个表
执行mysql脚本的方式
激活连接到数据库
执行sql脚本的时候,需要选择一个连接作为当前的执行对象
- 譬如为数据库创建表,如果没有选定指定的数据库,那么可能失败,也可能在不想要的地方(其他数据库内)创建了表
- 旧版插件的截图:
- 较新版本的选择做了二级分层,先选中连接,在选中数据库
- 默认是以
主机名
@端口名
作为连接选择
- 默认是以
经过功能配置后,可以显示
连接名
检查当前激活的用户/数据库
- 在执行脚本的时候,明确用户和被操作数据库是很重要的
- 查询当前用户
select user();
- 查询当前使用的数据库
select database();
- 切换使用的数据库
use <database_name>;
- 也可以通过下方状态栏选择;
执行脚本(方式1:inline按钮,执行指定sql 语句块)
分段/渐进式执行
执行脚本方式2:(command palette):
执行所有sql查询
Note:脚本执行顺序
- 不同的运行方式在执行脚本中的sql 查询时会产生不同的效果
- 一般的,
run all sql
按顺序执行脚本内容,其他的方式会执行指定段落的sql query;需要考虑上下文(比如某些语句所依赖的表是否被创建完)
右侧按钮也是执行局部代码段(需要考虑上下文)
插件执行快捷键配置:
可以为同一个指令配置多个触发快捷键
(特别是在您的默认快捷键已经被其他命令占用)
或则也可以修改被占用快捷键所绑定的when
条件
交互操作数据库
text Editor+GUI viewer
数据库操作历史(命令记录)
查看表中数据
查看字段
生成测试数据并填充到表
- 生成测试数据前建议刷新一下数据库连接,如果在其他地方修改过数据库字段,可能导致mock时获取的字段滞后,所以建议刷新后再mock
- mock生成的测试数据可能可以调整范围
测试代码
来自sql必知必会
create tables:
########################################
# MySQL Crash Course
# http://www.forta.com/books/0672327120/
# Example table creation scripts
################################################################
# Create customers table
########################
CREATE TABLE customers
(cust_id int NOT NULL AUTO_INCREMENT,cust_name char(50) NOT NULL ,cust_address char(50) NULL ,cust_city char(50) NULL ,cust_state char(5) NULL ,cust_zip char(10) NULL ,cust_country char(50) NULL ,cust_contact char(50) NULL ,cust_email char(255) NULL ,PRIMARY KEY (cust_id)
) ENGINE=InnoDB;#########################
# Create orderitems table
#########################
CREATE TABLE orderitems
(order_num int NOT NULL ,order_item int NOT NULL ,prod_id char(10) NOT NULL ,quantity int NOT NULL ,item_price decimal(8,2) NOT NULL ,PRIMARY KEY (order_num, order_item)
) ENGINE=InnoDB;#####################
# Create orders table
#####################
CREATE TABLE orders
(order_num int NOT NULL AUTO_INCREMENT,order_date datetime NOT NULL ,cust_id int NOT NULL ,PRIMARY KEY (order_num)
) ENGINE=InnoDB;#######################
# Create products table
#######################
CREATE TABLE products
(prod_id char(10) NOT NULL,vend_id int NOT NULL ,prod_name char(255) NOT NULL ,prod_price decimal(8,2) NOT NULL ,prod_desc text NULL ,PRIMARY KEY(prod_id)
) ENGINE=InnoDB;######################
# Create vendors table
######################
CREATE TABLE vendors
(vend_id int NOT NULL AUTO_INCREMENT,vend_name char(50) NOT NULL ,vend_address char(50) NULL ,vend_city char(50) NULL ,vend_state char(5) NULL ,vend_zip char(10) NULL ,vend_country char(50) NULL ,PRIMARY KEY (vend_id)
) ENGINE=InnoDB;###########################
# Create productnotes table
###########################
CREATE TABLE productnotes
(note_id int NOT NULL AUTO_INCREMENT,prod_id char(10) NOT NULL,note_date datetime NOT NULL,note_text text NULL ,PRIMARY KEY(note_id),FULLTEXT(note_text)
) ENGINE=MyISAM;#####################
# Define foreign keys
#####################
ALTER TABLE orderitems ADD CONSTRAINT fk_orderitems_orders FOREIGN KEY (order_num) REFERENCES orders (order_num);
ALTER TABLE orderitems ADD CONSTRAINT fk_orderitems_products FOREIGN KEY (prod_id) REFERENCES products (prod_id);
ALTER TABLE orders ADD CONSTRAINT fk_orders_customers FOREIGN KEY (cust_id) REFERENCES customers (cust_id);
ALTER TABLE products ADD CONSTRAINT fk_products_vendors FOREIGN KEY (vend_id) REFERENCES vendors (vend_id);
数据插入
########################################
# MySQL Crash Course
# http://www.forta.com/books/0672327120/
# Example table population scripts
##################################################################
# Populate customers table
##########################
INSERT INTO customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact, cust_email)
VALUES(10001, 'Coyote Inc.', '200 Maple Lane', 'Detroit', 'MI', '44444', 'USA', 'Y Lee', 'ylee@coyote.com');
INSERT INTO customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact)
VALUES(10002, 'Mouse House', '333 Fromage Lane', 'Columbus', 'OH', '43333', 'USA', 'Jerry Mouse');
INSERT INTO customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact, cust_email)
VALUES(10003, 'Wascals', '1 Sunny Place', 'Muncie', 'IN', '42222', 'USA', 'Jim Jones', 'rabbit@wascally.com');
INSERT INTO customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact, cust_email)
VALUES(10004, 'Yosemite Place', '829 Riverside Drive', 'Phoenix', 'AZ', '88888', 'USA', 'Y Sam', 'sam@yosemite.com');
INSERT INTO customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact)
VALUES(10005, 'E Fudd', '4545 53rd Street', 'Chicago', 'IL', '54545', 'USA', 'E Fudd');########################
# Populate vendors table
########################
INSERT INTO vendors(vend_id, vend_name, vend_address, vend_city, vend_state, vend_zip, vend_country)
VALUES(1001,'Anvils R Us','123 Main Street','Southfield','MI','48075', 'USA');
INSERT INTO vendors(vend_id, vend_name, vend_address, vend_city, vend_state, vend_zip, vend_country)
VALUES(1002,'LT Supplies','500 Park Street','Anytown','OH','44333', 'USA');
INSERT INTO vendors(vend_id, vend_name, vend_address, vend_city, vend_state, vend_zip, vend_country)
VALUES(1003,'ACME','555 High Street','Los Angeles','CA','90046', 'USA');
INSERT INTO vendors(vend_id, vend_name, vend_address, vend_city, vend_state, vend_zip, vend_country)
VALUES(1004,'Furball Inc.','1000 5th Avenue','New York','NY','11111', 'USA');
INSERT INTO vendors(vend_id, vend_name, vend_address, vend_city, vend_state, vend_zip, vend_country)
VALUES(1005,'Jet Set','42 Galaxy Road','London', NULL,'N16 6PS', 'England');
INSERT INTO vendors(vend_id, vend_name, vend_address, vend_city, vend_state, vend_zip, vend_country)
VALUES(1006,'Jouets Et Ours','1 Rue Amusement','Paris', NULL,'45678', 'France');#########################
# Populate products table
#########################
INSERT INTO products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('ANV01', 1001, '.5 ton anvil', 5.99, '.5 ton anvil, black, complete with handy hook');
INSERT INTO products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('ANV02', 1001, '1 ton anvil', 9.99, '1 ton anvil, black, complete with handy hook and carrying case');
INSERT INTO products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('ANV03', 1001, '2 ton anvil', 14.99, '2 ton anvil, black, complete with handy hook and carrying case');
INSERT INTO products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('OL1', 1002, 'Oil can', 8.99, 'Oil can, red');
INSERT INTO products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('FU1', 1002, 'Fuses', 3.42, '1 dozen, extra long');
INSERT INTO products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('SLING', 1003, 'Sling', 4.49, 'Sling, one size fits all');
INSERT INTO products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('TNT1', 1003, 'TNT (1 stick)', 2.50, 'TNT, red, single stick');
INSERT INTO products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('TNT2', 1003, 'TNT (5 sticks)', 10, 'TNT, red, pack of 10 sticks');
INSERT INTO products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('FB', 1003, 'Bird seed', 10, 'Large bag (suitable for road runners)');
INSERT INTO products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('FC', 1003, 'Carrots', 2.50, 'Carrots (rabbit hunting season only)');
INSERT INTO products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('SAFE', 1003, 'Safe', 50, 'Safe with combination lock');
INSERT INTO products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('DTNTR', 1003, 'Detonator', 13, 'Detonator (plunger powered), fuses not included');
INSERT INTO products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('JP1000', 1005, 'JetPack 1000', 35, 'JetPack 1000, intended for single use');
INSERT INTO products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('JP2000', 1005, 'JetPack 2000', 55, 'JetPack 2000, multi-use');#######################
# Populate orders table
#######################
INSERT INTO orders(order_num, order_date, cust_id)
VALUES(20005, '2005-09-01', 10001);
INSERT INTO orders(order_num, order_date, cust_id)
VALUES(20006, '2005-09-12', 10003);
INSERT INTO orders(order_num, order_date, cust_id)
VALUES(20007, '2005-09-30', 10004);
INSERT INTO orders(order_num, order_date, cust_id)
VALUES(20008, '2005-10-03', 10005);
INSERT INTO orders(order_num, order_date, cust_id)
VALUES(20009, '2005-10-08', 10001);###########################
# Populate orderitems table
###########################
INSERT INTO orderitems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20005, 1, 'ANV01', 10, 5.99);
INSERT INTO orderitems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20005, 2, 'ANV02', 3, 9.99);
INSERT INTO orderitems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20005, 3, 'TNT2', 5, 10);
INSERT INTO orderitems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20005, 4, 'FB', 1, 10);
INSERT INTO orderitems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20006, 1, 'JP2000', 1, 55);
INSERT INTO orderitems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20007, 1, 'TNT2', 100, 10);
INSERT INTO orderitems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20008, 1, 'FC', 50, 2.50);
INSERT INTO orderitems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20009, 1, 'FB', 1, 10);
INSERT INTO orderitems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20009, 2, 'OL1', 1, 8.99);
INSERT INTO orderitems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20009, 3, 'SLING', 1, 4.49);
INSERT INTO orderitems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20009, 4, 'ANV03', 1, 14.99);#############################
# Populate productnotes table
#############################
INSERT INTO productnotes(note_id, prod_id, note_date, note_text)
VALUES(101, 'TNT2', '2005-08-17',
'Customer complaint:
Sticks not individually wrapped, too easy to mistakenly detonate all at once.
Recommend individual wrapping.'
);
INSERT INTO productnotes(note_id, prod_id, note_date, note_text)
VALUES(102, 'OL1', '2005-08-18',
'Can shipped full, refills not available.
Need to order new can if refill needed.'
);
INSERT INTO productnotes(note_id, prod_id, note_date, note_text)
VALUES(103, 'SAFE', '2005-08-18',
'Safe is combination locked, combination not provided with safe.
This is rarely a problem as safes are typically blown up or dropped by customers.'
);
INSERT INTO productnotes(note_id, prod_id, note_date, note_text)
VALUES(104, 'FC', '2005-08-19',
'Quantity varies, sold by the sack load.
All guaranteed to be bright and orange, and suitable for use as rabbit bait.'
);
INSERT INTO productnotes(note_id, prod_id, note_date, note_text)
VALUES(105, 'TNT2', '2005-08-20',
'Included fuses are short and have been known to detonate too quickly for some customers.
Longer fuses are available (item FU1) and should be recommended.'
);
INSERT INTO productnotes(note_id, prod_id, note_date, note_text)
VALUES(106, 'TNT2', '2005-08-22',
'Matches not included, recommend purchase of matches or detonator (item DTNTR).'
);
INSERT INTO productnotes(note_id, prod_id, note_date, note_text)
VALUES(107, 'SAFE', '2005-08-23',
'Please note that no returns will be accepted if safe opened using explosives.'
);
INSERT INTO productnotes(note_id, prod_id, note_date, note_text)
VALUES(108, 'ANV01', '2005-08-25',
'Multiple customer returns, anvils failing to drop fast enough or falling backwards on purchaser. Recommend that customer considers using heavier anvils.'
);
INSERT INTO productnotes(note_id, prod_id, note_date, note_text)
VALUES(109, 'ANV03', '2005-09-01',
'Item is extremely heavy. Designed for dropping, not recommended for use with slings, ropes, pulleys, or tightropes.'
);
INSERT INTO productnotes(note_id, prod_id, note_date, note_text)
VALUES(110, 'FC', '2005-09-01',
'Customer complaint: rabbit has been able to detect trap, food apparently less effective now.'
);
INSERT INTO productnotes(note_id, prod_id, note_date, note_text)
VALUES(111, 'SLING', '2005-09-02',
'Shipped unassembled, requires common tools (including oversized hammer).'
);
INSERT INTO productnotes(note_id, prod_id, note_date, note_text)
VALUES(112, 'SAFE', '2005-09-02',
'Customer complaint:
Circular hole in safe floor can apparently be easily cut with handsaw.'
);
INSERT INTO productnotes(note_id, prod_id, note_date, note_text)
VALUES(113, 'ANV01', '2005-09-05',
'Customer complaint:
Not heavy enough to generate flying stars around head of victim. If being purchased for dropping, recommend ANV02 or ANV03 instead.'
);
INSERT INTO productnotes(note_id, prod_id, note_date, note_text)
VALUES(114, 'SAFE', '2005-09-07',
'Call from individual trapped in safe plummeting to the ground, suggests an escape hatch be added.
Comment forwarded to vendor.'
);
navicat/dataGrip in IDEA/vscode/搭建mysql学习环境/beginner利用小皮控制面板(phpStudy)来快速搭建mysql的运行环境/生成测试数据并填充到表相关推荐
- test.php创建,基于phpstudy简单快速搭建一个php程序
原标题:基于phpstudy简单快速搭建一个php程序 人人都是程序员,希望在零碎的阅读时间里,给您一些技术提升. 1 安装phpstudy 通过以下链接download.csdn.net/downl ...
- 小皮面板phpstudy的MYSQL服务无法启动_ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)
小皮面板phpstudy的MYSQL服务无法启动_ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061) 今天 ...
- 利用 python 的 http.server 包快速搭建web server 服务
文章目录 利用 python 的 http.server 包快速搭建web server 服务 一.背景说明 二.一行代码解决搭建轻量级 web server 三.其外其他的配置可以参考下列网址 利用 ...
- MySQL数据库使用小皮系统(phpstudy)的安装及配置流程
小皮系统phpstudy的安装及配置流程 一.小皮系统(phpstudy)的下载 二.数据库管理工具 一.小皮系统(phpstudy)的下载 搜索 phpStudy V8.1 ,下载大约 78m ...
- 小皮面板PhpStudy下的MySQL无法启动解决方法
小皮面板PhpStudy下的MySQL无法启动解决方法 今天启动小皮面板后发现MySQL5.7.26无法启动,进入\MySQL5.7.26\bin目录下出现报错信息: # mysql -u root ...
- 在小皮面板中使用cmd进入mysql命令,包含mysql错误unknown variable ‘secure_file_priv‘解决方法(超详细)
在小皮面板中使用cmd进入mysql命令,包含mysql错误unknown variable 'secure_file_priv'解决方法(超详细) 先按win+r键打开运行对话框,输入cmd,进入: ...
- 苹果cms mysql 什么版本_分享如何使用阿里云ECS快速搭建CMS网站
想建网站又不会编程的小伙伴有福啦,本期推荐一些开源的cms建站程序,不需要写后端的任何逻辑代码,轻轻松松就可以建立自己的网站了,当然,要想网站有自己的个性,模版还是需要自己写的,只需要会简单的html ...
- 腾讯云轻量级服务器怎么搭建网站,腾讯云轻量应用服务器新手教程:快速搭建网站...
原标题:腾讯云轻量应用服务器新手教程:快速搭建网站 腾讯云轻量应用服务器(Lighthouse)具备轻运维.开箱即用的特点,适用于小型网站.博客.论坛.电商以及云端开发测试和学习环境等轻量级业务场景, ...
- 十分钟学会在phpstudy上快速搭建环境,开发php项目
目录 首先:下载一个小皮板(phpstudy) 接着,设置站点 补充: 首先:下载一个小皮板(phpstudy) 附上小皮版官网链接 下载完成后打开软件如下如: 注:博主本身用的是phpstudy20 ...
最新文章
- 【项目实战】---使用ajax完毕username是否存在异步校验
- sql中join的各种用法
- java 时间l_java中获取系统时间并格式化输出
- vue路由详解版一目了然
- 全志A20 刷入Ubuntu/Debian Linux固件 亲测能用
- SpringCloud Sentinel 使用restTemplate的两种配置介绍
- 打造一个实际的全系统污点分析系统--Towards Practical Taint Tracking
- 持续集成部署Jenkins工作笔记0012---配置构建完成后部署到Tomcat上
- w.php k,W/ (K·m)应读作( )。
- python批量查询高德地图经纬度(支持xlxs)
- 【网络协议】IPV4协议介绍
- 35美元的OpenWrt SBC目标板在教育方面应用
- 华为 Mate8 Emui 5.0 安卓 7.0 root 记录
- 祛痘收缩毛孔的简单方法 - 健康程序员,至尚生活!
- Pinia——Actions
- Hashcat密码破解攻略
- 手机服务器艰辛之路(一)~手机服务器环境部署
- 质量—弹簧—阻尼系统的建模分析
- 【Web技术】1154- 现代 Web 研发体系中的新一代低/零码搭建
- 计算机基础之二进制与原反补