梦相随1006

版权归 梦相随1006 所有,未经 https://www.cnblogs.com/xin1006 作者许可,严禁转载

导航

mysql数据库-初始化sql建库建表-关联查询投影问题

下面是一个简易商城的几张表的创建方式

drop database if exists shop ;
create database shop CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
-- 授权
-- 将数据库shop的所有操作权限授予root用户
grant all on shop.* to 'root'@'localhost' identified by '123456';
use shop;

-- 用户表
create table t_user(
    id int(10) primary key auto_increment,
    username varchar(50) comment '用户名',
    passwd varchar(50) comment '密码',
    nickname varchar(50) comment '昵称',
    type int(3) comment '用户类型'
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 收货地址表
create table t_address(
    id int(10) primary key auto_increment,
    name varchar(50) comment '收件人',
    phone varchar(50),
    postcode varchar(50),
    detail varchar(255) comment '详细地址',
    user_id int(10),
    constraint foreign key(user_id) references t_user(id) 
);
-- 订单表
create table t_orders(
    id int(10) primary key auto_increment,
    buy_date datetime comment '下单时间',
    pay_date datetime comment '付款时间',
    confirm_date datetime comment '确认时间',
    state int(3),
    user_id int(10),
    addr_id int(10),
    constraint foreign key(user_id) references t_user(id),
    constraint foreign key(addr_id) references t_address(id)
);
-- 商品类别表
create table t_category(
    id int(10) primary key auto_increment,
    name varchar(50)
);
-- 商品表
create table t_goods(
    id int(10) primary key auto_increment,
    name varchar(100) comment '商品名',
    intro text comment '商品简介',
    price double,
    img varchar(100) comment '图片地址',
    stock int(10) comment '库存',
    category_id int(10),
    constraint foreign key(category_id) references t_category(id)    
);
-- 商品订单多对多关联表
create table t_goods_orders(
    id int(10) primary key auto_increment,
    goods_id int(10),
    orders_id int(10),
    constraint foreign key(goods_id) references t_goods(id),
    constraint foreign key(orders_id) references t_orders(id)    
);
-- 购物车不存数据库

#注意 -- (双长划) 注释风格要求在两个长划后至少有一个空格! 

导入到mysql数据库  source sql路径;

 

-- 查询地址的同时,将用户信息也查询出来
-- 查询出来发现,投影部分有两个id,需要额外处理
java语言中的sql语句 String sql
="select *,t1.id as a_id,t2.id as u_id from t_address t1 left join t_user t2 on(t1.user_id=t2.id) where user_id=? ";

 

 

 

 

posted on 2013-09-09 14:41  梦相随1006  阅读(527)  评论(0编辑  收藏  举报