Heim Datenbank MySQL-Tutorial SQL Server数据库操作

SQL Server数据库操作

Jun 07, 2016 pm 02:49 PM
server sql 操作 数据库 passieren

通过SQL Server建库语句等,采用纯代码方式创建数据库,创建数据表,以及进行相应数据库操作,包括检索,插入,删除,修改。 以下通过一个例题说明数据库操作。 某仓储超市采用POS(PointofSale)收银机负责前台的销售收款,为及时掌握销售信息,并依此指导

 通过SQL Server建库语句等,采用纯代码方式创建数据库,创建数据表,以及进行相应数据库操作,包括检索,插入,删除,修改。


以下通过一个例题说明数据库操作。

某仓储超市采用POS(Point of Sale)收银机负责前台的销售收款,为及时掌握销售信息,并依此指导进货,拟建立商品进、销、存数据库信息管理系统。经过系统需求分析、概念结构设计和逻辑结构设计,可以简化得到如下一组关系模式(其中     表示主键,    表示外键):

积分卡(用户编号,用户名,累积消费金额,积分点)

销售详单(销售流水号,商品编码,数量,金额,用户编号,收银员,时间)

销售日汇总(日期,商品编码,数量)

存货表(商品编码,数量)

进货表(送货号码,商品编码,数量,日期)

商品(商品编码,商品名称,单价)

请在SQL Server的查询分析器中按要求完成如下各题:

1、 创建名为Supermarket的数据库,数据文件名取为:Supermarket_data.mdf,日志文件名取为:Supermarket_log.ldf。

 

2、 按表1-6要求创建6张数据表,并为每张表设置主键码和外键码(若有的话)。

表1 Integralcard积分卡信息表

列名

数据类型

可否为空

说明

User_id

char(10)

Not null

用户编号

User_name

varchar(20)

Not null

用户名

Cumulative_consumption

numeric(8,2)

Not null

累计消费金额

Integral_point

numeric(5,0)

Not null

积分点

表2 Salesdetails 销售详单信息表

列名

数据类型

可否为空

说明

sales_id

char(10)

Not null

销售流水号

commodity_code

char(10)

Not null

商品编码

number

numeric(4,0)

null

数量

amount

numeric(9,2)

null

金额

User_id

char(10)

Not null

用户编号

cashier

varchar(20)

null

收银员

sd_time

datetime

null

时间

表3 Salesdatesummary 销售日汇总信息表

列名

数据类型

可否为空

说明

sds_date

datetime

Not null

日期

commodity_code

char(10)

Not null

商品编码

number

numeric(4,0)

null

数量

表4 Inventorylist存货信息表

列名

数据类型

可否为空

说明

commodity_code

char(10)

Not null

商品编码

number

numeric(4,0)

null

数量

表5 Purchasetable进货信息表

列名

数据类型

可否为空

说明

delivery_number

char(10)

Not null

送货号码

commodity_code

char(10)

Not null

商品编码

number

numeric(4,0)

null

数量

pt_date

datetime

Not null

日期

表6 Commodity商品信息表

列名

数据类型

可否为空

说明

commodity_code

char(10)

Not null

商品编码

commodity_name

varchar(10)

Not null

商品名称

commodity_price

numeric(7,2)

Not null

商品单价

 

3、在建好的6张表中,利用对象资源管理器分别输入和更新若干条记录,要求主键码不能为空和重复,外键码只能取另一张表的主键码之一。

 

4、针对该数据库的6张表,完成如下10个查询请求:

1)查询用户编号为’yh23001011’的用户的用户名、累积消费金额和积分点;

 

2)查询’张三’用户所购的全部商品的商品编码、商品名称、单价、数量和金额;

 

(3)查询2016年4月各类商品销售数量的排行榜,要求显示商品编号、商品名称和数量(按降序排列);

 

(4)根据销售详单中的销售流水号’xs80020001’和商品编码’sp03004561’,对存货表中的数量进行更新;

 

5根据进货表中的送货号码’sh00012288’和商品编码’sp03006677’, 对存货表中的数量进行更新;

 

(6)统计2016年4月中每一天的销售金额,要求显示日期、销售金额(按降序排列)。

 

5、针对该数据库的6张表,定义如下2个视图:

(1)定义一个商品存货的视图Commodity_Inventorylist,属性包括商品编码、商品名称、单价和数量;

 

(2)定义一个用户购买商品的详细清单User_Purchase_Details, 属性包括用户编号、用户名、商品编码、商品名称、单价和数量。


SQL Server 2008 R2上实现过程如下:


