eshop(商城管理系统)MySQL源码

-- 实训一 T-SQL操作数据库

-- 一、创建数据库eshop(网上商城数据库),写出下列操作的命令语句

-- 设置客户端字符集编码为gbk

set names gbk;

-- 1. 创建数据库eshop

create database eshop;

sql 复制代码
 create database eshop;

-- 2. 打开数据库eshop

use eshop;

sql 复制代码
use eshop;

-- 3. 显示数据库中所有表

show tables;

sql 复制代码
        show tables;

-- 二、创建数据表

-- 4. 在ESHOP数据库中建立"会员"表,用于存放会员信息:

create table 会员

(

会员编号 varchar(20) not null primary key,

姓名 varchar(20) not null,

性别 char(2) not null default '男',

出生日期 date,

住址 varchar(50),

工资 float not null,

密码 varchar(20) not null default '111111',

电话号码 varchar(11) not null unique

);

sql 复制代码
   create table 会员
        (
            会员编号      varchar(20)      not null  primary  key,
            姓名          varchar(20)      not null,
            性别          char(2)          not null  default  '男',
            出生日期      date,
            住址          varchar(50),
            工资          float              not null,
            密码          varchar(20)      not null   default  '111111',
            电话号码      varchar(11)      not null   unique
        );

-- 在ESHOP数据库中建立"产品"表,用于存放产品信息:

create table 产品

(

产品编号 char(10) not null primary key,

产品名称 varchar(30) not null,

生产日期 date,

数量 int,

价格 float,

备注信息 varchar(50)

);

-- 在ESHOP数据库中建立"订单"表,用于存放订单信息:

create table 订单

(

订单编号 int not null auto_increment primary key,

会员编号 varchar(20) not null,

产品编号 char(10) not null,

订购数量 int not null,

订单日期 date not null,

确认状态 char(1) not null,

支付状态 char(1) not null,

发货状态 char(1) not null

);

-- 5、在"订单"表中创建外键,分别参照'会员'表的会员编号、"产品"表的'产品编号'

alter table 订单

add constraint fk_会员_订单 foreign key(会员编号) references 会员(会员编号)

on delete cascade on update cascade;

alter table 订单

add constraint fk_产品_订单 foreign key(产品编号) references 产品(产品编号)

on delete cascade on update cascade;

sql 复制代码
     alter table 订单
        add    constraint  fk_会员_订单 foreign key(会员编号)  references  会员(会员编号)
        on delete cascade  on update cascade;

        alter table 订单
        add    constraint fk_产品_订单 foreign key(产品编号) references 产品(产品编号)
        on delete cascade  on update cascade;

-- 三、录入数据到数据表

-- 6. 录入数据到ESHOP数据库的会员表:

-- 对应命令如下:

insert into 会员(会员编号,姓名,性别,出生日期,住址,工资,密码,电话号码)

values

('Jinjin','津津有味','女','1982-04-14','北京市',8200.0,'jinjin','13112345678'),

('Lfz','刘法治','男','1976-08-26','天津市',4500.0,'lfz0826','13156785678'),

('liuzc518','刘志成','男','1972-05-18','江西九江',3500.0,'liuzc518','13112341234'),

('wangj','王娟','女','1979-05-18','江西九江',3500.0,'Wj1972','13612345670'),

('wangxj','王晓娟','女','1979-05-18','江西九江',3500.0,'Wxj1972','13612345678'),

('Wangym','王咏梅','女','1974-08-06','湖南长沙',4000.0,'wangym0806','13211111111'),

('wenh','翁红','男','1970-04-20','江西南昌',5500.0,'888888','15345678123'),

('zhangsan','张三','男','1982-04-14','北京市',8200.0,'Zs88888','13512345678'),

('Zhangzl','张自亮','男','1975-04-20','江西九江',4300.0,'zhangzl','13312312312'),

('zhao888','赵云','男','1972-02-12','江西九江',5500.0,'zhao888','13412345678');

-- 录入数据到ESHOP数据库的产品表:

-- 对应命令如下:

insert into 产品(产品编号,产品名称,生产日期,数量,价格,备注信息)

values

('0130810324','清华同方电脑','2005-12-11',7,8000.0,'优惠多多'),

('0140810330','洗衣粉','2005-05-31',1000,8.6,'特价销售'),

('0140810332','红彤彤腊肉','2005-05-20',43,15.0,'是一种卫生食品'),

('0140810333','力士牌香皂','2005-05-06',22,6.0,'是一种清洁用品'),

('0240810330','电动自行车','2005-05-31',10,1586.0,'价廉物美'),

('0240810333','自行车','2005-05-31',10,586.0,'价廉物美'),

('0910810001','爱国者MP3','2005-05-31',100,450.0,'价廉物美'),

('0910810002','商务通','2005-05-20',10,850.0,'价廉物美'),

('0910810003','名人好记星','2005-05-31',100,550.0,'价廉物美'),

('0910810004','奥美嘉U盘','2005-05-31',100,350.0,'价廉物美');

-- 录入数据到ESHOP数据库的订单表:

-- 注意:第6条记录中的产品编号的值0140810324在产品表中不存在,因为外键的关系,不能输入该条记录,所以将0140810324改为0130810324
-- 注意:第六列字段名'确定状态'应该是'确认状态'

insert into 订单(订单编号,会员编号,产品编号,订购数量,订单日期,确

认状态,支付状态,发货状态)

values

(null,'jinjin','0910810004',2,'2005-06-06','1','0','0'),

(null,'jinjin','0910810004',1,'2005-08-09','1','1','1'),

(null,'lfz','0910810001',5,'2005-08-09','0','0','0'),

