一道SQL数据库题,有哪位大神知道正解?

2025-03-03 21:54:23
推荐回答(4个)
回答1:

0:

create database booksdb
on  primary  -- 默认就属于primary文件组,可省略
 (
/*--数据文件的具体描述--*/
 name='booksdb_data',  -- 主数据文件的逻辑名称
 filename='f:data\booksdb.mdf', -- 主数据文件的物理名称
size=5mb, --主数据文件的初始大小
maxsize=100mb, -- 主数据文件增长的最大值
filegrowth=15%--主数据文件的增长率
 )
 log on
 (
 /*--日志文件的具体描述,各参数含义同上--*/
    name='stuDB_log',
    filename='f:data\booksdb_log.ldf',
    size=2mb,
     filegrowth=1mb
 )

 1:

CREATE TABLE publish (
pubishid char(5) NOT NULL,
pubishname varchar(100) NOT NULL , 
pubishddr varchar(200) NOT NULL , 
pubishtel varchar(30) NOT NULL , 
CONSTRAINT p_publish
PRIMARY KEY NONCLUSTERED (pubishid )) ;

回答2:

use master 
go
IF EXISTS (SELECT * FROM sys.databases WHERE name = 'Booksdb')
  DROP DATABASE Booksdb
GO

--EXEC xp_cmdshell 'mkdir D:\data'
CREATE DATABASE Booksdb 
ON PRIMARY(
 NAME = 'Booksdb_data',
 FILENAME = 'D:\data\Booksdb_data.mdf'--,
 --SIZE = 512KB,
 --MAXSIZE = 5MB,
 --FILEGROWTH = 20%
 ) 
GO

USE booksdb
go
--1
CREATE table publish
(
publishid char(5) primary key,
publishname varchar(100) NOT NULL,
publishaddr varchar(200) not null,
publishtel varchar(30) unique
)
GO

--2
CREATE TABLE books
(
bookid int identity(1,1) primary key,
bookname varchar(100) not null,
bookprice int check(bookprice between 1 and 500),
bookcontent varchar(2000) not null,
publishid char(5) foreign key references publish(publishid)
)
GO
--3
INSERT INTO publish (publishid,publishname,publishaddr,publishtel) values('P-A','出版社名','地址','1383838438')
go
--4
INSERT INTO books (bookname,bookprice,bookcontent,publishid) VALUES('书名',102,'图书内容','P-A')
GO
--5.1
SELECT bookid,bookprice as '单价',bookcontent,p.publishname FROM books b
LEFT JOIN publish p ON b.publishid = p.publishid
--5.2
SELECT bookid,bookprice as '单价',bookcontent,p.publishname FROM books b
LEFT JOIN publish p ON b.publishid = p.publishid
WHERE b.bookprice > 50
--5.3
SELECT bookid,bookprice as '单价',bookcontent,p.publishname FROM books b
LEFT JOIN publish p ON b.publishid = p.publishid
WHERE b.bookprice > 50 AND b.bookprice < 100
ORDER BY b.bookprice DESC
--5.4
SELECT bookid,bookprice as '单价',bookcontent,p.publishname FROM books b
LEFT JOIN publish p ON b.publishid = p.publishid
WHERE b.bookname LIKE '%java%'
--5.5
SELECT TOP 2 bookid,bookprice as '单价',bookcontent,p.publishname FROM books b
LEFT JOIN publish p ON b.publishid = p.publishid
--5.6
SELECT p.publishname,count(*) as '数量' FROM books b
LEFT JOIN publish p ON b.publishid = p.publishid
GROUP BY p.publishname
--6
UPDATE books SET bookprice = 80 WHERE bookid = 2
--7
DELETE FROM books WHERE bookid = 1
--8
DELETE FROM books WHERE bookprice > 100
--9
SELECT * FROM books
--10 (有主外键关系)
drop TABLE books
go
drop TABLE publish
go
--11
USE master
GO

DROP DATABASE Booksdb
GO

回答3:

增删改查,除了工作量大没难点

回答4:

什麼数据库都没说你们就这麼答了啊??