请分析以下sql语句:create database ebookshopping; use ebookshopping; CREATE TABLE `admin` ( `adminid` varchar(255) NOT NULL, `username` varchar(255) DEFAULT NULL, `password` varchar(255) DEFAULT NULL, `realname` varchar(255) DEFAULT NULL, `contact` varchar(255) DEFAULT NULL, `addtime` varchar(255) DEFAULT NULL, PRIMARY KEY (`adminid`) ) ; CREATE TABLE `article` ( `articleid` varchar(255) NOT NULL, `title` varchar(255) DEFAULT NULL, `image` varchar(255) DEFAULT NULL, `contents` text, `addtime` varchar(255) DEFAULT NULL, `hits` varchar(255) DEFAULT NULL, PRIMARY KEY (`articleid`) ) ; CREATE TABLE `book` ( `bookid` varchar(255) NOT NULL, `bookname` varchar(255) DEFAULT NULL, `image` varchar(255) DEFAULT NULL, `cateid` varchar(255) DEFAULT NULL, `price` varchar(255) DEFAULT NULL, `recommend` varchar(255) DEFAULT NULL, `hits` varchar(255) DEFAULT NULL, `sellnum` varchar(255) DEFAULT NULL, `contents` text, PRIMARY KEY (`bookid`) ) ; CREATE TABLE `cart` ( `cartid` varchar(255) NOT NULL, `usersid` varchar(255) DEFAULT NULL, `bookid` varchar(255) DEFAULT NULL, `num` varchar(255) DEFAULT NULL, `price` varchar(255) DEFAULT NULL, PRIMARY KEY (`cartid`) ) ; CREATE TABLE `cate` ( `cateid` varchar(255) NOT NULL, `catename` varchar(255) DEFAULT NULL, `memo` varchar(255) DEFAULT NULL, `addtime` varchar(255) DEFAULT NULL, PRIMARY KEY (`cateid`) ) ; CREATE TABLE `details` ( `detailsid` varchar(255) NOT NULL, `ordercode` varchar(255) DEFAULT NULL, `bookid` varchar(255) DEFAULT NULL, `num` varchar(255) DEFAULT NULL, `price` varchar(255) DEFAULT NULL, `receivername` varchar(255) DEFAULT NULL, `receiverphone` varchar(255) DEFAULT NULL, `address` varchar(255) DEFAULT NULL, PRIMARY KEY (`detailsid`) ) ; CREATE TABLE `orders` ( `ordersid` varchar(255) NOT NULL, `ordercode` varchar(255) DEFAULT NULL, `usersid` varchar(255) DEFAULT NULL, `total` varchar(255) DEFAULT NULL, `status` varchar(255) DEFAULT NULL, `addtime` varchar(255) DEFAULT NULL, PRIMARY KEY (`ordersid`) ) ; CREATE TABLE `topic` ( `topicid` varchar(255) NOT NULL, `usersid` varchar(255) DEFAULT NULL, `filmid` varchar(255) DEFAULT NULL, `num` varchar(255) DEFAULT NULL, `contents` varchar(255) DEFAULT NULL, `addtime` varchar(255) DEFAULT NULL, PRIMARY KEY (`topicid`) ) ; CREATE TABLE `users` ( `usersid` varchar(255) NOT NULL, `username` varchar(255) DEFAULT NULL, `password` varchar(255) DEFAULT NULL, `realname` varchar(255) DEFAULT NULL, `sex` varchar(255) DEFAULT NULL, `birthday` varchar(255) DEFAULT NULL, `contact` varchar(255) DEFAULT NULL, `regdate` varchar(255) DEFAULT NULL, PRIMARY KEY (`usersid`) ) ;
时间: 2023-02-06 08:58:00 浏览: 126
这段 SQL 语句是在建立一个名为 ebookshopping 的数据库,然后在该数据库中建立了 9 个表。
- admin 表:用于存储管理员的信息,其中 adminid 列是主键。
- article 表:用于存储文章的信息,其中 articleid 列是主键。
- book 表:用于存储书籍的信息,其中 bookid 列是主键。
- cart 表:用于存储购物车信息,其中 cartid 列是主键。
- cate 表:用于存储书籍分类信息,其中 cateid 列是主键。
- details 表:用于存储订单详情信息,其中 detailsid 列是主键。
- orders 表:用于存储订单信息,其中 ordersid 列是主键。
- topic 表:用于存储话题信息,其中 topicid 列是主键。
- users 表:用于存储用户信息,其中 usersid 列是主键。
相关问题
CREATE TABLE BUILD_ADMIN_INFO( ID INT PRIMARY KEY, BUILD_ADMIN_NAME VARCHAR2 (10), SEX CHAR(2) NOT NULL, PHONE VARCHAR2(20) NOT NULL, DORMID INT, BUILDID INT ); CREATE TABLE DORM_INFO( ID INT PRIMARY KEY , DORM_INFO VARCHAR2(10) NOT NULL, CHIEF VARCHAR2(10) NOT NULL, FLOOR VARCHAR2(100) NOT NULL, BED_NUMBER VARCHAR2(100) NOT NULL, ACTUAL_NUMBER VARCHAR2(100) NOT NULL, FREEBED VARCHAR2(100) NOT NULL, AIR_CONDITIONER CHAR(2) NOT NULL, BUILDID INT, BUILD_ADMINID INT );报错是找不到父键
根据您提供的建表语句,建议您检查一下插入数据时 BUILD_ADMIN_INFO 表中的 DORMID 和 BUILDID 是否存在于对应的父表中。如果不存在,就会出现找不到父键的错误。
另外,建议您在建表时设置外键约束,这样可以避免插入不合法的数据。例如,在 BUILD_ADMIN_INFO 表中,可以将 DORMID 和 BUILDID 设置为外键,指向对应的父表的主键,如下所示:
```
CREATE TABLE BUILD_ADMIN_INFO(
ID INT PRIMARY KEY,
BUILD_ADMIN_NAME VARCHAR2 (10),
SEX CHAR(2) NOT NULL,
PHONE VARCHAR2(20) NOT NULL,
DORMID INT,
BUILDID INT,
FOREIGN KEY (DORMID) REFERENCES DORM_INFO(ID),
FOREIGN KEY (BUILDID) REFERENCES BUILD_INFO(ID)
);
```
在 DORM_INFO 表中也可以类似地设置外键约束。这样可以确保插入的数据符合父表的要求,避免了出现找不到父键的错误。
DROP TABLE IF EXISTS `admin`; CREATE TABLE `admin` ( `AdminID` int(11) NOT NULL AUTO_INCREMENT, `Numb` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `Password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (`AdminID`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
您的代码创建了一个名为`admin`的表,其中包含三个列:`AdminID`、`Numb`和`Password`。`AdminID`列被定义为自增长列,`Numb`和`Password`列是varchar类型。以下是您的创建表的SQL代码:
```sql
DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin` (
`AdminID` int(11) NOT NULL AUTO_INCREMENT,
`Numb` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`Password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
PRIMARY KEY (`AdminID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
```
这段代码将创建一个名为`admin`的表,它具有自增长的主键列`AdminID`,以及两个非空的varchar列`Numb`和`Password`。表使用InnoDB引擎,字符集为utf8,排序规则为utf8_general_ci。行格式被设置为Dynamic。同时,如果已经存在名为`admin`的表,则会先删除该表再重新创建。
阅读全文