update student a, score b SET b.stuscore = 100 WHERE
a.stuid=b.stuid and a.stuname=‘赵雷’ and b.courseid=0002
#单表删除
delete from score where stuscore = 64 and courseid=0001 and stuid=0001
delete a, b from student as a LEFT JOIN score as b on a.stuid=b.stuid
where a.stuname=‘赵雷’
and b.courseid=0002 and b.stuscore=100
语法:
UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]
DELETE FROM table_name [WHERE Clause]
INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );
- insert into account (name, money) values ("abab", 200)
- select * from account
- delete from account where id =7
- update account set name ="dadada" where id='2'
更新方法一:
UPDATE table1
SET column1 = column2
WHERE EXISTS (
SELECT * FROM table2
WHERE table1.id = table2.table1_id AND table2.column3 = 'value'
);
更新方法二:
UPDATE table1
JOIN table2 ON table1.id = table2.table1_id
SET table1.column1 = table2.column2
WHERE table2.column3 = 'value';
sqlCopy CodeINSERT INTO table1 (column1, column2)
SELECT column3, column4
FROM table2
WHERE column5 = 'value'
UNION ALL
VALUES (value1, value2), (value3, value4);
上述语句中,通过子查询 SELECT column3, column4 FROM table2 WHERE column5 = 'value'
选择需要插入的数据行,并将其与手动指定的数值集合进行合并(UNION ALL)。手动指定的数值集合使用 VALUES 语法进行定义。
sqlCopy CodeINSERT INTO table1 (column1, column2)
SELECT table2.column3, table2.column4
FROM table1
JOIN table2 ON table1.id = table2.table1_id
UNION ALL
VALUES (value1, value2), (value3, value4);
此示例中,使用 JOIN 操作将需要插入的表 table1
和其他表 table2
进行关联查询,并通过关联条件 table1.id = table2.table1_id
来选择需要插入的数据行。然后将其与手动指定的数值集合进行合并(UNION ALL),手动指定的数值集合同样使用 VALUES 语法进行定义。
使用子查询的方式可以先根据另一个表的条件查询需要删除的数据行,然后再将这些数据行从当前表中删除。简单示例如下:
sqlCopy CodeDELETE FROM table1 WHERE column1 IN (
SELECT column1 FROM table2 WHERE column2 = 'value'
);
上述 SQL 语句中,我们使用子查询 SELECT column1 FROM table2 WHERE column2 = 'value'
内部选择满足条件的数据行的列,然后在外部将其传递给 DELETE 语句的 WHERE 子句,以确定要从当前表 table1
中删除的数据行。
另一种删除数据的方式是使用 JOIN 操作来确定要删除的数据行,然后使用 DELETE 语句从当前表中删除这些数据。简单示例如下:
sqlCopy CodeDELETE table1 FROM table1
JOIN table2 ON table1.id = table2.table1_id
WHERE table2.column2 = 'value';
上述 SQL 语句中,我们使用 JOIN 操作将需要删除的表 table1
和其他表 table2
进行关联,并在关联条件 table1.id = table2.table1_id
中指定需要删除的数据行。然后在 WHERE 子句中进一步过滤数据行,以确定要从当前表 table1
中删除的数据行。
1. 复制表结构及其数据:
create table table_name_new as select * from table_name_old
2. 只复制表结构:
create table table_name_new as select * from table_name_old where 1=2;
或者:
create table table_name_new like table_name_old
3. 只复制表数据:
如果两个表结构一样:
insert into table_name_new select * from table_name_old
如果两个表结构不一样:
insert into table_name_new(column1,column2...) select column1,column2... from table_name_old
需要注意的是,在以上步骤中,查询优化器是 MySQL 查询执行过程中的重要组成部分,它可以大幅提升查询效率。MySQL 查询优化器会通过分析 SQL 语句,选择最优的执行方式并生成执行计划,使查询效率达到最大化。
MySQL数据库相关优化参数
MySQL数据库执行计划
MySQL数据库执行顺序
MySQL性能测试过程中的优化项目和注意事项