数据库综合系列 之 基本表的创建和增删改查

主要通过6张表的建立来实现数据库操作,数据库设计是不合理的,主要是探索基本语法使用和实现。

t_manager :经理表,主要负责一个商店,销售人员

t_shop        : 商店

t_cash_housewoker   : 销售人员表

t_director :仓库主任,主要负责一个仓库,和业务人员

t_warehouse :仓库信息表

t_account       :业务人员信息表

数据库创建:

create database test


商店信息表:

create database test
use  test;
create table t_shop
(
    s_id int identity(1,1) primary key, --商店编号
	s_name varchar(20),                 --商店名称
	s_tel varchar(11),					--商店电话
    s_address text						--地址
);


经理信息表:

create table manage
(
	m_id int primary key identity(1,1),  --identity(1,1) 低版本sql server 的自动增长
    m_name varchar(20),
	m_password varchar(20),
	m_sex varchar(2) check((m_sex='男') or (m_sex='女')),
	m_bir datetime,
    m_tel varchar(11),
    s_id int ,
   foreign key(s_id) references t_shop(s_id)
);


销售人员表:

create table t_cash_housewoker
(
    c_id int primary key identity(1,1),
	c_name varchar(20) ,
	c_password varchar(20),
	c_sex varchar(2)check((c_sex='男') or (c_sex='女')),
	c_bir datetime,
	c_tel varchar(11),
	m_id int,
	foreign key(m_id) references manage(m_id)
)


仓库表:

create table t_warehouse
(
	w_id int identity(1,1),
	w_name varchar(20),
	w_address text,
    primary key(w_id)
)

定义仓库主任表

create table t_director
(
	d_id int identity(1,1) primary key,
	d_name varchar(10),
	d_password varchar(20),
	d_sex varchar(2) check((d_sex='男') or (d_sex='女')),
	d_bir datetime ,
	d_tel varchar(11),
	w_id int,
    foreign key(w_id) references t_warehouse(w_id) on delete cascade on update cascade --定义级联删除和级联修改
)


业务人员信息表:

create table  t_account
(
	a_id int identity(1,1) primary key,
	a_name varchar(10),
    a_password varchar(20),
	a_sex varchar(2) check((a_sex='男') or (a_sex='女')),
	a_bir datetime,
	a_tel varchar(11),
	d_id int ,
   foreign key(d_id) references t_director(d_id)
)


插入语句的实现:

商店 

insert into t_shop values('烩面馆','11111111112','新乡')
insert into t_shop values('酒店','11111111112','河南科技学院')

经理:

insert into manage values('buyingfei','11111111112','男','2010-10-10','11111111112',1)
insert into manage values('buyafei','11111111112','男','2010-10-10','11111111112',2)

销售人员:

insert into t_cash_housewoker values('销售1','11111111112','男','2010-10-10','11111111112',1)
insert into t_cash_housewoker values('销售2','11111111112','男','2010-10-10','11111111112',1)


仓库:

insert into t_warehouse values('仓库1','河南科技学院')
insert into t_warehouse values('仓库2','河南')

仓库主任:

insert into t_director values('仓库主任1','11111111112','男','2010-10-10','11111111112',1)
insert into t_director values('仓库主任2','11111111112','男','2010-10-10','11111111112',2)

业务员:

insert into t_account values('业务员1','11111111112','男','2010-10-10','11111111112',1)
insert into t_account values('业务员2','11111111112','男','2010-10-10','11111111112',1)



查询:

查询m_id负责的商店和销售人员

select s_name 商店名字,s_address 商店地址,c_name 销售人员 from t_shop,t_cash_housewoker where s_id in(select s_id from manage where m_id=1) and  t_cash_housewoker.m_id=1

修改:

修改m_id=1经理的名字

update manage set m_name='步迎飞' where m_id='1'


删除:

delete from t_director where d_id in(3) --因为定义了级联删除,会直接删除仓库表中相关数据









原文地址:https://www.cnblogs.com/fuhaots2009/p/3481826.html