--创建数据库
--创建名为Supermarket的数据库,数据文件名取为:Supermarket_data.mdf,日志文件名取为:Supermarket_log.ldf。
USE master--使用系统
GO
CREATE DATABASE Supermarket --创建数据库

ON PRIMARY	--主文件
(
	NAME='Supermarket_data', --文件名
	FILENAME='D:\SQLProject\Supermarket_data.mdf',--路径
	SIZE=5MB,--初始大小
	MAXSIZE=100MB,--最大容量
	FILEGROWTH=10%--增长速度
)

LOG ON--日志文件
(
	NAME='Supermarket_log',
	FILENAME='D:\SQLProject\Supermarket_log.ldf',
	SIZE=5MB,
	FILEGROWTH=0
)
GO

--创建你数据库表
--模式(其中     表示主键,    表示外键):
--积分卡(用户编号,用户名,累积消费金额,积分点)
--销售详单(销售流水号,商品编码,数量,金额,用户编号,收银员,时间)
--销售日汇总(日期,商品编码,数量)
--存货表(商品编码,数量)
--进货表(送货号码,商品编码,数量,日期)
--商品(商品编码,商品名称,单价)
use Supermarket
go

--积分卡(用户编号,用户名,累积消费金额,积分点)
create table Integralcard
(
	User_id char(10) primary key not null,
	User_name varchar(20) not null,
	Cumulative_consumption numeric(8,2) not null,
	Integral_point numeric(5,0) not null
)
go

--销售详单(销售流水号,商品编码,数量,金额,用户编号,收银员,时间)
use Supermarket
go

create table Salesdetails
(
	sales_id char(10) not null,
	commodity_code char(10) not null foreign key(commodity_code) references Commodity(commodity_code)
	on delete cascade,
	number numeric(4,0) null,
	amount numeric(9,2) null,
	User_id char(10) not null foreign key(User_id) references Integralcard(User_id)
	on delete cascade,
	cashier varchar(20) null,
	sd_time datetime null
)
go
--外键
ALTER TABLE Salesdetails
ADD CONSTRAINT Salesdetails_KEY PRIMARY KEY(sales_id,commodity_code,User_id)
Go
--销售日汇总(日期,商品编码,数量)
use Supermarket
go

create table Salesdatesummary
(
	sds_date datetime not null,
	commodity_code char(10) not null  foreign key(commodity_code) references Commodity(commodity_code)
	on delete cascade,
	number numeric(4,0) null
)
go

ALTER TABLE Salesdatesummary
ADD CONSTRAINT Salesdatesummary_KEY PRIMARY KEY(commodity_code)
Go
--存货表(商品编码,数量)
use Supermarket
go

create table Inventorylist
(
	commodity_code char(10) not null foreign key(commodity_code) references Commodity(commodity_code)
	on delete cascade,
	number numeric(4,0) null
)
go
ALTER TABLE Inventorylist
ADD CONSTRAINT Inventorylist_KEY PRIMARY KEY(commodity_code)
Go

--进货表(送货号码,商品编码,数量,日期)
use Supermarket
go

create table Purchasetable
(
	delivery_number char(10) not null,
	commodity_code char(10) not null foreign key(commodity_code) references Commodity(commodity_code)
	on delete cascade,
	number numeric(4,0) null,
	pt_date datetime not null
)
go
--外键
ALTER TABLE Purchasetable
ADD CONSTRAINT Purchasetable_KEY PRIMARY KEY(delivery_number,commodity_code)
Go


--商品(商品编码,商品名称,单价)
use Supermarket
go

create table Commodity
(
	commodity_code char(10) primary key not null,
	commodity_name varchar(10) not null,
	commodity_price numeric(7,2) not null
)
go

-----------------------------------------------
--查询用户编号为’yh23001011’的用户的用户名、累积消费金额和积分点
use Supermarket
select User_name as 姓名,Cumulative_consumption as 累计消费金额,Integral_point as 积分点 from Integralcard
where User_id='yh23001011'
go


--查询’张三’用户所购的全部商品的商品编码、商品名称、单价、数量和金额;
use Supermarket
select com.commodity_code,com.commodity_name,com.commodity_price,sal.number,sal.amount
 from Commodity com,Salesdetails sal,Integralcard ca
where com.commodity_code=sal.commodity_code and sal.User_id=ca.User_id and ca.User_name='张三'
go

--查询2016年4月各类商品销售数量的排行榜,要求显示商品编号、商品名称和数量(按降序排列)
use Supermarket
select com.commodity_code,com.commodity_name,sal.number,sal.sd_time
from Commodity com,Salesdetails sal
where com.commodity_code=sal.commodity_code and sal.sd_time between '2016-04-01' and '2016-04-30' 
order by sal.number desc
go


