2026年程序设计基础数据库操作实践题库_第1页
2026年程序设计基础数据库操作实践题库_第2页
2026年程序设计基础数据库操作实践题库_第3页
2026年程序设计基础数据库操作实践题库_第4页
2026年程序设计基础数据库操作实践题库_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2026年程序设计基础:数据库操作实践题库一、选择题(每题2分,共20题)1.某公司员工表(Employee)包含字段:ID(主键)、Name、Department、Salary。以下SQL语句中,正确的是?A.`INSERTINTOEmployee(Name,Salary)VALUES('张三',8000)`B.`UPDATEEmployeeSETDepartment='技术部'WHEREID=1`C.`DELETEFROMEmployeeWHEREName='李四'`(注:未指定主键,需补充条件)D.`SELECTFROMEmployeeORDERBYSalaryDESC`(正确)2.在MySQL中,以下哪个命令用于创建索引?A.`CREATETABLE`B.`CREATEINDEX`(正确)C.`ALTERTABLE`D.`DROPINDEX`3.某学生表(Student)包含字段:StudentID(主键)、Name、Grade。以下SQL语句中,查询Grade大于80的学生名单,正确的是?A.`SELECTNameFROMStudentWHEREGrade>80`(正确)B.`SELECTFROMStudentWHEREGrade=80`C.`SELECTNameFROMStudentWHEREGrade<80`D.`SELECTCOUNT()FROMStudentWHEREGrade>80`4.在SQL中,`INNERJOIN`和`LEFTJOIN`的主要区别是什么?A.`INNERJOIN`返回匹配的行,`LEFTJOIN`返回左表所有行B.`INNERJOIN`需要指定`ON`条件,`LEFTJOIN`不需要C.`INNERJOIN`用于删除重复数据,`LEFTJOIN`用于保留左表数据(正确)D.两者完全相同5.以下哪个SQL命令用于查看数据库中所有表的列表?A.`SHOWTABLES`(正确)B.`DESCRIBETABLE`C.`SELECTFROMINFORMATION_SCHEMA.TABLES`D.`LISTTABLES`6.在SQL中,`GROUPBY`子句通常与哪个函数一起使用?A.`SELECT`B.`WHERE`C.`HAVING`(正确)D.`ORDERBY`7.某订单表(Order)包含字段:OrderID(主键)、CustomerID、TotalAmount。以下SQL语句中,查询总金额大于1000的订单数量,正确的是?A.`SELECTCOUNT()FROMOrderWHERETotalAmount>1000`(正确)B.`SELECTOrderIDFROMOrderWHERETotalAmount>1000`C.`SELECTMAX(TotalAmount)FROMOrderWHERETotalAmount>1000`D.`SELECTCustomerIDFROMOrderWHERETotalAmount>1000`8.在SQL中,`NULL`值表示什么?A.空字符串B.0C.无效数据(正确)D.空格9.某产品表(Product)包含字段:ProductID(主键)、Name、Price。以下SQL语句中,查询价格最低的产品名称,正确的是?A.`SELECTMIN(Price)FROMProduct`B.`SELECTNameFROMProductWHEREPrice=(SELECTMIN(Price)FROMProduct)`(正确)C.`SELECTMAX(Name)FROMProduct`D.`SELECTFROMProductORDERBYPriceASCLIMIT1`10.在SQL中,`TRUNCATETABLE`和`DELETEFROMTABLE`有什么区别?A.`TRUNCATETABLE`更快,但`DELETEFROMTABLE`可以加条件B.`TRUNCATETABLE`会删除所有数据并重置自增ID,`DELETEFROMTABLE`不会(正确)C.两者完全相同D.`TRUNCATETABLE`只适用于MySQL,`DELETEFROMTABLE`适用于所有数据库二、填空题(每空2分,共10空)1.在SQL中,用于删除数据库表的命令是________。答案:`DROPTABLE`2.在SQL中,用于插入数据的命令是________。答案:`INSERTINTO`3.在SQL中,用于更新数据的命令是________。答案:`UPDATE`4.在SQL中,用于查询数据的命令是________。答案:`SELECT`5.在SQL中,用于创建表的命令是________。答案:`CREATETABLE`6.在SQL中,用于创建索引的命令是________。答案:`CREATEINDEX`7.在SQL中,用于删除数据的命令是________。答案:`DELETEFROM`8.在SQL中,用于连接表的命令是________。答案:`JOIN`(或`INNERJOIN`、`LEFTJOIN`等)9.在SQL中,用于分组数据的命令是________。答案:`GROUPBY`10.在SQL中,用于排序数据的命令是________。答案:`ORDERBY`三、简答题(每题5分,共4题)1.简述SQL中`INNERJOIN`和`LEFTJOIN`的区别。答案:-`INNERJOIN`仅返回两个表中匹配的行;-`LEFTJOIN`返回左表的所有行,即使右表中没有匹配的行,右表为空时会显示`NULL`。2.简述SQL中`WHERE`子句和`HAVING`子句的区别。答案:-`WHERE`用于过滤行,在`GROUPBY`之前执行;-`HAVING`用于过滤分组后的结果,在`GROUPBY`之后执行。3.简述SQL中`TRUNCATETABLE`和`DELETEFROMTABLE`的区别。答案:-`TRUNCATETABLE`更快,会删除所有数据并重置自增ID;-`DELETEFROMTABLE`可以加条件,速度较慢,不会重置自增ID。4.简述SQL中索引的作用。答案:-加快查询速度;-减少数据排序时间;-防止数据重复。四、操作题(每题10分,共3题)1.假设有一个名为`Employee`的员工表,包含以下字段:-ID(主键,自增)-Name(姓名)-Department(部门)-Salary(工资)请编写SQL语句完成以下操作:a.创建该表;b.插入3条员工数据;c.查询所有员工信息;d.更新部门为“技术部”的员工工资为9000;e.删除ID为1的员工。答案:sql--a.创建表CREATETABLEEmployee(IDINTAUTO_INCREMENTPRIMARYKEY,NameVARCHAR(50),DepartmentVARCHAR(50),SalaryINT);--b.插入数据INSERTINTOEmployee(Name,Department,Salary)VALUES('张三','技术部',8000);INSERTINTOEmployee(Name,Department,Salary)VALUES('李四','市场部',7000);INSERTINTOEmployee(Name,Department,Salary)VALUES('王五','销售部',6000);--c.查询所有员工信息SELECTFROMEmployee;--d.更新工资UPDATEEmployeeSETSalary=9000WHEREDepartment='技术部';--e.删除员工DELETEFROMEmployeeWHEREID=1;2.假设有一个名为`Order`的订单表,包含以下字段:-OrderID(主键,自增)-CustomerID(客户ID)-TotalAmount(总金额)请编写SQL语句完成以下操作:a.创建该表;b.插入2条订单数据;c.查询总金额大于8000的订单数量;d.查询每个客户的订单总金额;e.删除所有订单。答案:sql--a.创建表CREATETABLEOrder(OrderIDINTAUTO_INCREMENTPRIMARYKEY,CustomerIDINT,TotalAmountDECIMAL(10,2));--b.插入数据INSERTINTOOrder(CustomerID,TotalAmount)VALUES(1,8500.00);INSERTINTOOrder(CustomerID,TotalAmount)VALUES(2,6500.00);--c.查询总金额大于8000的订单数量SELECTCOUNT()FROMOrderWHERETotalAmount>8000;--d.查询每个客户的订单总金额SELECTCustomerID,SUM(TotalAmount)ASTotalFROMOrderGROUPBYCustomerID;--e.删除所有订单TRUNCATETABLEOrder;3.假设有一个名为`Product`的产品表,包含以下字段:-ProductID(主键,自增)-Name(产品名称)-Price(价格)请编写SQL语句完成以下操作:a.创建该表;b.插入4条产品数据;c.查询价格最低的产品名称;d.查询每个价格区间的产品数量(0-5000、5001-10000、10001以上);e.删除所有产品。答案:sql--a.创建表CREATETABLEProduct(ProductIDINTAUTO_INCREMENTPRIMARYKEY,NameVARCHAR(50),PriceDECIMAL(10,2));--b.插入数据INSERTINTOProduct(Name,Price)VALUES('产品A',3000.00);INSERTINTOProduct(Name,Price)VALUES('产品B',4500.00);INSERTINTOProduct(Name,Price)VALUES('产品C',12000.00);INSERTINTOProduct(Name,Price)VALUES('产品D',2000.00);--c.查询价格最低的产品名称SELECTNameFROMProductWHEREPrice=(SELECTMIN(Price)FROMProduct);--d.查询每个价格区间的产品数量SELECTCASEWHENPriceBETWEEN0AND5000THEN'0-5000'WHENPriceBETWEEN5001AND10000THEN'5001-10000'ELSE'10001以上'ENDASPriceRange,COUNT()ASProductCountFROMProductGROUPBYPriceRange;--e.删除所有产品TRUNCATETABLEProduct;答案与解析一、选择题答案与解析1.D(正确:`SELECT`查询语句完整)2.B(正确:`CREATEINDEX`用于创建索引)3.A(正确:`WHERE`条件查询Grade>80)4.A(正确:`INNERJOIN`返回左表匹配行,`LEFTJOIN`返回左表所有行)5.A(正确:`SHOWTABLES`查看所有表)6.C(正确:`GROUPBY`与`HAVING`一起使用过滤分组结果)7.A(正确:`COUNT()`统计总金额>1000的订单数量)8.C(正确:`NULL`表示无效数据)9.B(正确:子查询查找最低价格对应的产品名称)10.B(正确:`TRUNCATETABLE`更快且重置自增ID,`DELETEFROMTABLE`不重置)二、填空题答案与解析1.`DROPTABLE`(删除表命令)2.`INSERTINTO`(插入数据命令)3.`UPDATE`(更新数据命令)4.`SELECT`(查询数据命令)5.`CREATETABLE`(创建表命令)6.`CREATEINDEX`(创建索引命令)7.`DELETEFROM`(删除数据命令)8.`JOIN`(连接表命令)9.`GROUPBY`(分组数据命令)10.`ORDERBY`(排序数据命令)三、简答题答案与解析1.`INNERJOIN`和`LEFTJOIN`的区别:-`INNERJOIN`仅返回两个表中匹配的行;-`LEFTJOIN`返回左表的所有行,右表中没有匹配的行时显示`NULL`。2.`WHERE`和`HAVING`的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论