内容正文:
专题七 数据更新
一、单项选择题
1.可以以键值对形式插入数据的INSERT 语句格式是( )
A. INSERT...VALUES
B. INSERT...SET
C. INSERT...SELECT
D. 以上都不是
答案:B
解析:INSERT...SET 语句可以以键值对的形式插入数据,如 INSERT INTO table_name SET column1 = value1, column2 = value2;。INSERT...VALUES 用于按列顺序插入值,INSERT...SELECT 用于从其他表中选择数据插入。
2.以下关于 TRUNCATE TABLE 和 DELETE FROM的说法,正确的是( )
A. TRUNCATE TABLE 是 DML 语句,DELETE FROM 是 DDL 语句
B. TRUNCATE TABLE 可以回滚,DELETE FROM 不能回滚
C. TRUNCATE TABLE 直接释放表空间,DELETE FROM 逐行删除
D. TRUNCATE TABLE 比 DELETE FROM 更慢
答案:C
解析:TRUNCATE TABLE 是 DDL 语句,直接释放表所占用的存储空间,不能回滚,且速度比 DELETE FROM快;DELETE FROM 是 DML 语句,逐行删除数据,可以使用事务回滚。
3.以下关于 INSERT...SET 语句的说法,错误的是( )
A. 可以灵活指定要插入的列和值
B. 插入的值不需要按照表中列的顺序
C. 只能插入单条记录
D. 比 INSERT...VALUES 更适合动态插入数据
答案:C
解析:INSERT...SET 语句可以灵活指定要插入的列和值,插入的值不需要按照表中列的顺序,且比 INSERT...VALUES 更适合动态插入数据,它也可以通过多次执行插入多条记录,并非只能插入单条记录,C 选项说法错误。
4.若要插入多行数据到 students 表,应使用( )
A. INSERT INTO students (id, name) VALUES (1, 'Alice'), (2, 'Bob');
B. INSERT INTO students (id, name) SET (1, 'Alice'), (2, 'Bob');
C. INSERT INTO students (id, name) SELECT (1, 'Alice'), (2, 'Bob');
D. INSERT INTO students (id, name) UPDATE (1, 'Alice'), (2, 'Bob');
答案:A
解析:插入多行数据使用 INSERT...VALUES 语句,多个值列表用逗号分隔,A 选项符合该语法。
5.若要删除 employees 表中 department 列值为 'HR' 的所有行,应使用的语句是( )
A. UPDATE employees DELETE WHERE department = 'HR';
B. DELETE employees WHERE department = 'HR';
C. TRUNCATE TABLE employees WHERE department = 'HR';
D. DELETE FROM employees WHERE department = 'HR';
答案:D
6.对于 INSERT...VALUES 语句,如果省略列名列表,插入的值必须( )
A. 与表中列的顺序和数量完全一致
B. 只需要数量一致
C. 只需要顺序一致
D. 以上都不对
答案:A
解析:当省略 INSERT...VALUES 语句中的列名列表时,插入的值必须与表中列的顺序和数量完全一致。
7.以下关于 DELETE FROM 语句中 WHERE 子句的说法,正确的是( )
A. WHERE 子句是必需的
B. 省略 WHERE 子句会删除表中所有行
C. WHERE 子句只能用于删除单行数据
D. WHERE 子句只能使用等于条件
答案:B
解析:DELETE FROM 语句中 WHERE 子句是可选的,省略 WHERE 子句会删除表中所有行。WHERE 子句可用于删除多行数据,且可以使用多种条件。
8.若要将 orders 表中 status 列值为 'pending' 的行的 status 列更新为 'completed',同时将 amount 列值增加 10,应使用的语句是( )
A. UPDATE orders status = 'completed', amount = amount + 10 WHERE status = 'pending';
B. UPDATE orders WHERE status = 'pending' SET status = 'completed', amount = amount + 10;
C. UPDATE orders SET status = 'completed' AND amount = amount + 10 WHERE status = 'pending';
D. UPDATE orders SET status = 'completed', amount = amount + 10 WHERE status = 'pending';
答案:D
解析:在 UPDATE...SET 语句中,可同时更新多个列,用逗号分隔。
9.以下适合使用 INSERT...SELECT 语句的是( )
A. 插入单条手动输入的数据
B. 从一个表复制部分数据到另一个表
C. 以键值对形式插入数据
D. 以上都适合
答案:B
解析:INSERT...SELECT 语句适合从一个表复制部分或全部数据到另一个表,B 选项正确。插入单条手动输入数据用 INSERT...VALUES 或 INSERT...SET,以键值对形式插入数据用 INSERT...SET。
10.若要删除 customers 表中 id 列值为 10 的行,以下语句正确的是( )
A. DELETE FROM customers WHERE id = 10;
B. DELETE customers WHERE id = 10;
C. TRUNCATE TABLE customers WHERE id = 10;
D. UPDATE customers DELETE WHERE id = 10;
答案:A
解析:UPDATE 语句省略 WHERE 子句时,会更新表中所有行。
二、填空题
1.UPDATE 语句中,使用__________子句指定要更新的列和新的值。
答案:SET
2.DELETE FROM 语句中,省略__________子句会删除表中所有行。
答案:WHERE
3.TRUNCATE TABLE 是一个__________(填 DDL 或 DML)语句。
答案:DDL
4.若要将 table3 中 column3 列值大于 10 的行的数据插入到 table4 中,应使用__________语句。
答案:INSERT INTO table4 SELECT * FROM table3 WHERE column3 > 10;
三、判断题
1.INSERT...VALUES 语句只能插入单条记录。( )
答案:错误
解析:INSERT...VALUES 语句可以通过逗号分隔多个值列表来插入多行记录,例如 INSERT INTO table_name (column1, column2) VALUES (value1, value2), (value3, value4);。
2.UPDATE 语句中 WHERE 子句是必需的。( )
答案:错误
解析:UPDATE 语句中 WHERE 子句是可选的,省略 WHERE 子句会更新表中所有行。
3.TRUNCATE TABLE 不可以回滚。( )
答案:正确
解析:TRUNCATE TABLE 是 DDL 语句,它直接释放表空间,不会记录单独的删除操作,因此不能回滚。
4.INSERT...SELECT 语句可以将一个表的数据插入到另一个表中。( )
答案:正确
解析:INSERT...SELECT 语句的主要用途就是将一个表中满足条件的数据插入到另一个表中。
5.DELETE FROM 语句只能删除单行数据。( )
答案:错误
解析:DELETE FROM 语句通过 WHERE 子句可以指定删除满足条件的多行数据,省略 WHERE 子句会删除表中所有行。
6.INSERT...SET 语句插入的值必须按照表中列的顺序。( )
答案:错误
解析:INSERT...SET 语句以键值对的形式插入数据,不需要按照表中列的顺序插入。
7.若要更新 table5 中所有行的 column5 列值为 20,应使用 UPDATE table5 SET column5 = 20 WHERE column5 = 20;。( )
答案:错误
解析:若要更新所有行,应省略 WHERE 子句,正确语句为 UPDATE table5 SET column5 = 20;。
8.T对于 INSERT...VALUES 语句,列名列表是必需的。( )
答案:错误
解析:INSERT...VALUES 语句的列名列表是可选的,若省略,插入的值必须与表中列的顺序和数量完全一致。
9.UPDATE 语句可以同时更新多个列。( )
答案:正确
解析:UPDATE 语句的 SET 子句可以用逗号分隔多个列和对应的值,同时更新多个列,例如 UPDATE table_name SET column1 = value1, column2 = value2;。
10.DELETE FROM 语句中 WHERE 子句只能使用等于条件。( )
答案:错误
解析:DELETE FROM 语句的 WHERE 子句可以使用多种条件,如大于、小于、不等于等,例如 DELETE FROM table_name WHERE column > 10;。
四、命令题
1.. 请写出向 employees 表中插入一条记录的命令,该记录的 employee_id 为 101,name 为 'John Smith',department 为 'Sales'。
答案:
INSERT INTO employees (employee_id, name, department) VALUES (101, 'John Smith', 'Sales');
2. 请给出删除 customers 表中 customer_id 为 20 的记录的命令。
答案:
DELETE FROM customers WHERE customer_id = 20;
3. 写出向 students 表中以键值对形式插入一条记录的命令,student_id 为 30,student_name 为 'Alice Brown',grade 为 'B'。
答案:
INSERT INTO students SET student_id = 30, student_name = 'Alice Brown', grade = 'B';
4. 请写出从 books 表中删除所有 publication_year 早于 2000 年的书籍记录的命令。
答案:
DELETE FROM books WHERE publication_year < 2000;
5. 写出将 employees 表中 department 为 'HR' 的所有员工的 salary 增加 10% 的命令。
答案:
UPDATE employees SET salary = salary * 1.1 WHERE department = 'HR';
6. 请给出向 invoices 表中插入多行记录的命令,第一行 invoice_id 为 1,amount 为 500.00;第二行 invoice_id 为 2,amount 为 750.00。
答案:
INSERT INTO invoices (invoice_id, amount) VALUES (1, 500.00), (2, 750.00);
7. 写出删除 suppliers 表中所有记录的命令,要求使用最快的方式。
答案:
TRUNCATE TABLE suppliers;
学科网(北京)股份有限公司
$$
专题七 数据更新
一、单项选择题
1.可以以键值对形式插入数据的INSERT 语句格式是( )
A. INSERT...VALUES
B. INSERT...SET
C. INSERT...SELECT
D. 以上都不是
2.以下关于 TRUNCATE TABLE 和 DELETE FROM的说法,正确的是( )
A. TRUNCATE TABLE 是 DML 语句,DELETE FROM 是 DDL 语句
B. TRUNCATE TABLE 可以回滚,DELETE FROM 不能回滚
C. TRUNCATE TABLE 直接释放表空间,DELETE FROM 逐行删除
D. TRUNCATE TABLE 比 DELETE FROM 更慢
3.以下关于 INSERT...SET 语句的说法,错误的是( )
A. 可以灵活指定要插入的列和值
B. 插入的值不需要按照表中列的顺序
C. 只能插入单条记录
D. 比 INSERT...VALUES 更适合动态插入数据
答案:C
4.若要插入多行数据到 students 表,应使用( )
A. INSERT INTO students (id, name) VALUES (1, 'Alice'), (2, 'Bob');
B. INSERT INTO students (id, name) SET (1, 'Alice'), (2, 'Bob');
C. INSERT INTO students (id, name) SELECT (1, 'Alice'), (2, 'Bob');
D. INSERT INTO students (id, name) UPDATE (1, 'Alice'), (2, 'Bob');
5.若要删除 employees 表中 department 列值为 'HR' 的所有行,应使用的语句是( )
A. UPDATE employees DELETE WHERE department = 'HR';
B. DELETE employees WHERE department = 'HR';
C. TRUNCATE TABLE employees WHERE department = 'HR';
D. DELETE FROM employees WHERE department = 'HR';
6.对于 INSERT...VALUES 语句,如果省略列名列表,插入的值必须( )
A. 与表中列的顺序和数量完全一致
B. 只需要数量一致
C. 只需要顺序一致
D. 以上都不对
7.以下关于 DELETE FROM 语句中 WHERE 子句的说法,正确的是( )
A. WHERE 子句是必需的
B. 省略 WHERE 子句会删除表中所有行
C. WHERE 子句只能用于删除单行数据
D. WHERE 子句只能使用等于条件
8.若要将 orders 表中 status 列值为 'pending' 的行的 status 列更新为 'completed',同时将 amount 列值增加 10,应使用的语句是( )
A. UPDATE orders status = 'completed', amount = amount + 10 WHERE status = 'pending';
B. UPDATE orders WHERE status = 'pending' SET status = 'completed', amount = amount + 10;
C. UPDATE orders SET status = 'completed' AND amount = amount + 10 WHERE status = 'pending';
D. UPDATE orders SET status = 'completed', amount = amount + 10 WHERE status = 'pending';
9.以下适合使用 INSERT...SELECT 语句的是( )
A. 插入单条手动输入的数据
B. 从一个表复制部分数据到另一个表
C. 以键值对形式插入数据
D. 以上都适合
10.若要删除 customers 表中 id 列值为 10 的行,以下语句正确的是( )
A. DELETE FROM customers WHERE id = 10;
B. DELETE customers WHERE id = 10;
C. TRUNCATE TABLE customers WHERE id = 10;
D. UPDATE customers DELETE WHERE id = 10;
二、填空题
1.UPDATE 语句中,使用__________子句指定要更新的列和新的值。
2.DELETE FROM 语句中,省略__________子句会删除表中所有行。
3.TRUNCATE TABLE 是一个__________(填 DDL 或 DML)语句。
4.若要将 table3 中 column3 列值大于 10 的行的数据插入到 table4 中,应使用__________语句。
三、判断题
1.INSERT...VALUES 语句只能插入单条记录。( )
2.UPDATE 语句中 WHERE 子句是必需的。( )
3.TRUNCATE TABLE 不可以回滚。( )
4.INSERT...SELECT 语句可以将一个表的数据插入到另一个表中。( )
5.DELETE FROM 语句只能删除单行数据。( )
6.INSERT...SET 语句插入的值必须按照表中列的顺序。( )
7.若要更新 table5 中所有行的 column5 列值为 20,应使用 UPDATE table5 SET column5 = 20 WHERE column5 = 20;。( )
8.T对于 INSERT...VALUES 语句,列名列表是必需的。( )
9.UPDATE 语句可以同时更新多个列。( )
10.DELETE FROM 语句中 WHERE 子句只能使用等于条件。( )
四、命令题
1.. 请写出向 employees 表中插入一条记录的命令,该记录的 employee_id 为 101,name 为 'John Smith',department 为 'Sales'。
2. 请给出删除 customers 表中 customer_id 为 20 的记录的命令。
3. 写出向 students 表中以键值对形式插入一条记录的命令,student_id 为 30,student_name 为 'Alice Brown',grade 为 'B'。
4. 请写出从 books 表中删除所有 publication_year 早于 2000 年的书籍记录的命令。
5. 写出将 employees 表中 department 为 'HR' 的所有员工的 salary 增加 10% 的命令。
6. 请给出向 invoices 表中插入多行记录的命令,第一行 invoice_id 为 1,amount 为 500.00;第二行 invoice_id 为 2,amount 为 750.00。
7. 写出删除 suppliers 表中所有记录的命令,要求使用最快的方式。
学科网(北京)股份有限公司
$$