--查看结果
use Supermarket
select number from Inventorylist
where Inventorylist.commodity_code='sp03004561'
go
--根据销售详单中的销售流水号’xs80020001’和商品编码’sp03004561’,对存货表中的数量进行更新
use Supermarket
update Inventorylist
set number= number - (select sal.number from Salesdetails sal
where sal.sales_id='xs80020001' and sal.commodity_code='sp03004561')
go
--查看更新结果
use Supermarket
select number from Inventorylist
where Inventorylist.commodity_code='sp03004561'
go


--查看结果
use Supermarket
select number from Inventorylist
where Inventorylist.commodity_code='sp03006677'
go
--根据进货表中的送货号码’sh00012288’和商品编码’sp03006677’, 对存货表中的数量进行更新
use Supermarket
update Inventorylist
set Inventorylist.number=Inventorylist.number +(select pur.number from Purchasetable pur
where pur.delivery_number='sh00012288' and pur.commodity_code='sp03006677')
go
--查看更新结果
use Supermarket
select number from Inventorylist
where commodity_code='sp03006677'
go

--统计2016年4月中每一天的销售金额,要求显示日期、销售金额(按降序排列)
use Supermarket
select sal.sds_date,salemoney=com.commodity_price*sal.number
from Commodity com,Salesdatesummary sal
where com.commodity_code=sal.commodity_code and sal.sds_date>='2016-04-01' and sal.sds_date
<p><span style="font-size:18px"><br>
</span></p>
<p><span style="font-size:18px"><span style="color:#ff6600">数据库实现截图:</span></span></p>
<br>
<img src="/static/imghw/default1.png" data-src="http://img.blog.csdn.net/20160519185100347?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" class="lazy" alt=""><br>
<p><span style="font-size:18px"><br>
</span></p>
   








Nach dem Login kopieren
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist der Unterschied zwischen HQL und SQL im Hibernate-Framework? Was ist der Unterschied zwischen HQL und SQL im Hibernate-Framework? Apr 17, 2024 pm 02:57 PM

HQL und SQL werden im Hibernate-Framework verglichen: HQL (1. Objektorientierte Syntax, 2. Datenbankunabhängige Abfragen, 3. Typsicherheit), während SQL die Datenbank direkt betreibt (1. Datenbankunabhängige Standards, 2. Komplexe ausführbare Datei). Abfragen und Datenmanipulation).

Wie implementiert die Go-Sprache die Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge der Datenbank? Wie implementiert die Go-Sprache die Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge der Datenbank? Mar 27, 2024 pm 09:39 PM

Die Go-Sprache ist eine effiziente, prägnante und leicht zu erlernende Programmiersprache. Sie wird von Entwicklern aufgrund ihrer Vorteile bei der gleichzeitigen Programmierung und Netzwerkprogrammierung bevorzugt. In der tatsächlichen Entwicklung sind Datenbankoperationen ein unverzichtbarer Bestandteil. In diesem Artikel wird erläutert, wie die Go-Sprache zum Implementieren von Datenbank-Hinzufügungs-, Lösch-, Änderungs- und Abfrageoperationen verwendet wird. In der Go-Sprache verwenden wir normalerweise Bibliotheken von Drittanbietern, um Datenbanken zu betreiben, z. B. häufig verwendete SQL-Pakete, Gorm usw. Hier nehmen wir das SQL-Paket als Beispiel, um vorzustellen, wie die Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge der Datenbank implementiert werden. Angenommen, wir verwenden eine MySQL-Datenbank.

Wie implementiert Hibernate polymorphe Zuordnung? Wie implementiert Hibernate polymorphe Zuordnung? Apr 17, 2024 pm 12:09 PM

Die polymorphe Hibernate-Zuordnung kann geerbte Klassen der Datenbank zuordnen und bietet die folgenden Zuordnungstypen: Joined-Subclass: Erstellen Sie eine separate Tabelle für die Unterklasse, einschließlich aller Spalten der übergeordneten Klasse. Tabelle pro Klasse: Erstellen Sie eine separate Tabelle für Unterklassen, die nur unterklassenspezifische Spalten enthält. Union-Unterklasse: ähnelt der verbundenen Unterklasse, aber die Tabelle der übergeordneten Klasse vereint alle Spalten der Unterklasse.

iOS 18 fügt eine neue Albumfunktion „Wiederhergestellt' hinzu, um verlorene oder beschädigte Fotos wiederherzustellen iOS 18 fügt eine neue Albumfunktion „Wiederhergestellt' hinzu, um verlorene oder beschädigte Fotos wiederherzustellen Jul 18, 2024 am 05:48 AM

