Navicat 博客

2019 年 4 月 23 日,由 Robert Gravelle 撰写

如果你经常使用 MySQL或MariaDB,那么你会发现 Navicat PremiumNavicat for MySQL 是必不可少的。除 MySQL 和 MariaDB 外,Navicat for MySQL 还支持多种云服务,包括 Amazon RDS、Amazon Aurora、Oracle Cloud、Google Cloud、Microsoft Azure、阿里云、腾讯云和华为云。而 Navicat Premium 是一个允许你从单个应用程序同时连接到 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite 数据库的数据库开发工具,并且还与云数据库兼容。两者都有易于使用的 GUI 界面,帮助您创建视图、查询和函数。此外,你可以将工作保存到云中,以便重复使用并与团队成员一同协作。

在本篇文章中,我将分享一些 MySQL 的提示和技巧。你可以使用 Navicat for MySQL 或 Navicat Premium 来实践。

1:从单列检索唯一值

假设你拥有一个数千个员工记录的数据库,并且你想知道在这些员工记录中有多少个唯一的姓氏。我们可以创建一个 SELECT DISTINCT 查询来执行此操作:

SELECT DISTINCT
    lastname
FROM
    employees
ORDER BY lastname;

当我们想要查看不同的员工时,除了运行上述查询外,我们可以创建一个运行查询的视图:

CREATE VIEW distinct_emp_names AS
SELECT DISTINCT
    lastname
FROM
    employees
ORDER BY lastname;

以下是结果:

2:从多个列中检索唯一的数据

DISTINCT 子句也适用于多个列。在这种情况下,MySQL 依赖于在这些列中值的组合来确定它们在结果集中的唯一性。例如,若要从表中获取城市和州的唯一组合,你可以创建以下视图:

CREATE VIEW distinct_cities_and_states AS
SELECT DISTINCT
    state, city
FROM
    customers
WHERE
    state IS NOT NULL
ORDER BY state, city;

以下是视图的结果:

3:修改列名

假设你只想更改列的名称,可以运行 ALTER TABLE 语句来执行此操作。

ALTER TABLE MyTable CHANGE COLUMN `Old Name` to `New Name`;

在 Navicat 中,如果右击表设计器中的某个字段,则可以选择添加、插入、删除该字段,当然还可以选择重命名:

4:将全名拆分为名字和姓氏

有得巫时侯都需要将包含全名的列(即 full_name)拆分为两列,例如 first_name 和 last_name。以下是使用 ALTER TABLE 语句的方法:

ALTER TABLE emails
        ADD COLUMN `first_name` VARCHAR(30) AFTER `full_name`,
        ADD COLUMN `last_name` VARCHAR(30) AFTER `first_name`;
UPDATE emails
SET
        # Trim the white space
        `full_name` = LTRIM(RTRIM(`full_name`)),
        # Get the first name and copy it to a new column
        `first_name` = SUBSTRING_INDEX(`full_name`, ' ', 1),
        # Get the second name and copy it to a new column
        `last_name` = SUBSTRING_INDEX(`full_name`, ' ', -1)

以下是 Navicat 查询编辑器中显示的上述语句:

总结

在今天的文章中,我们学习了一些 MySQL 的提示和技巧,可以使用 Navicat PremiumNavicat for MySQL来实践。Navicat 数据库管理工具使大多数 DBA 和开发任务変得更容易。两者都有 14 天免费试用期,立即亲自尝试一下!

Navicat 文章
频道条目
分享
文章归档