我们要知道6个数据类型
--数据类型
-- 整数 int
-- 小数 float
-- 字符串 varchar(50)
-- 字符 char(50)
-- 日期 date(2020-1-1),datetime(2020-1-1 12:00:00)
-- 布尔类型 bit 0是假,1是真
六个约束
-- 主键(pk) primary key
-- 非空 not null
-- 默认 default
-- 唯一 unique
-- 检查 check
-- 外键(fk)简写 外键在日常是不常用的所以在这没有必要写
现在我们来建一个表
create table tb_user(
--列名 类型 约束
uid int primary key identity,
uname varchar(20) not null,
upwd varchar(16) not null default '888888',
usex varchar(2) not null check(usex='男' or usex='女'),
uage int not null default 18 check(uage>0 and uage<150),
usf varchar(20) not null
);
在进行一个增删改查
-- 查询
-- select 选择,from 来自
select * from tb_user;
-- 增加
-- insert 增加,into 到,values 值
insert into tb_user
values('小百','root123','男',100,'dasfafgfsad');
-- 修改
-- update 修改,set 设置
update tb_user set usex='女',uage=139;
-- 删除 delete
delete tb_user;
delete from tb_user;
然后我们在新建一个表,更深的了解下
-- 新建表
create table tb_stu(
id int primary key identity,
name varchar(50) not null,
pwd varchar(20)
);
-- 增加
-- 表名后面带列名,意思就是这些对应的列
-- 表名后面不带列名,意思就是全部插入
-- 自增主键不需要填
-- 查询
-- * 所有
-- 一些列
select * from tb_stu;
-- 只查询学生的名字
select name from tb_stu;
-- 只查询学生的密码
select pwd from tb_stu;
-- 只查询学生的名字,密码
select name,pwd from tb_stu;
-- 中文列名
select name as '名字',pwd as '密码' from tb_stu;
-- 全部修改
update tb_stu set pwd=456;
-- 条件修改 where
-- 所有的修改和删除因该都是根据主键来
update tb_stu set pwd=789 where id=1;
update tb_stu set pwd='000' where name='大黑';
-- 删除数据
delete tb_stu; --删除表中的所有的内容
-- 条件删除 where
delete tb_stu where id=1;
delete tb_stu where name='大黑';
-- create 新建表
-- drop 删除表
drop table tb_stu;
-- 增insert 删delete 改update 查select
现在我们来写一个酒店的管理系统 并实现一些简单的增删改查
一、数据库表介绍:
编号 |
表名 |
中文说明 |
1 |
tb_type |
客房类型表 |
2 |
tb_kefang |
客房表 |
3 |
tb_dengji |
登记表 |
4 |
tb_users |
用户表 |
二、数据表结构:
1、tb_users用户表 |
|||||
字段名 |
中文说明 |
字段类型 |
字段大小 |
是否为空 |
其它 |
uid |
用户编号 |
int |
|
false |
主键,标识列 |
uname |
用户名 |
varchar |
20 |
False |
|
upwd |
密码 |
varchar |
16 |
False |
默认值为888888 |
usex |
性别 |
varchar |
2 |
False |
取值“男”或“女” |
uage |
年龄 |
int |
|
False |
取值大于0小于150 |
usf |
身份 |
varchar |
20 |
False |
|
2、tb_type客户类型表 |
|||||
字段名 |
中文说明 |
字段类型 |
字段大小 |
是否为空 |
其它 |
tid |
类型编号 |
int |
|
false |
主键,标识列 |
tname |
类型名 |
varchar |
20 |
False |
|
tmenu |
备注 |
varchar |
30 |
true |
|
3、tb_kefang客房表 |
|||||
字段名 |
中文说明 |
字段类型 |
字段大小 |
是否为空 |
其它 |
fid |
客房编号 |
int |
|
false |
主键(由楼层和房间号组成) |
tid |
类型编号 |
int |
|
false |
外键(客房类型tid) |
fprice |
房价 |
float |
|
false |
|
fkzrs |
可住人数 |
int |
|
false |
|
fyzrs |
已住人数 |
int |
|
flase |
默认值为0 |
fcnt |
入住统计 |
int |
|
false |
默认值为0 |
fmenu |
备注 |
varchar |
100 |
false |
|
4、tb_dengji登记表 |
|||||
字段名 |
中文说明 |
字段类型 |
字段大小 |
是否为空 |
其它 |
did |
编号 |
int |
|
false |
主键 |
dname |
客户名 |
varchar |
20 |
false |
|
dfid |
房间编号 |
int |
|
false |
外键(客房表 fid) |
dsfz |
身份证号 |
varchar |
18 |
false |
|
dyj |
押金 |
float |
|
false |
|
drz |
入住时间 |
datetime |
|
false |
默认为当前日期 |
dtf |
退房时间 |
datetime |
|
true |
|
--2、查询所有用户
tb_users
--3、查询客房类型表的所有记录
tb_type
--4、查询所有客房的信息
tb_kefang
--5、查看登记表
tb_dengji
--6、查看用户表中所有用户的用户名及密码
--7、查看客房的状态(即只查询客房表的客房编号及状态)
--8、查房:在登记表中查所有住在101的客户
--tb_users用户表
create table tb_users(
uid int primary key identity,
uname varchar(20)not null,
upwd varchar(16) not null default'888888',
usex varchar(2)not null check(usex='男'or usex='女'),
uage int not null check(uage>0 and uage<150) ,
usf varchar(20) not null,
);
--tb_type客户类型表
create table tb_type(
tid int not null primary key,
tname varchar(20)not null,
tmenu varchar(30)not null,
);
--tb_kefang客房表
create table tb_kefang(
fid int not null primary key,
aid int not null check(aid>1 and aid<100000),
fprice float not null,
fkzrs int not null,
fvzrs int not null default 0,
fcnt int not null default 0,
fmenu varchar(100) not null,
);
--tb_dengji登记表
create table tb_dengji(
did int not null primary key,
danem varchar(20)not null,
dfid int not null,
dsfz varchar(18)not null,
dyj float not null,
drz datetime default 2022,
dyf datetime ,
);
对酒店管理进行增删改查
--2、查询所有用户
select * from tb_users;
--3、查询客房类型表的所有记录
select tid from tb_type;
--查询所有客房的信息
select * from tb_kefang;
--5、查看登记表
select * from tb_dengji;
--6、查看用户表中所有用户的用户名及密码
select uname ,upwd from tb_users;
--7、查看客房的状态(即只查询客房表的客房编号及状态)
select fid,fcnt from tb_kefang;
--8、查房:在登记表中查所有住在101的客户
select did=101 from tb_dengji;
--9、在客房表中查找所有的空房间
select fcnt=null from tb_kefang;