学习《MySQL必知必会》中所使用到的数据库和数据表

    技术2022-07-11  105

    创建表和插入数据的sql文件 链接: https://pan.baidu.com/s/137GAZV_5–CVOSsJqnOTrA 提取码: hacw 我们可以把该数据库看作是一个推销商使用的订单录入系统,比如喜欢鞋子的朋友可以把他看作是一个AJ推销商的录入系统,喜欢手机的朋友可以把他看作是一个手机推销商的录入系统。一个市场上的供货商都可以给推销上供货,推销商向顾客直接销售,这个数据库要完成一下几个任务

    管理供货商(一个推销商使用多个供货商的货物)管理产品目录(只要产品种类丰富才可以销路更广)管理顾客列表(要用心对待每个客户)录入顾客订单(客户订单可以统计很多东西) 根据这几个任务,我们需要把作为关系数据库的紧密联系的6个表

    创建数据表的mysql文件

    /* vendors表存储销售产品的供应商。每个供应商在这个表中有一个记 录,供应商ID(vend_id)列用来匹配产品和供应商。*/ -- 表1 CREATE TABLE vendors ( vend_id INT NOT NULL AUTO_INCREMENT, vend_name CHAR(50) NOT NULL , vend_address CHAR(50) NULL , vend_city CHAR(50) NULL , vend_state CHAR(5) NULL , vend_zip CHAR(10) NULL , vend_country CHAR(50) NULL , PRIMARY KEY (vend_id) ) ENGINE=INNODB; /*products表包含产品目录,每行一个产品。每个产品有唯一的ID (prod_id列),通过vend_id(供应商的唯一ID)关联到它的供应商。*/ -- 表2 CREATE TABLE products ( prod_id CHAR(10) NOT NULL, vend_id INT NOT NULL , prod_name CHAR(255) NOT NULL , prod_price DECIMAL(8,2) NOT NULL , prod_desc TEXT NULL , PRIMARY KEY(prod_id) ) ENGINE=INNODB; /*customers表存储所有顾客的信息。每个顾客有唯一的ID(cust_id 列)。*/ -- 表3 CREATE TABLE customers ( cust_id INT NOT NULL AUTO_INCREMENT, cust_name CHAR(50) NOT NULL , cust_address CHAR(50) NULL , cust_city CHAR(50) NULL , cust_state CHAR(5) NULL , cust_zip CHAR(10) NULL , cust_country CHAR(50) NULL , cust_contact CHAR(50) NULL , cust_email CHAR(255) NULL , PRIMARY KEY (cust_id) ) ENGINE=INNODB; /*orders表存储顾客订单(但不是订单细节)。每个订单唯一地编号 (order_num列)。订单用cust_id列(它关联到customer表的顾客唯一ID) 与相应的顾客关联。*/ -- 表4 CREATE TABLE orders ( order_num INT NOT NULL AUTO_INCREMENT, order_date DATETIME NOT NULL , cust_id INT NOT NULL , PRIMARY KEY (order_num) ) ENGINE=INNODB; /*orderitems表存储每个订单中的实际物品,每个订单的每个物品占 一行。对orders中的每一行,orderitems中有一行或多行。每个订单物 品由订单号加订单物品(第一个物品、第二个物品等)唯一标识*/ -- 表5 CREATE TABLE orderitems ( order_num INT NOT NULL , order_item INT NOT NULL , prod_id CHAR(10) NOT NULL , quantity INT NOT NULL , item_price DECIMAL(8,2) NOT NULL , PRIMARY KEY (order_num, order_item) ) ENGINE=INNODB; /* productnotes表存储与特定产品有关的注释。并非所有产品都有相 关的注释,而有的产品可能有许多相关的注释。*/ -- 表6 CREATE TABLE productnotes ( note_id INT NOT NULL AUTO_INCREMENT, prod_id CHAR(10) NOT NULL, note_date DATETIME NOT NULL, note_text TEXT NULL , PRIMARY KEY(note_id), FULLTEXT(note_text) ) ENGINE=MYISAM; /*Define foreign keys*/ ALTER TABLE orderitems ADD CONSTRAINT fk_orderitems_orders_1 FOREIGN KEY (order_num) REFERENCES orders (order_num) ; ALTER TABLE orderitems ADD CONSTRAINT fk_orderitems_products_1 FOREIGN KEY (prod_id) REFERENCES products (prod_id) ; ALTER TABLE orders ADD CONSTRAINT fk_orders_customers_1 FOREIGN KEY (cust_id) REFERENCES customers (cust_id) ; ALTER TABLE products ADD CONSTRAINT fk_products_vendors_1 FOREIGN KEY (vend_id) REFERENCES vendors (vend_id)

    插入数据mysql代码:

    /* vendors表存储销售产品的供应商。每个供应商在这个表中有一个记 录,供应商ID(vend_id)列用来匹配产品和供应商。*/ -- 表1 CREATE TABLE vendors ( vend_id INT NOT NULL AUTO_INCREMENT, vend_name CHAR(50) NOT NULL , vend_address CHAR(50) NULL , vend_city CHAR(50) NULL , vend_state CHAR(5) NULL , vend_zip CHAR(10) NULL , vend_country CHAR(50) NULL , PRIMARY KEY (vend_id) ) ENGINE=INNODB; /*products表包含产品目录,每行一个产品。每个产品有唯一的ID (prod_id列),通过vend_id(供应商的唯一ID)关联到它的供应商。*/ -- 表2 CREATE TABLE products ( prod_id CHAR(10) NOT NULL, vend_id INT NOT NULL , prod_name CHAR(255) NOT NULL , prod_price DECIMAL(8,2) NOT NULL , prod_desc TEXT NULL , PRIMARY KEY(prod_id) ) ENGINE=INNODB; /*customers表存储所有顾客的信息。每个顾客有唯一的ID(cust_id 列)。*/ -- 表3 CREATE TABLE customers ( cust_id INT NOT NULL AUTO_INCREMENT, cust_name CHAR(50) NOT NULL , cust_address CHAR(50) NULL , cust_city CHAR(50) NULL , cust_state CHAR(5) NULL , cust_zip CHAR(10) NULL , cust_country CHAR(50) NULL , cust_contact CHAR(50) NULL , cust_email CHAR(255) NULL , PRIMARY KEY (cust_id) ) ENGINE=INNODB; /*orders表存储顾客订单(但不是订单细节)。每个订单唯一地编号 (order_num列)。订单用cust_id列(它关联到customer表的顾客唯一ID) 与相应的顾客关联。*/ -- 表4 CREATE TABLE orders ( order_num INT NOT NULL AUTO_INCREMENT, order_date DATETIME NOT NULL , cust_id INT NOT NULL , PRIMARY KEY (order_num) ) ENGINE=INNODB; /*orderitems表存储每个订单中的实际物品,每个订单的每个物品占 一行。对orders中的每一行,orderitems中有一行或多行。每个订单物 品由订单号加订单物品(第一个物品、第二个物品等)唯一标识*/ -- 表5 CREATE TABLE orderitems ( order_num INT NOT NULL , order_item INT NOT NULL , prod_id CHAR(10) NOT NULL , quantity INT NOT NULL , item_price DECIMAL(8,2) NOT NULL , PRIMARY KEY (order_num, order_item) ) ENGINE=INNODB; /* productnotes表存储与特定产品有关的注释。并非所有产品都有相 关的注释,而有的产品可能有许多相关的注释。*/ -- 表6 CREATE TABLE productnotes ( note_id INT NOT NULL AUTO_INCREMENT, prod_id CHAR(10) NOT NULL, note_date DATETIME NOT NULL, note_text TEXT NULL , PRIMARY KEY(note_id), FULLTEXT(note_text) ) ENGINE=MYISAM; /*Define foreign keys*/ ALTER TABLE orderitems ADD CONSTRAINT fk_orderitems_orders_1 FOREIGN KEY (order_num) REFERENCES orders (order_num) ; ALTER TABLE orderitems ADD CONSTRAINT fk_orderitems_products_1 FOREIGN KEY (prod_id) REFERENCES products (prod_id) ; ALTER TABLE orders ADD CONSTRAINT fk_orders_customers_1 FOREIGN KEY (cust_id) REFERENCES customers (cust_id) ; ALTER TABLE products ADD CONSTRAINT fk_products_vendors_1 FOREIGN KEY (vend_id) REFERENCES vendors (vend_id)
    Processed: 0.011, SQL: 9