数据库作业3

10. 创建表的 SQL 语句

(1)图书表

CREATE TABLE 图书 (  
    书号 NCHAR(6) PRIMARY KEY,  
    书名 NVARCHAR(30) NOT NULL,  
    作者名 CHAR(10) NOT NULL,  
    出版日期 SMALLDATETIME,  
    价格 DECIMAL(4,1)  
);  

(2)书店表

CREATE TABLE 书店 (  
    书店编号 NCHAR(6) PRIMARY KEY,  
    店名 NVARCHAR(30) NOT NULL,  
    电话 CHAR(8),  
    地址 VARCHAR(40),  
    邮政编码 CHAR(6)  
);  

(3)图书销售表

CREATE TABLE 图书销售 (  
    书号 NCHAR(6) NOT NULL,  
    书店编号 NCHAR(6) NOT NULL,  
    销售日期 SMALLDATETIME NOT NULL,  
    销售数量 TINYINT CHECK (销售数量 >= 1),  
    PRIMARY KEY (书号, 书店编号, 销售日期),  
    FOREIGN KEY (书号) REFERENCES 图书(书号),  
    FOREIGN KEY (书店编号) REFERENCES 书店(书店编号)  
);  

后续操作:

  • 添加“印刷数量”列
    ALTER TABLE 图书  
    ADD 印刷数量 INT CHECK (印刷数量 >= 1000);  
    
  • 删除“邮政编码”列
    ALTER TABLE 书店  
    DROP COLUMN 邮政编码;  
    

11. 修改“销售数量”列的数据类型

ALTER TABLE 图书销售  
ALTER COLUMN 销售数量 INT;  

12. SQL 语言的功能

SQL 语言的主要功能包括:

  1. 数据定义(DDL):定义或修改数据库结构(如 CREATE, ALTER, DROP)。
  2. 数据操作(DML):插入、更新、删除数据(如 INSERT, UPDATE, DELETE)。
  3. 数据查询(DQL):检索数据(如 SELECT)。
  4. 数据控制(DCL):管理权限(如 GRANT, REVOKE)。

用户修改已有数据的操作

  • 通过 UPDATE 语句实现,例如:
    UPDATE 表名 SET 列名 = 新值 WHERE 条件;  
    

13. 数据查询

数据查询是 SQL 的核心功能,通过 SELECT 语句实现复杂操作:

  • 多表连接:使用 JOIN 关联多表数据。
    SELECT 图书.书名, 书店.店名  
    FROM 图书销售  
    JOIN 图书 ON 图书销售.书号 = 图书.书号  
    JOIN 书店 ON 图书销售.书店编号 = 书店.书店编号;  
    
  • 聚合函数:统计汇总(如 SUM, AVG, COUNT)。
    SELECT 书号, SUM(销售数量) AS 总销量  
    FROM 图书销售  
    GROUP BY 书号;  
    
  • 子查询:嵌套查询结果。
    SELECT 书名 FROM 图书  
    WHERE 书号 IN (SELECT 书号 FROM 图书销售 WHERE 销售数量 > 100);  
    

总结

  • 表定义需明确主键、外键、非空约束等完整性规则。
  • 修改表结构使用 ALTER TABLE,注意数据类型兼容性。
  • SQL 语言功能全面,覆盖数据库的增删改查及权限管理。
posted @ 2025-05-20 21:17  f-52Hertz  阅读(28)  评论(0)    收藏  举报