SQL Server数据库操作
通过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, 属性包括用户编号、用户名、商品编码、商品名称、单价和数量。
--创建数据库 --创建名为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>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Keluaran terbaharu Apple bagi sistem iOS18, iPadOS18 dan macOS Sequoia telah menambah ciri penting pada aplikasi Photos, yang direka untuk membantu pengguna memulihkan foto dan video yang hilang atau rosak dengan mudah disebabkan pelbagai sebab. Ciri baharu ini memperkenalkan album yang dipanggil "Dipulihkan" dalam bahagian Alat pada apl Foto yang akan muncul secara automatik apabila pengguna mempunyai gambar atau video pada peranti mereka yang bukan sebahagian daripada pustaka foto mereka. Kemunculan album "Dipulihkan" menyediakan penyelesaian untuk foto dan video yang hilang akibat kerosakan pangkalan data, aplikasi kamera tidak disimpan ke pustaka foto dengan betul, atau aplikasi pihak ketiga yang menguruskan pustaka foto. Pengguna hanya memerlukan beberapa langkah mudah

Cara menggunakan MySQLi untuk mewujudkan sambungan pangkalan data dalam PHP: Sertakan sambungan MySQLi (require_once) Cipta fungsi sambungan (functionconnect_to_db) Fungsi sambungan panggilan ($conn=connect_to_db()) Laksanakan pertanyaan ($result=$conn->query()) Tutup sambungan ( $conn->close())

Untuk mengendalikan ralat sambungan pangkalan data dalam PHP, anda boleh menggunakan langkah berikut: Gunakan mysqli_connect_errno() untuk mendapatkan kod ralat. Gunakan mysqli_connect_error() untuk mendapatkan mesej ralat. Dengan menangkap dan mengelog mesej ralat ini, isu sambungan pangkalan data boleh dikenal pasti dan diselesaikan dengan mudah, memastikan kelancaran aplikasi anda.

Jadual Kandungan Prinsip Staking Astar Dapp Staking Hasil Pembongkaran Projek Airdrop Berpotensi: AlgemNeurolancheHealthreeAstar Degens DAOVeryLongSwap Staking Strategi & Operasi "AstarDapp Staking" telah dinaik taraf kepada versi V3 pada awal tahun ini, dan banyak pelarasan telah dibuat pada staking peraturan. Pada masa ini, kitaran pertaruhan pertama telah tamat, dan kitaran kecil "pengundian" kitaran pertaruhan kedua baru sahaja bermula. Untuk mendapatkan faedah "ganjaran tambahan", anda perlu memahami peringkat kritikal ini (dijangka akan berlangsung sehingga 26 Jun, berbaki kurang daripada 5 hari). Saya akan memecahkan pendapatan pertaruhan Astar secara terperinci,

Melalui pakej pangkalan data/sql perpustakaan standard Go, anda boleh menyambung ke pangkalan data jauh seperti MySQL, PostgreSQL atau SQLite: buat rentetan sambungan yang mengandungi maklumat sambungan pangkalan data. Gunakan fungsi sql.Open() untuk membuka sambungan pangkalan data. Lakukan operasi pangkalan data seperti pertanyaan SQL dan operasi sisipan. Gunakan tangguh untuk menutup sambungan pangkalan data untuk mengeluarkan sumber.

Menggunakan fungsi panggil balik pangkalan data di Golang boleh mencapai: melaksanakan kod tersuai selepas operasi pangkalan data yang ditentukan selesai. Tambah tingkah laku tersuai melalui fungsi berasingan tanpa menulis kod tambahan. Fungsi panggil balik tersedia untuk operasi memasukkan, mengemas kini, memadam dan pertanyaan. Anda mesti menggunakan fungsi sql.Exec, sql.QueryRow atau sql.Query untuk menggunakan fungsi panggil balik.

Gunakan perpustakaan DataAccessObjects (DAO) dalam C++ untuk menyambung dan mengendalikan pangkalan data, termasuk mewujudkan sambungan pangkalan data, melaksanakan pertanyaan SQL, memasukkan rekod baharu dan mengemas kini rekod sedia ada. Langkah-langkah khusus ialah: 1. Sertakan penyata perpustakaan yang diperlukan 2. Buka fail pangkalan data 3. Buat objek Recordset untuk melaksanakan pertanyaan SQL atau memanipulasi data 4. Melintasi keputusan atau mengemas kini rekod mengikut keperluan tertentu;

Panduan sambungan pangkalan data PHP: MySQL: Pasang sambungan MySQLi dan buat sambungan (nama pelayan, nama pengguna, kata laluan, nama db). PostgreSQL: Pasang sambungan PgSQL dan buat sambungan (hos, nama db, pengguna, kata laluan). Oracle: Pasang sambungan OracleOCI8 dan buat sambungan (nama pelayan, nama pengguna, kata laluan). Kes praktikal: Dapatkan data MySQL, pertanyaan PostgreSQL, rekod kemas kini OracleOCI8.