(null,'lfz','0910810004',2,'2005-06-06','1','1','1'),

(null,'lfz','0910810004',2,'2005-08-09','1','1','1'),

(null,'liuzc518','0140810324',1,'2005-10-09','0','0','0'),

(null,'liuzc518','0910810001',1,'2005-10-09','1','1','0'),

(null,'liuzc518','0910810004',12,'2005-10-09','1','1','0'),

(null,'wangym','0910810001',1,'2005-08-09','1','0','0'),

(null,'zhao888','0240810333',2,'2005-06-06','1','1','0');

-- 四、ESHOP数据库中表和表记录的操作

-- 7. 查看'会员'表的建表语句

show create table 会员;

sql 复制代码
 show create table 会员;

-- 8. 查看会员表的结构。

desc 会员;

sql 复制代码
     desc 会员;

-- 9. 在会员表中新增一列电子邮件m_mail(VARCHAR类型,长度20)。

alter table 会员

add m_mail varchar(20);

sql 复制代码
alter table 会员
        add m_mail varchar(20);

-- 10. 删除会员表中列m_mail。

alter table 会员

drop m_mail;

sql 复制代码
      alter table 会员
        drop m_mail;

-- 五、表数据操作

-- 11. 向'订单'表插入一条订单信息。

insert into 订单(订单编号,会员编号,产品编号,订购数量,订单日期,确认状态,支付状态,发货状态)

values

(null,'jinjin','0910810004',2,'2005-06-06','1','0','0');

sql 复制代码
insert into 订单(订单编号,会员编号,产品编号,订购数量,订单日期,确认状态,支付状态,发货状态)
values
(null,'jinjin','0910810004',2,'2005-06-06','1','0','0');

-- 12. 将性别为"男",且家庭地址为"江西九江"的会员的工资增加1000。

update 会员

set 工资=工资+1000

where 性别='男' and 住址='江西九江';

sql 复制代码
  update 会员
        set 工资=工资+1000
        where 性别='男' and 住址='江西九江';

-- 13. 删除住址为"赣州"的会员记录。

delete from 会员

where 住址='赣州';

sql 复制代码
  delete from 会员
        where 住址='赣州';

-- 14.查询所有会员的会员编号,姓名,性别,住址,工资,并按住址升序排列,住址相同的按工资降序排列。

select 会员编号,姓名,性别,住址,工资

from 订单

order by 住址,工资 desc;

sql 复制代码
select  会员编号,姓名,性别,住址,工资
from  订单
order  by  住址,工资  desc;

-- 15.查询女会员的会员编号,姓名,性别,住址

select 会员编号,姓名,性别,住址

from 会员

where 性别='女';

sql 复制代码
select  会员编号,姓名,性别,住址 
from 会员  
where  性别='女';

-- 16. 查询工资前5名的会员信息。

select *

from 会员

order by 工资 desc

limit 0,5;

sql 复制代码
select  *  
from  会员 
order  by  工资  desc  
limit 0,5;

-- 17.查询每个城市(住址)的会员工资平均值,列名指定为为"各会员月薪平均值"。

select 会员编号,avg(工资) as 各会员月薪平均值

from 会员

group by 会员编号;

sql 复制代码
select  会员编号,avg(工资)  as 各会员月薪平均值
from   会员
group  by  会员编号;

-- 18. 查询每个城市(住址)的会员人数,要求输出会员数大于2的住址和人数。

select 住址,count(*)

from 会员

group by 住址

having count(*)>=2;

sql 复制代码
select  住址,count(*)
from    会员
group  by  住址
having  count(*)>=2;

-- 19. 查询产品名称为"清华同方电脑"的购买信息,包括会员编号、姓名、订单编号、产品名称

select 会员.会员编号,姓名,订单编号,产品名称

from 会员 inner join 订单 on 会员.会员编号=订单.会员编号

inner join 产品 on 订单.产品编号=产品.产品编号

WHERE 产品名称='清华同方电脑';

sql 复制代码
select  会员.会员编号,姓名,订单编号,产品名称
from    会员  inner  join  订单 on 会员.会员编号=订单.会员编号  
              inner  join   产品  on 订单.产品编号=产品.产品编号
WHERE   产品名称='清华同方电脑';

-- 20. 用命令方式备份eshop数据库到e盘根目录eshop.sql 文件(要包含建库语句)

mysqldump -uroot -p123456 --databases eshop > e:\eshop.sql

sql 复制代码
mysqldump  -uroot  -p123456  --databases  eshop  >  e:\eshop.sql 
相关推荐
编程饭碗6 分钟前
【Mysql日期字段】
数据库·mysql
Thomas.Sir6 分钟前
精通 MySQL 面试题
数据结构·数据库·mysql
上海云盾-小余12 分钟前
应用层漏洞实战防护:SQL 注入、XSS、文件上传漏洞一站式加固方案
数据库·sql·xss
鸽芷咕13 分钟前
从语法兼容到语义一致:深度解析金仓如何“无感”承接MySQL复杂业务
数据库·mysql
新缸中之脑14 分钟前
AI智能体评估指南
数据库·人工智能·oracle
add45a18 分钟前
Python类型提示(Type Hints)详解
jvm·数据库·python
曾阿伦28 分钟前
SQL 用法详解:从基础操作到进阶实战的全场景指南
数据库·sql
ew4521828 分钟前
【SQL】DISTINCT 与 GROUP BY 核心区别及常见误区、问题全梳理
sql·mysql
NCU_wander29 分钟前
操作系统/数据库和业务应用/中间件/硬件之间的关系
数据库·中间件
Navicat中国31 分钟前
如何从0到1完成函数设计 | Navicat 教程
数据库·函数·navicat