根据给定文件的信息,我们可以提炼出以下几个重要的知识点: ### 1. SQL 查询条件与逻辑运算符 **题目描述**:在SQL Server 2005数据库中,雇员信息表的结果如下所示,需要找出能够正确查询出薪水低于2000元的性别为男性的雇员信息的SQL语句。 **解析**: - **选项分析**: - 选项A: `SELECT * FROM Employee WHERE (NOT(Salary >= 2000)) AND (Sex='男')`。此选项使用了 `NOT` 运算符和 `AND` 运算符,语法上是正确的。 - 选项B: `SELECT * FROM Employee WHERE (NOT(Salary >= 2000)) && (Sex='男')`。此选项使用了 `&&` 作为逻辑运算符,但在 SQL 中应使用 `AND`。 - 选项C: `SELECT * FROM Employee WHERE (NOT(Salary >= 2000) AND (Sex='男'))`。此选项使用了括号,但 `NOT` 运算符优先级高于 `AND`,因此括号在这里不是必要的。 - 选项D: `SELECT * FROM Employee WHERE (Salary < 2000) && (Sex='男')`。此选项使用了 `<` 运算符代替了 `NOT(Salary >= 2000)`,并且正确地使用了 `AND` 运算符。 - **正确答案**:选项A和D。 - **知识点总结**: - SQL 中的 `NOT` 运算符用来否定一个条件。 - `AND` 和 `OR` 是常用的逻辑运算符,其中 `AND` 表示条件同时满足,`OR` 表示条件任一满足。 - 在 SQL 中,应使用 `AND` 而不是 `&&` 作为逻辑运算符。 ### 2. SQL 外键约束 **题目描述**:在SQL Server 2005中,外键用于将一个表中的列与另一表中的列关联起来,为了确保引用的完整性,需要满足的要求是? **解析**: - **选项分析**: - 选项A: 外键列的列值必须已经存在于主键表的对应列的列值中。这是外键约束的基本要求之一。 - 选项B: 外键表的数据行行数必须大于主键表的数据行行数。这不是外键约束的要求。 - 选项C: 外键列的列值必须与主键表的对应列的列值一一对应。这是不准确的说法,外键列的值只需存在于主键表中即可,并非一定是一一对应的。 - 选项D: 外键列不能有重复的值。这不是外键约束的要求。 - **正确答案**:选项A。 - **知识点总结**: - 外键是用来确保两个表之间数据一致性和完整性的工具。 - 外键列的值必须存在于相应的主键表中。 - 主键与外键之间的关系通常是“一对多”或“多对一”。 ### 3. SQL 日期函数 **题目描述**:在 SQL Server 中,需要返回日期格式为“2021-9-9”的日期函数是? **解析**: - **选项分析**: - 选项A: `Day()` 返回日期中的天数。 - 选项B: `Year()` 返回日期中的年份。 - 选项C: `GetDate()` 返回当前系统时间,默认格式为 "YYYY-MM-DD"。 - 选项D: `Month()` 返回日期中的月份。 - **正确答案**:选项C。 - **知识点总结**: - `GetDate()` 函数用于获取当前系统的日期和时间,通常用于插入记录的时间戳。 ### 4. SQL 查询排序 **题目描述**:在 SQL Server2005数据库中,现有 stu_info(学生)表,包括字段:stu_name(姓名,varchar型),stu_id(学号,int型),stu_score(成绩,int型)。现在需要查询成绩为 80 的学生,并按照学号的降序排列。 **解析**: - **选项分析**: - 选项A: `Select stu_name from stu_info where stu_score=80 order by stu_id`。此选项缺少降序关键字。 - 选项B: `Select stu_name from stu_info where stu_score=80 order by stu_id desc`。此选项正确地使用了 `ORDER BY stu_id DESC` 来按学号降序排列。 - 选项C: `Select stu_name from stu_info where stu_score like 80 group by stu_id`。此选项使用了 `LIKE` 运算符和 `GROUP BY`,不符合题意。 - 选项D: `Select stu_name from stu_info where stu_score like 80 group by stu_id desc`。此选项同样使用了 `LIKE` 和 `GROUP BY`,不符合题意。 - **正确答案**:选项B。 - **知识点总结**: - `ORDER BY` 用于指定查询结果的排序方式。 - `DESC` 关键字表示降序排列。 ### 5. SQL 连接查询 **题目描述**:在 SQL Server2005数据库中,客户表 customers 包含字段:客户编号 cid 和名称 cname,订单表 orders 包含字段:客户编号 cid。如果需要通过查询获得有订单的客户的名称。 **解析**: - **选项分析**: - 选项A: `SELECT customers ame FROM customers LEFT JOIN orders ON customers.cid=order.cid`。此选项使用了 `LEFT JOIN`,但题目要求查询有订单的客户。 - 选项B: `SELECT customers ame FROM customers INNER JOIN orders ON customers.cid=order.cid`。此选项使用了 `INNER JOIN`,符合题意。 - 选项C: `SELECT customers ame FROM customers RIGHT JOIN orders WHERE customers.cid=order.cid`。此选项使用了 `RIGHT JOIN`,不符合题意。 - 选项D: `SELECT customers ame FROM customers JOIN orders WHERE customers.cid=order.cid`。此选项使用了隐式连接(`JOIN`),但缺少了连接类型。 - **正确答案**:选项B。 - **知识点总结**: - `INNER JOIN` 用于连接两个表中的匹配记录。 - `LEFT JOIN` 和 `RIGHT JOIN` 用于获取左侧或右侧表的所有记录,即使没有匹配记录。 ### 6. SQL 插入语句 **题目描述**:现有表 book,字段:id (int),title (varchar), price (float)。使用 insert语句向 book 表中插入数据,以下语句错误的选项是? **解析**: - **选项分析**: - 选项A: `insert into book (id,title,price) values(1,'java',100)`。此选项指定了列名并给出了相应的值,但由于 `id` 字段被设置为标识,不允许手动指定值。 - 选项B: `insert into book (title,price) values('java',100)`。此选项省略了 `id` 字段,正确地插入了 title 和 price。 - 选项C: `insert into book values ('java',100)`。此选项没有指定列名,但因为 `id` 是标识字段,所以也可以正确执行。 - 选项D: `insert book values`。此选项缺少值列表。 - **正确答案**:选项A。 - **知识点总结**: - 当一个字段被设置为标识时,不允许手动指定其值。 - 插入数据时,可以指定列名,也可以不指定,但需要注意值的顺序和数量要与表结构相匹配。
- 粉丝: 101
- 资源: 6万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助