数据库查询与通配符操作详解

需积分: 10 1 下载量 54 浏览量 更新于2024-08-23 收藏 540KB PPT 举报
"本次资料主要涉及数据库查询及通配符的使用,并展示了数据库表结构设计以及数据插入的相关操作。在数据库学习中,通配符是进行模糊查询的关键,而表结构设计和完整性则是保证数据正确性的基础。" 在数据库查询中,通配符是一个非常实用的工具,用于进行模糊匹配。在提供的描述中,可以看到一个SQL查询示例,使用了`LIKE`操作符配合通配符来查找以特定字符开头的用户名: ```sql SELECT uname, sexy FROM users WHERE uname LIKE '武\_' ESCAPE '\'; ``` 在这个例子中,`LIKE`用于指定查询条件,`'武\_ '`中的`\_`是一个通配符,代表任意一个字符。为了使`\_`不被解析为通配符,我们使用了`ESCAPE '\ '`来定义转义字符`\`,使得`\_`能被当作普通文本处理。这意味着查询将返回所有用户名以“武”开头且紧接着是任意一个字符的用户记录。 接下来,我们关注数据库表的设计。这里有两个表:`book`和`bookCategory`。`book`表包含了书籍的基本信息,如`bookid`(主键)、`isbn`、`bookname`、`catId`(外键)和`authors`等。`isbn`字段带有`CHECK`约束,确保其长度超过3个字符。同时,`bookid`作为主键,通过`ALTER TABLE`语句添加了`fk_book`约束,确保数据的唯一性和完整性。`catId`字段则作为外键,引用了`bookCategory`表的`categoryId`,并且设置了`ON DELETE SET NULL`,意味着当`bookCategory`表中的某个记录被删除时,`book`表中的相应`catId`将被设置为`NULL`。 `bookCategory`表用于存储书籍类别信息,包含`categoryId`(主键)、`categoryName`、`parentCategoryId`(外键)和`cate_desc`。`categoryId`同样有主键约束,`parentCategoryId`作为外键引用自身表的`categoryId`,实现了层级关系,允许创建分类的树状结构。当`bookCategory`表中的记录被删除时,`parentCategoryId`也遵循`ON DELETE SET NULL`规则。 在数据插入部分,演示了如何向`category`和`bookInfo`表中插入记录。首先,尝试向`category`表插入两条记录,接着尝试向`bookInfo`表插入数据。其中,第四条`INSERT INTO`语句试图插入一个`catid`为`null`的记录,这可能会违反`bookInfo`表中`catid`字段的非空约束,导致错误。需要注意的是,即使插入语句出错,后续的语句仍可继续执行,这是数据库管理系统处理事务的一种方式,通常在自动或手动提交模式下,错误不会阻止整个事务的执行。 本资料涵盖了数据库查询的通配符使用,以及数据库设计和数据完整性方面的知识,包括表的创建、外键约束、主键约束、检查约束和数据插入操作,是数据库学习的重要内容。