Oracle学习笔记004(小案例ER图+sql语句)

在这里插入图片描述
ER图

  • E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实实体关系的概念模型.
  • ER图分为实体、属性、关系三个核心部分.
  • ER图中的关系用三种,一对一,一对多,多对多.

下边以一个购物流程的ER图为例,并附上相应的sql语句.(不足之处欢迎指点)
在这里插入图片描述
建表语句:

--用户表
CREATE TABLE pleatuser(
    id VARCHAR2(32),
    user_name VARCHAR2(32) NOT NULL,
    user_addr VARCHAR2(64) DEFAULT '该用户很懒,没有填写地址',
    phone VARCHAR2(11) UNIQUE,
    CONSTRAINT pk_pleatuser_id PRIMARY KEY(id)
    );
--添加备注
COMMENT ON TABLE pleatuser.id IS '用户id';
COMMENT ON TABLE pleatuser.user_name IS '用户名称';
COMMENT ON TABLE pleatuser.user_addr IS '用户地址';
COMMENT ON TABLE pleatuser.phone IS '用户电话';


--订单表
CREATE TABLE indent(
    id VARCHAR2(32),
    user_id VARCHAR2(32) UNIQUE NOT NULL,
    commodity_id VARCHAR2(32) UNIQUE NOT NULL,
    create_date DATE,
    CONSTRAINT pk_indent_id PRIMARY KEY(id),
    CONSTRAINT fk_pleatuser_indent FOREIGN KEY(user_id) REFERENCES pleatuser(id)
    );

COMMENT ON TABLE indent.id IS '订单id';
COMMENT ON TABLE indent.user_id IS '用户id';
COMMENT ON TABLE indent.commodity_id IS '商品id';
COMMENT ON TABLE indent.create_date IS '下单时间';

--订单详情表    
CREATE TABLE indentdetail(
    id VARCHAR2(32),
    indent_id VARCHAR2(32) UNIQUE NOT NULL,
    commodity_id VARCHAR(32) UNIQUE NOT NULL,
    CONSTRAINT pk_indentdetail_id PRIMARY KEY(id),
    CONSTRAINT fk_indent_indentdetail FOREIGN KEY(indent_id) REFERENCES indent(id),
    CONSTRAINT fk_commodity_indentdetail FOREIGN KEY(commodity_id) REFERENCES commodity(id)
    );
    
COMMENT ON TABLE indentdetail.id IS '订单详情id';
COMMENT ON TABLE indentdetail.ident_id IS '订单id';
COMMENT ON TABLE indentdetail.commodity IS '商品id';


--浏览记录表
CREATE TABLE browse(
    id VARCHAR2(32),
    user_id VARCHAR2(32) UNIQUE NOT NULL,
    commodity_id VARCHAR2(32) UNIQUE NOT NULL,
    browse_date DATE,
    CONSTRAINT pk_browse_id PRIMARY KEY(id),
    constraint fk_browsse_commodity FOREIGN KEY(commodity_id) REFERENCES commodity(id),
    constraint fk_browse_pleatuser FOREIGN KEY(user_id) REFERENCES pleatuser(id)
    );
    
COMMENT ON TABLE browse.id IS '浏览记录id';
COMMENT ON TABLE browse.user_id IS '浏览用户id';
COMMENT ON TABLE browse.commodity_id IS '浏览的商品id';
COMMENT ON TABLE browse.create_date IS '浏览时间';


--商品表  
 CREATE TABLE commodity(
    id VARCHAR2(32),
    commodity_name VARCHAR2(64) NOT NULL,
    category VARCHAR2(32) DEFAULT '生活',
    CONSTRAINT pk_commodity_id PRIMARY KEY(id)
    );
COMMENT ON TABLE commodity.id IS '商品id';
COMMENT ON TABLE commodity.commodity_name IS '商品名称';
COMMENT ON TABLE commodity.category IS '商品类别';


--商家表   
CREATE TABLE merchant(
    id VARCHAR2(32),
    merchant_name VARCHAR2(32) NOT NULL,
    merchant_addr VARCHAR2(64) DEFAULT '商家很懒,没有填写地址',
    CONSTRAINT pk_merchant_id PRIMARY KEY(id)
    );
COMMENT ON TABLE merchant.id IS '商家id';
COMMENT ON TABLE merchant.merchant_name IS '商家名称';
COMMENT ON TABLE merchant.merchant_addr IS '商家地址';


--截断表(清除表数据,不能回滚)
TRUNCATE TABLE PLEATUSER;
--删除表
DROP TABLE PLEATUSER;

TRUNCATE TABLE INDENT;
DROP TABLE INDENT;

TRUNCATE TABLE INDETNDETAIL;
DROP TABLE INDETNDETAIL;

TRUNCATE TABLE BROWSE;
DROP TABLE BROWSE;

TRUNCATE TABLE COMMODITY;
DROP TABLE COMMODITY;

TRUNCATE TABLE MERCHANT;
DROP TABLE MERCHANT;


边学习边记录,若有不足之处欢迎留言指点…

发布了63 篇原创文章 · 获赞 1 · 访问量 2031

猜你喜欢

转载自blog.csdn.net/qq_45061361/article/details/104387444