实验十 结构化查询语言SQL
- 格式:doc
- 大小:40.50 KB
- 文档页数:6
简述结构化查询语言(sql)。
并且举例。
下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
简述结构化查询语言(sql)。
并且举例。
该文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document 简述结构化查询语言(sql)。
并且举例。
can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!结构化查询语言(SQL)是一种用于管理关系数据库的标准化语言。
VFP数据库与程序设计作业与实验报告(第五章结构化查询语言)学号:姓名:专业:教师:2014年4月第五章结构化查询语言SQL【实验题目一】结构化查询语言(1)【实验目的】通过本次实验,让学生掌握用SQL语句定义表、修改表的结构以及对表中数据的修改。
【实验准备】1.准备好前次实验所用的文件数据。
2.启动VFP6.0,将“我的VFP实验作业”文件夹设置为默认工作目录。
【实验内容及实验步骤】1.用create-SQL 语句在数据库jxgl中创建表yjs.dbf(表结构请看实验教材P95的表5-6)。
命令:creat table yjs(xh c(6) primary key,xm c(8),xb c(2) default "男",nl i check nl<45,rxnyd null)2.用alter-table命令为yjs.dbf增加字段:专业c(10)。
命令:alter table yjs add zy c(10)3.用alter-table命令为yjs.dbf修改“入学年月”字段,设置默认值为:2006年9月1日。
命令:alter table yjs alter rxny set default {^2006/09/01}4. 用alter-table命令删除“性别”字段的默认值设置。
命令: alter table yjs alter xb drop default5. 用alter-table命令修改“年龄”字段的有效性设置为“年龄介于20到45岁之间”,并给出相应的错误提示信息。
命令:alter table yjs alter nl set check nl>20.or.nl<45 error"年龄介于20到45之间"6. 用alter-table命令修改“入学年月”字段,将字段名改为“入学时间”。
命令:alter table yjs rename rxny to rxsj7. 用alter-table命令删除字段“专业”。
结构化查询语言sql语句SQL(Structured Query Language)是一种用于管理关系数据库系统的计算机语言。
它通过使用特定的语法和命令,可以对数据库进行增删改查等操作。
下面列举了10个常用的SQL语句,以及它们的功能和使用方法。
1. SELECT语句SELECT语句用于从数据库中检索数据。
它可以指定要查询的列、表以及查询条件,返回满足条件的数据集合。
例如:```SELECT * FROM employees;```上述语句将返回employees表中的所有数据。
2. INSERT语句INSERT语句用于向数据库中插入新的数据行。
它可以指定要插入的表、列和对应的值。
例如:```INSERT INTO customers (name, email) VALUES ('John', '****************');```上述语句将在customers表中插入一条新的数据行,包含name和email两个列的值。
3. UPDATE语句UPDATE语句用于更新数据库中的数据行。
它可以指定要更新的表、列和对应的新值,以及更新的条件。
例如:```UPDATE products SET price = 10 WHERE category = 'Electronics';```上述语句将更新products表中所有category为'Electronics'的数据行的price列为10。
4. DELETE语句DELETE语句用于从数据库中删除数据行。
它可以指定要删除的表和删除的条件。
例如:```DELETE FROM orders WHERE status = 'cancelled';```上述语句将从orders表中删除所有status为'cancelled'的数据行。
5. CREATE TABLE语句CREATE TABLE语句用于创建新的数据库表。
查询设计与结构化查询语言SQLSQL查询实验内容理论总结与实例1、SQL语言的首要特点SQL是一种功能齐全的一体化语言:(1)数据定义语言DDL包括定义、修改与删除基本表及建立与删除索引等。
(2)数据操纵语言DML包括插入、修改与删除数据等。
(3)数据查询语言DQL包括单表查询、连接查询、嵌套查询等各种查询功能。
(4)数据控制语言DCL包括数据的安全性控制、数据的完整性控制、数据库的恢复及并发控制等功能。
2、数据定义(SQL的一种特定查询)(1)创建表(可以创建表间关系)在SQL语言中,可以使用Create Table语句定义数据表。
语句格式:Create Table表名(字段名1 类型名(长度) Primary Key,字段名2……) 例:在“教务管理备份”库中分别创建“学生”表、“课程”表和“成绩”表,并分别设置两个一对多关系。
步骤:1)打开新建SQL查询的命令窗口;2)输入建立“学生”表并设置学号为主键的SQL查询命令:Create Table 学生(学号text(8) Primary key)3)运行上述查询并查看表结构(含主键设置)4)输入建立“课程”表并设置课程号为主键的SQL查询命令:Create Table 课程(课程号text(2) Primary key,课程名text(10),学分Single)5)运行上述查询并查看表结构(含主键设置)6)输入建立“成绩”表并分别通过“学号”、“课程号”两字段建立与“学生”表、“课程”表的一对多关系的SQL命令:Create Table 成绩(课程号text(2) References 课程,学号text(8) References 学生,成绩Single)(2)修改表结构语句格式:Alter Table 表名Add 新字段名类型名(长度),……(增加字段)Drop 字段名1,……(删除字段)Alter 字段名1 类型名(长度),……(修改字段)例:步骤1)打开新建SQL查询命令窗口;2)输入为“学生”表增加“年龄”字段的SQL查询命令:Alter Table 学生Add 年龄text(2)3)输入删除“学生”表中“年龄”字段的SQL查询命令:Alter Table Drop 年龄4)输入修改“学生”表中“姓名”字段宽度为6的SQL查询命令:Alter Table 学生Alter 姓名Text(6) (3)删除表语句格式:Drop Table 表名3、SQL操作查询:使用SQL命令进行记录维护(1)插入数据(追加查询)语句格式:Insert Into 表名(字段名清单) Values(表达式清单)例:输入为“学生”表追加一条新纪录的SQL查询命令(只输入学号、姓名、性别和入学成绩四个字段值):Insert Into 学生(学号,姓名,性别,入学成绩)Values(“7”,“杜虎”,“男”,560) (2)更新数据(更新查询)语句格式:Update 表名Set 字段名1=表达式1,字段名2=表达式2,……Where 条件例:输入更新“学生”表中学院为“城建学院”的字段值为“城市建设学院”的SQL 查询命令:Update 学生Set 学院=“城市建设学院”where 学院=“城市学院”(3)删除数据(删除查询)语句格式:Delete From 表名Where 条件例:输入删除“学生”表中姓名为“李明”的记录:Delete From 学生Where 姓名=“李明”3、Select查询:使用SQL命令建立的数据查询(对已建立的数据表中的数据进行检索的操作)(1)简单查询(一般指单表查询,是对一个表进行的查询操作)1)基本查询Select的基本结构:Select All|Distinct字段名 1 As列名称,……From 数据源表或查询Where 筛选条件例:查询学生表中所有学生的姓名和截止统计时的年龄,去掉重名。
SQL結構化查詢語言第三堂 主要函數的使用、基本操作(2)聯成電腦張明泰 mtchang.tw@正規化n將表格細分成多個表 格,直到每個Table 只描述一種事實為 止,其間的過程就稱 為正規化。
實例探討n假設我們將要設計一個成績單郵寄列印系 統,需要學號、地址、郵遞區號、學科代碼 與各科成績等資料,而初步搜集到的原始資 料如下表所示:第一正規化n將表格中的變動項目展開來,其結果即為 一級正規化。
n 1. 必須為rowcolumn的二維式tablen 2. table的每一筆資料(row)只描述一件事情n 3. 每一欄位只含有單一事物的特性(欄位的唯一性)n 4. 每一筆row的欄位內只允許存放單一值n 5. 每個欄位名稱必須是獨一無二的n 6. 沒有任何兩筆資料是相同的n 7. row或欄位的先後順予是無關緊要的n→ 結論:消除重覆性資料1NF後表格An最重要的是能滿足 n「每個欄位只能含有一個值」1NF後的狀況n在同一學生只能選修同科目一次 的條件下n Stu_no」加上「Subject_no」可 以做為 A 的主鍵(Primary key) n有三項「功能相依」關係是錯誤的 (如紅線所示),City與 ZIP 的值與 Subject_no 無關。
1NF後的問題n無法單獨新增一筆學生資料。
因為 Subject_no 是 Primary key之一,不能為空值(Null);因 此,一個未修習任何課程學生的資料,將無法 寫入 A。
n無法單獨刪除一筆成績資料。
如果我們打算刪 除(75524, S5302)這筆資料的話,該生的地址 資料也將一併消失。
n需要同步異動的資料太多。
假如 75312 這個學 生搬家了,那麼我們得異動其中的 6 筆紀錄。
n因此得繼續進行 2NF第二正規化n移去部分相關性(Partial dependency)得到二 級正規化。
n第二正規化的表格必須合下面條件:n移去部分相關性n→ 結論:消除功能相依(Functional Dependency)n所謂功能相依是指表格和表格之間的相互關係,若某個 表格中有兩個欄位A及B,當A欄位值可推導出B欄位 值,稱功能相依性。
SQL-结构化查询语言1.SQL简介在这里插入图片描述SQL是一种结构化查询语言,是专门为数据库而建立的操作命令集,是一门数据库语言。
对于数据库的交互操作离不开SQL,SQL为我们管理数据库提供了极大的方便。
1.1 数据库用例构建•在MySQL命令行客户端中运行“CREATE DATABASE sample;”,创建sample 数据库•在MySQL命令行客户端中运行“USE sample;”,转至sample数据库进行后续操作•在MySQL命令行客户端中运行create.txt中的SQL语句,创建数据表•在MySQL命令行客户端中运行populate.txt中的SQL语句,将数据导入sample数据库•在MySQL命令行客户端中运行“SHOW TABLES;”,查看数据表创建情况•在MySQL命令行客户端中运行“select * from Customers;select * from orderitems;select * from orders;select * from products;select * fromvend ors;”,查看数据导入情况数据库2.SQL总览在这里插入图片描述SQL语言的讲解可以从定义、语法规则、数据类型、SQL语法、函数、高级查询、视图这七个方面展开,但是我们需要知道SQL语言的核心与难点是解决数据库数据查询的问题,数据查询也是我们最常用的服务,所以我们要重点掌握这一核心技术!3.SQL详解3.1数据类型在这里插入图片描述SQL能够处理的数据类型包括以上十几种,这些数据都可以以表格的形式存储于数据库中,但是数据库的海纳百川是EXCEL无法比拟的,这也是为什么公司数据的存储用数据库的一个重要原因。
3.2 语法规则在这里插入图片描述语法规则是编写SQL语句必须遵守的硬规则,如果没有遵守,则会运行出错;所以我们对SQL程序的检查首先从它是否满足语法规则开始。
3.3 函数函数函数多用于对查询到的数据进行处理,与SQL语句结合使用,所以SQL语言还具有一定的数据分析能力。
实验十结构化查询语言SQL 一、实验目的
学会使用SQL语言命令
二、预备知识
SQL语言的语法为:
(一)数据定义
1.建立一个表:CREATE TABLE|DBF
格式:CREATE TABLE|DBF <表名1>[NAME <长表名>][FREE] (<列名1> <类型1> [(<宽度>[,<小数>])
[NULL|NOT NULL]
[CHECK <逻辑表达式l>[ERROR <字符表达式1>]]
[DEFAULT <表达式1>]
[PRIMARY KEY|UNIQUE]
[REFERENCES <表名2> [TAG <标识1>]]
[NOCPTRANS]
[,(<列名2>…)]
[PRIMARY KEY <表达式2> TAG <标识2>
|UNIQUE <表达式3> TAG <标识3>]
[FOREIGE KEY <表达式4> TAG <标识4>[NODUP]
REFERENCES <表名3> [TAG <标识5>]]
[,CHECK <逻辑表达式2> [ERROR <字符表达式2>]]
| FROM ARRAY <数组名>
2.建立一个临时表:CREATE CURSOR
格式:CREATE CURSOR <临时表名>
(<列名1> <类型1> [(<宽度>[,<小数>])]
[NULL|NOT NULL]
[CHECK <逻辑表达式>[ERROR <字符表达式>]]
[DEFAULT <表达式>]
[UNIQUE]
[NOCPTRANS]
[,<列名2>…]
| FROM ARRAY <数组名>
3.修改表的结构
格式1:ALTER TABLE <表名>
ADD | ALTER [COLUMN] <字段名> <类型> [(<宽度>[,<小数>]) [NULL|NOT NULL]
[CHECK <逻辑表达式>[ERROR <字符表达式>]]
[DEFAULT <表达式>]
[PRIMARY KEY|UNIQUE]
[REFERENCES <表名2> [TAG <标识>]]
[NOCPTRANS]
格式2:ALTER TABLE <表名>
ALTER [COLUMN] <字段名>
[NULL|NOT NULL]
[SET DEFAULT <表达式>]
[SET CHECK <逻辑表达式>[ERROR <字符表达式>]]
[DROP DEFAULT]
[DROP CHECK]
格式3:ALTER TABLE <表名1>
[DROP [COLUMN] <字段名1>]
[SET CHECK <逻辑表达式1>[ERROR <字符表达式>]]
[DROP CHECK]
[ADD PRIMARY KEY <表达式1> TAG <标识名1> [FOR <逻辑表达式2>]] [DROP PRIMARY KEY]
[ADD UNIQUE <表达式2> TAG <标识名2> FOR <逻辑表达式3>]
[DROP UNIQUE TAG <标识名3>]
[ADD FOREIGN KEY <表达式3> TAG <标识名4> [FOR <逻辑表达式4>] REFERENCES <表名2> [TAG <标识名5>]]
[DROP FOREIGN KEY TAG <标识名6> [SAVE]]
[RENAME COLUMN <字段名2> TO <字段名3>]
[NOVALIDATE]
(二)数据操纵
1.插入记录:INSERT INTO
格式1: INSERT INTO <表名>[(<字段名1>[,<字段名2>[,…]])]
VALUES (<表达式1>[,<表达式2>[,…]])
格式2: INSERT INTO <数据库文件名> FROM ARRAY <数组名>|FROM MEMVAR 2.更新记录:UPDATE
命令格式:UPDATE [<数据库名1!>] <表名>
SET <列名1>=<表达式1>[,<列名2>=<表达式2>]
[ WHERE <过滤条件1> [AND | <过滤条件2>…]]
3.删除记录:DELETE
命令格式:DELETE FROM [<数据库名1!>] <表名>
[ WHERE <过滤条件1> [AND | <过滤条件2>…]]
(三)数据查询
格式:SELECT [ ALL | DISTINCT ]
[<别名>.] < SELECT表达式> [ AS <列名>]
[,[<别名>.] < SELECT表达式> [ AS <列名>]…]
FROM [<数据库名!>]<表名>] [ AS <本地别名>]
[[INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER] JOIN
[,<数据库名!>[<表名>][ AS <本地别名>][ON <联接条件>]]…]
[[INTO <目标>]
|[TO FILE <文件名>[ADDITIVE]|TO PRINTER [PROMPT]|TO SCREEN]]
[PREFERENCE <参数名>][NOCONSOLE][PLAIN][NOWAIT]
[WHERE <连接条件>[ AND <连接条件>…]
[AND|OR <过滤条件>][AND|OR <过滤条件>…]]]
[GROUP BY <分组表达式>[,<分组表达式>…]][HAVING <过滤条件>]
[UNION [ALL]<SELECT命令>]
[ORDER BY <排序列>[ASC|DESC][,<排序列>][ASC|DESC]…]]
三、实验内容
1.单表查询
2.多表查询
四、实验步骤
(一)单表查询
1.无条件查询
①查询显示“销售库”数据库中,“销售明细表”中的所有信息,并按销售日期排序
注:将以下SQL语句在命令窗口中输入执行,其余同。
select * from d:\vfp实习\销售明细表order by 销售日期
②查询显示“库存明细表”中的商品来源和商品名称
select 商品来源,商品名称from d:\vfp实习\库存明细表
2.条件查询
①查询显示“销售明细表”中,收款状况为“已”的记录
select * from d:\vfp实习\销售明细表where 收款状况="已"
②查询显示“库存明细表”中,商品名称为“碎纸机”,商品来源为“南韩”的记录
select * from d:\vfp实习\库存明细表where 商品来源="南韩" .and. 商品名称="碎纸机"
(二)多表查询
查询显示所有商品的凭证编号,商品来源,金额
select 库存明细表.凭证编号, 库存明细表.商品来源,销售明细表.金额from 库存明细表, 销售明细表where 库存明细表.商品名称=销售明细表.商品名称
系统在执行查询时,首先从“库存明细表”中读出一个记录,然后依次到“销售明细表”中读取一个记录,与“销售明细表”中数据拼接成一个新记录,并判别其中的商品名称字段值是否相等,如果相等,取select语句中相应的列作为结果输出。
如此循环,即求出了连接的所有元素。