Apples neueste Versionen der iOS18-, iPadOS18- und macOS Sequoia-Systeme haben der Fotoanwendung eine wichtige Funktion hinzugefügt, die Benutzern dabei helfen soll, aus verschiedenen Gründen verlorene oder beschädigte Fotos und Videos einfach wiederherzustellen. Mit der neuen Funktion wird im Abschnitt „Extras“ der Fotos-App ein Album mit dem Namen „Wiederhergestellt“ eingeführt, das automatisch angezeigt wird, wenn ein Benutzer Bilder oder Videos auf seinem Gerät hat, die nicht Teil seiner Fotobibliothek sind. Das Aufkommen des Albums „Wiederhergestellt“ bietet eine Lösung für Fotos und Videos, die aufgrund einer Datenbankbeschädigung verloren gehen, die Kameraanwendung nicht korrekt in der Fotobibliothek speichert oder eine Drittanbieteranwendung die Fotobibliothek verwaltet. Benutzer benötigen nur wenige einfache Schritte

Eine ausführliche Analyse, wie HTML die Datenbank liest Eine ausführliche Analyse, wie HTML die Datenbank liest Apr 09, 2024 pm 12:36 PM

HTML kann die Datenbank nicht direkt lesen, dies kann jedoch über JavaScript und AJAX erreicht werden. Zu den Schritten gehören das Herstellen einer Datenbankverbindung, das Senden einer Abfrage, das Verarbeiten der Antwort und das Aktualisieren der Seite. Dieser Artikel bietet ein praktisches Beispiel für die Verwendung von JavaScript, AJAX und PHP zum Lesen von Daten aus einer MySQL-Datenbank und zeigt, wie Abfrageergebnisse dynamisch auf einer HTML-Seite angezeigt werden. In diesem Beispiel wird XMLHttpRequest verwendet, um eine Datenbankverbindung herzustellen, eine Abfrage zu senden und die Antwort zu verarbeiten. Dadurch werden Daten in Seitenelemente gefüllt und die Funktion des HTML-Lesens der Datenbank realisiert.

Ausführliches Tutorial zum Herstellen einer Datenbankverbindung mit MySQLi in PHP Ausführliches Tutorial zum Herstellen einer Datenbankverbindung mit MySQLi in PHP Jun 04, 2024 pm 01:42 PM

So verwenden Sie MySQLi zum Herstellen einer Datenbankverbindung in PHP: MySQLi-Erweiterung einbinden (require_once) Verbindungsfunktion erstellen (functionconnect_to_db) Verbindungsfunktion aufrufen ($conn=connect_to_db()) Abfrage ausführen ($result=$conn->query()) Schließen Verbindung ( $conn->close())

Umgang mit Datenbankverbindungsfehlern in PHP Umgang mit Datenbankverbindungsfehlern in PHP Jun 05, 2024 pm 02:16 PM

Um Datenbankverbindungsfehler in PHP zu behandeln, können Sie die folgenden Schritte ausführen: Verwenden Sie mysqli_connect_errno(), um den Fehlercode abzurufen. Verwenden Sie mysqli_connect_error(), um die Fehlermeldung abzurufen. Durch die Erfassung und Protokollierung dieser Fehlermeldungen können Datenbankverbindungsprobleme leicht identifiziert und behoben werden, wodurch der reibungslose Betrieb Ihrer Anwendung gewährleistet wird.

So binden Sie WeChat an Ele.me So binden Sie WeChat an Ele.me Apr 01, 2024 pm 03:46 PM

Ele.me ist eine Software, die eine Vielzahl verschiedener Köstlichkeiten zusammenführt. Der Händler kann diese sofort nach Erhalt der Bestellung über die Software binden Betriebsmethode Denken Sie daran, die chinesische PHP-Website zu besuchen. Anweisungen zum Binden von WeChat an Ele.me: 1. Öffnen Sie zuerst die Ele.me-Software und klicken Sie nach dem Aufrufen der Startseite auf [Mein] in der unteren rechten Ecke. 2. Klicken Sie dann auf die Seite „Mein“. [Konto] in der oberen linken Ecke; 3. Gehen Sie dann zur Seite mit den persönlichen Informationen, auf der wir Mobiltelefone, WeChat, Alipay und Taobao verknüpfen können. 4. Nach dem letzten Klick wählen wir das WeChat-Konto aus Das muss auf der WeChat-Autorisierungsseite gebunden werden und auf „Einfach zulassen“ klicken.

See all articles