试用SQL语言完成下列功能: 1 建表,在定义中要求声明: (1)每个表有主键; (2)顾客的姓名和商品名不能为空值; (3)单价必须大于0,购买数量必须再0到20之间;
时间: 2024-03-16 09:45:32 浏览: 113
好的,以下是建表的SQL语句:
```
CREATE TABLE product (
productid INT PRIMARY KEY,
productname VARCHAR(50) NOT NULL,
unitprice DECIMAL(8,2) CHECK(unitprice > 0),
category VARCHAR(50),
provider VARCHAR(50)
);
CREATE TABLE customer (
customerid INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
location VARCHAR(50)
);
CREATE TABLE purcase (
customerid INT,
productid INT,
quantity INT CHECK(quantity >= 0 AND quantity <= 20),
PRIMARY KEY (customerid, productid),
FOREIGN KEY (customerid) REFERENCES customer(customerid),
FOREIGN KEY (productid) REFERENCES product(productid)
);
```
这里我们建立了三张表,每张表都有主键,并且规定了顾客的姓名和商品名不能为空值,单价必须大于0,购买数量必须在0到20之间。
相关问题
现有一个商店的数据库,记录顾客及其购物情况,由下面三个表组成: 商品product(商品号productid,商品名productname,单价unitprice,商品类别category,供应商provider); 顾客customer(顾客号customerid,姓名name,住址location); 购买purcase(顾客号customerid,商品号productid,购买数量quantity); 试用SQL语言完成下列功能: 1 建表,在定义中要求声明: (1)每个表有主键; (2)顾客的姓名和商品名不能为空值; (3)单价必须大于0,购买数量必须再0到20之间; 2 往表中插入数据: 商品(M01,佳洁士,8.00,牙膏,宝洁; M02,高露洁,6.50,牙膏,高露洁; M03,洁诺,5.00,牙膏,联合利华; M04,舒肤佳,3.00,香皂,宝洁; M05,夏士莲,5.00,香皂,联合利华; M06,雕牌,2.50,洗衣粉,纳爱斯 M07,中华,3.50,牙膏,联合利华; M08,汰渍,3.00,洗衣粉,宝洁; M09,碧浪,4.00,洗衣粉,宝洁;) 顾客(C01,Dennis,海淀; C02,John,朝阳; C03,Tom,东城; C04,Jenny,东城; C05,Rick,西城;) 购买(C01,M01,3; C01,M05,2; C01,M08,2; C02,M02,5; C02,M06,4; C03,M01,1; C03,M05,1; C03,M06,3; C03,M08,1; C04,M03,7; C04,M04,3; C05,M06,2; C05,M07,8;) 商品有9 条,顾客有5条,购买有13条
以下是SQL语言实现上述功能的代码:
1. 建表
```sql
-- 商品表
CREATE TABLE product (
productid CHAR(3) PRIMARY KEY,
productname VARCHAR(20) NOT NULL,
unitprice DECIMAL(5,2) CHECK(unitprice > 0),
category VARCHAR(10),
provider VARCHAR(20)
);
-- 顾客表
CREATE TABLE customer (
customerid CHAR(3) PRIMARY KEY,
name VARCHAR(20) NOT NULL,
location VARCHAR(20)
);
-- 购买表
CREATE TABLE purchase (
customerid CHAR(3),
productid CHAR(3),
quantity INT CHECK(quantity >= 0 AND quantity <= 20),
PRIMARY KEY (customerid, productid),
FOREIGN KEY (customerid) REFERENCES customer(customerid),
FOREIGN KEY (productid) REFERENCES product(productid)
);
```
2. 插入数据
```sql
-- 商品数据
INSERT INTO product VALUES
('M01', '佳洁士', 8.00, '牙膏', '宝洁'),
('M02', '高露洁', 6.50, '牙膏', '高露洁'),
('M03', '洁诺', 5.00, '牙膏', '联合利华'),
('M04', '舒肤佳', 3.00, '香皂', '宝洁'),
('M05', '夏士莲', 5.00, '香皂', '联合利华'),
('M06', '雕牌', 2.50, '洗衣粉', '纳爱斯'),
('M07', '中华', 3.50, '牙膏', '联合利华'),
('M08', '汰渍', 3.00, '洗衣粉', '宝洁'),
('M09', '碧浪', 4.00, '洗衣粉', '宝洁');
-- 顾客数据
INSERT INTO customer VALUES
('C01', 'Dennis', '海淀'),
('C02', 'John', '朝阳'),
('C03', 'Tom', '东城'),
('C04', 'Jenny', '东城'),
('C05', 'Rick', '西城');
-- 购买数据
INSERT INTO purchase VALUES
('C01', 'M01', 3),
('C01', 'M05', 2),
('C01', 'M08', 2),
('C02', 'M02', 5),
('C02', 'M06', 4),
('C03', 'M01', 1),
('C03', 'M05', 1),
('C03', 'M06', 3),
('C03', 'M08', 1),
('C04', 'M03', 7),
('C04', 'M04', 3),
('C05', 'M06', 2),
('C05', 'M07', 8);
```
sql server2014数据库中有一张表,建表语句是:
当然,SQL Server 2014中的表是用来存储数据的结构化组件。假设你提供了一张简单的建表语句,例如:
```sql
CREATE TABLE Customers (
CustomerID int PRIMARY KEY,
FirstName varchar(50),
LastName varchar(50),
Email varchar(100) UNIQUE,
PhoneNumber char(10),
Address varchar(200)
);
```
这个例子中创建了一个名为`Customers`的表,它有五个字段:
1. `CustomerID`: 主键,用于唯一标识每个客户,通常设置为整数类型并不能为空。
2. `FirstName` 和 `LastName`: 分别表示客户的名和姓,都是字符串类型。
3. `Email`: 客户的电子邮件地址,设为UNIQUE约束以保证邮箱的唯一性。
4. `PhoneNumber`: 客户的电话号码,用固定长度字符类型存储。
5. `Address`: 客户的地址信息,也是一个字符串类型。
如果你需要进一步的信息,可以问我关于如何操作这张表、查询数据或是SQL Server 2014的相关知识点
阅读全文