MySQL 如何使用MySQL LIKE从第一个表创建新表?
在MySQL中,我们可以使用LIKE语句来查询符合一定规律的字符串。现在,我们需要从一个已有表中筛选出一部分数据,并将其存储到一个新表中。那么,如何使用MySQL LIKE从第一个表创建新表呢?下面我们就来逐步了解。
阅读更多:MySQL 教程
1. 创建原始表格
首先,我们需要先创建一个原始表格。下面是一个较为简单的例子:
CREATE TABLE `test` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
`sex` VARCHAR(10) NOT NULL,
`age` INT NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
这个例子中,我们创建了一张名为test的表格,其中包含id、name、sex、age四个列。其中,id为自增长整数,name为字符串类型,sex为字符串类型,age为整数类型。
为了方便演示,我们还需要在test表格中插入一些数据。在这里,我们插入了10条记录,其中姓名为Tom的记录,性别为男,年龄分别为22、25、28、31、34;姓名为Lily的记录,性别为女,年龄分别为20、23、26、29、32。
INSERT INTO `test` (`id`, `name`, `sex`, `age`) VALUES
(1, 'Tom', '男', 22),
(2, 'Tom', '男', 25),
(3, 'Tom', '男', 28),
(4, 'Tom', '男', 31),
(5, 'Tom', '男', 34),
(6, 'Lily', '女', 20),
(7, 'Lily', '女', 23),
(8, 'Lily', '女', 26),
(9, 'Lily', '女', 29),
(10, 'Lily', '女', 32);
至此,我们已经成功地创建了test表格,并插入了10条记录。
2. 使用LIKE语句筛选数据
接下来,我们需要使用LIKE语句筛选出符合要求的数据。在这个例子中,我们需要筛选出所有姓名为Tom的记录。那么,该如何编写查询语句呢?
SELECT * FROM `test` WHERE `name` LIKE 'Tom';
这条查询语句的意思是:选取test表格中所有name等于Tom的记录。
在MySQL中,LIKE语句的常见用法有两种:
%表示任意多个字符(包括0个字符);_表示任意单个字符。
例如,如果我们需要筛选出所有姓Li的人,可以使用以下语句:
SELECT * FROM `test` WHERE `name` LIKE 'Li%';
这条查询语句的意思是:选取test表格中所有name以Li开头的记录。
类似地,如果我们需要筛选出所有年龄在25岁到30岁之间的人,可以使用以下语句:
SELECT * FROM `test` WHERE `age` >= 25 AND `age` <= 30;
这条查询语句的意思是:选取test表格中所有age在25岁到30岁之间的记录。
3. 创建新表格并插入数据
经过第二步操作,我们已经成功地筛选出符合要求的数据了。接下来,我们需要将这些数据存储到一个新表格中。
在MySQL中,我们可以使用CREATE TABLE SELECT语句来从一个已有表中创建一个新表格。该语句的一般格式为:
“` mysqlCREATE TABLE `new_table`
SELECT …
FROM `old_table`
WHERE …
其中,new_table是我们想要创建的新表格的名称,old_table是我们想要从中选取数据的已有表格的名称,SELECT ... FROMold_tableWHERE ...是一个完整的查询语句,用来选取符合要求的数据。
在这个例子中,我们可以先查询出符合要求的记录,再将这些记录插入到一个新表格中。具体操作如下:
-- 创建名为new_test的新表格
CREATE TABLE `new_test` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
`sex` VARCHAR(10) NOT NULL,
`age` INT NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 插入符合要求的记录到新表格中
INSERT INTO `new_test` (`name`, `sex`, `age`)
SELECT `name`, `sex`, `age`
FROM `test`
WHERE `name` LIKE 'Tom';
这段代码的意思是:
- 首先,我们创建了一个名为
new_test的新表格,与test表格的结构相同; - 然后,我们使用
SELECT语句选取符合要求的记录,并将这些记录插入到新表格中。
这里需要注意的是:
- 我们在
INSERT INTO语句中,省略了id列,因为id是自增长的,不需要手动插入; - 在
SELECT语句中,我们指定了要选取的列,即name、sex、age; - 在
WHERE语句中,我们限定了要筛选的条件,即name等于Tom。
结论
综上所述,我们可以使用MySQL的LIKE语句从一个已有表中筛选出符合要求的数据,并通过CREATE TABLE SELECT语句将这些数据存储到一个新的表格中。前者可以通过编写查询语句来完成,后者则需要写出完整的CREATE TABLE SELECT语句,并注意新表格的表结构与已有表格的对应关系。
极客笔记