文档库 最新最全的文档下载
当前位置:文档库 › SQL 单表查询

SQL 单表查询

SQL 单表查询
SQL 单表查询

实验三单表查询

一、实验目的

掌握简单SQL 查询语句的应用,包括like、top、order by、compute 、聚集函数的应用。

二、实验内容

1、基本查询

(1)查询学生表中全体学生的全部信息。

select*

from Student_20103266;

(2)检索全体学生的学号、姓名。

select Sno,Sname

from Student_20103266;

2、查询时改变列标题的显示

检索全体学生的学号、姓名、家庭地址信息,并分别加上“学生”、“学号”、“家庭地址”的别名信息。

select Sno'学号',Sname'姓名',Home_addr'家庭地址'

from Student_20103266;

3、条件查询

(1)查询成绩大于80分的学生的学号及课程号、成绩。

SELECT Sno,Cno,Grade

from SC_20103266

where Grade>80;

(2)查询成绩介于75~80分的学生的学号及课程号、成绩。

SELECT Sno,Cno,Grade

from SC_20103266

where Grade between 75 and 80;

(3)查询选修了课程号为“002”,且成绩大于80的学生的学号。

SELECT Sno

from SC_20103266

where Cno='002'AND Grade>80;

(4)某些学生选修某门课程后没有参加考试,所以有选课记录,但没有考试成绩,下面我们来查一下缺少成绩的学生的学号和相应的课程号。

SELECT Sno,Cno

from SC_20103266

where Grade IS NULL;

4、基于IN子句的数据查询

从课程表中查询出“高数”、“C语言程序设计”的所有信息。

SELECT*

FROM Course_20103266

where Cname IN('高数','C语言程序设计');

5、基于BETWEEN。。。。AND子句的数据查询

查询所有成绩在70-80之间的学生选课信息。

SELECT Sno,Cno

FROM SC_20103266

where Grade between 70 and 80;

6、基于Like子句的查询

(1)从学生表中分别检索出姓张的所有同学的资料;检索名字的第二个字是“红”或“虹”的所有同学的资料。

SELECT*

FROM Student_20103266

where Sname LIKE'张%';

SELECT*

FROM Student_20103266

where Sname LIKE'_红%'or Sname LIKE'_虹%';

(2)查询课程名为Visual_Basic的课程的学分。(提示:使用ESCAPE短语)

SELECT Credit

FROM Course_20103266

where Cname LIKE'visual!_basic'escape'!';

7、使用top关键字查询

(1)从选课表中检索出前3个课程信息。

SELECT TOP 3*

FROM Course_20103266;

(2)从选课表中检索出前面20%的课程信息。

SELECT TOP 20 percent*

FROM Course_20103266;

8、消除重复行

检索出学生已选课程的课程号,要求显示的课程号不重复。SELECT DISTINCT Cno

FROM SC_20103266;

9、查询经过计算的值。

查询全体学生的姓名及其年龄(提示:利用系统函数getdate())select Sname,DATEDIFF(YEAR,Birth,GETDATE())年龄

From Student_20103266;

10、使用ORDER BY语句对查询的结果进行排序

(1)显示所有学生的基本信息,按班号排列,班号相同则再按学号排列。

select*from Student_20103266

order by Classno,Sno

(2)查询全体学生的姓名及其年龄,并按学生的年龄的降序排列。select Sname,DATEDIFF(YEAR,Birth,GETDATE())年龄

from Student_20103266

order by年龄

11、使用聚合函数

(1)查询学生总人数。

select COUNT(Sno)from Student_20103266

(2)计算“002”号课程的学生平均成绩、最高分、最低分。select A VG(Grade),MAX(Grade),MIN(Grade)

from SC_20103266

where Cno='002';

12、使用Group子句进行查询

(1)查询各班级学生总人数。

select COUNT(Sno)

from Student_20103266

group by Classno

(2)汇总总分大于150分的学生的学号及总成绩。select Sno,SUM(Grade)

from SC_20103266

group by Sno

having SUM(Grade)>150;

(3)查询各个课程号相应的选课人数。

select Cno,COUNT(Sno)

from SC_20103266

group by Cno

13、使用Compute和compute by子句进行查询

(1)汇总每个学生的学号及总成绩。

select*

from SC_20103266

order by Sno

compute sum(Grade)by Sno

(2)按学号汇总出每个学生的学号及总成绩、最高分、最低分,及所有学生总成绩。select*

from SC_20103266

order by Sno

compute sum(Grade)

compute sum(Grade),max(Grade),min(Grade)by Sno

观察使用Compute子句和Compute by 子句执行结果有何不同?

COMPUTE BY子句可以在结果集内生成控制中断和小计,得到更详细的或总的记录。它把数据分成较小的组,然后为每组建立详细记录结果数据集(如SELECT),也可为每组产生总的记录(如GROUP BY)。在COMPUT BY中,定义BY子句不是必要的。如果没有定义BY子句,则认为整个表为一个组,并且只有两个结果数据集产生,一个拥有所有的详细记录,另一个只有一行,即拥有总记录。

SQL简介结构化查询语言SQL(Structure Query Language)

SQL简介 结构化查询语言SQL(Structure Query Language)是关系数据库的标准语言,是数据库领域中一个主流语言,1974年产生。 一、SQL概述 1、SQL语言特点 (1)是一种一体化语言 集数据定义、数据操纵、数据控制功能于一体。可以完成数据库中全部操作,包括定义关系模式、录入数据、查询、维护等。 (2)是一种高度非过程化语言 不需一步步告诉“如何做”,只需描述“做什么”。SQL可将要求交与系统自动完成。存取路径的选择以及SQL语句的操作过程由系统自动完成。减轻了用户负担,而且有利于提高数据独立性。 (3)语言非常简洁 只用9动词就能完成数据库核心功能。数据定义:CREATE、DROP、ALTER;数据操纵:SELECT INSERT、UPDA TE、DELETE;数据控制:GRANT (设置用户权限)、REVOKE (取消设置用户权限)。 (4)同一种语法结构提供两种使用方式 ◆自含式语言:能够独立地用于联机交互的使用方式。 ◆嵌入式语言:能够嵌入到高级语言(例如C,COBOL,FORTRAN)程序中,供程序员设计程序时使用。 二、SQL基本操作举例 1、定义基本表(创建基本表) ◆格式: CREATE TABLE<表名>(<列名1><数据类型>[列级约束1] [,<列名2><数据类型>[列级约束2]……] [,<表级约束>]) [其他参数]; <表名>:是所要创建基本表的名字。基本表由多个列(属性)组成。 列级约束:涉及相应属性列的完整性约束条件,一般包括是否允许为空值、取值范围

约束等。 表级约束:涉及一个或多个属性列的完整性约束条件,一般包括复合属性构成的主、外关键字说明等。 其他参数:不是标准选项(不是必要的),用于与物理存储有关的说明。 定义表的各个属性时需指明属性名、数据类型、长度。 (1)列级约束与表级约束包含内容 主码约束(PRIMARY KEY)、参照完整性约束、唯一性约束(UNIQUE)、非空值约束(NOT NULL)、取值约束(CHECK)。 (2)数据类型 不同的数据库系统支持的数据类型不完全相同,在sql server 下:字符型(char)、整型(int)、短整型(smallint)。 2、修改基本表 ◆注意:不同环境下,SQL修改表语句格式会有所不同,本教案以SQL SERVER为运行环境。 ◆格式: ALTER TABLE <表名>[ADD<新列名1><数据类型><约束1> [,<新列名2><数据类型><约束2>…]] [DROP<约束名>] [Alter column <列名><数据类型>]; <表名> :要修改的基本表。 ADD子句:增加新列和新的完整性约束条件。 Alter column子句:用于修改列名和数据类型。 3、删除基本表 ◆格式: DROP TABLE <表名>; 4、SQL查询语句 ◆格式: SELECT <表达式l>,<表达式2>,…,<表达式n> FROM <关系1>,<关系2>,…,<关系m> [WHERE <条件表达式>]

SQL查询(图书数据库-题目)

SQL查询 设有一图书馆数据库,包括三个表:图书表、读者表、借阅表。三个表的结构如下图所示。要求:完成以下习题。 表1图书表结构 表2读者表结构 表3借阅表结构

(1)创建图书馆数据库 1.用SQL语句创建图书馆数据库。 答:CREATE DATABASE 图书馆 (2)创建图书馆数据库的三个表。(在SQL Server 2008平台环境下实现) 2.创建图书表 3.创建读者表 4.创建借阅表 (3)针对以上三个表,用SQL语言完成以下各项查询: 5.查询全体图书的信息,其中单价打8折,并且将该列设置别名为’打折价’。 6.显示所有借阅者的读者号,并去掉重复行。 7.查询所有单价不在20到30之间的图书信息。 8.查询机械工业出版社、科学出版社、人民邮电出版社的图书信息 9.查询既不是机械工业出版社、也不是科学出版社出版的图书信息 10.查找姓名的第二个字符是’建’并且只有两三个字符的读者的读者号、姓名。 11.查找姓名不是以’王’、’张’或’李’开头的所有读者的读者号、姓名。 12.查询无归还日期的借阅信息。 13.查询机械工业出版社或科学出版社出版的图书名,出版社,单价。 14.求读者的总人数 15.求借阅了图书的读者的总人数 16.求机械工业出版社图书的平均价格、最高价、最低价。 17.查询借阅图书本数超过2本的读者号、总本数。并按借阅本数值从大到小排序。 (4)针对以上三个表,用SQL语言完成以下各项多表连接查询、子查询、组合查询 18.查询读者的读者号、姓名、借阅的图书名、借出日期、归还日期。 19.查询借阅了机械工业出版社出版,并且书名中包含’数据库’三个字的图书的读者,显示 读者号、姓名、书名、出版社,借出日期、归还日期。 20.查询至少借阅过1本机械工业出版社出版的书的读者的读者号、姓名、书名,借阅本 数,并按借阅本数多少降序排列。 21.查询与’王平’的办公电话相同的读者的姓名。

mysql查看表结构、数据库、表、存储过程命令

mysql查看表结构、数据库、表、存储过程命令 mysql查看表结构命令,如下:desc 表名; show columns from 表名; describe 表名; show create table 表名;use information_schema select * from columns where table_name='表名';顺便记下:show databases; use 数据库名; show tables;原有一unique索引 AK_PAS_Name(PAC_Name)在表tb_webparamcounter中,执行以下sql修改索引 alter table tb_webparamcounter drop index AK_PAS_Name; alter table tb_webparamcounter add UNIQUE AK_PAS_Name(PC_ID,PAC_Name);若发现索引的逻辑不对,还需要再加一个字段进去,执行 alter table tb_webparamcounter drop index AK_PAS_Name; alter table tb_webparamcounter add UNIQUE AK_PAS_Name(PC_ID,PAC_Name,PAC_Value); 注意:这时的PC_ID,PAC_Name,PAC_Value三个字段不是

FOREIGN KEY 否则必需先drop FOREIGN KEY,再重做上一步才行查看存储过程; show procedure status;顺便提下oracle select * from v$database; select * from all_users; select * from user_tables;

禅道数据库表结构

专业版--后台-二次开发--数据库 查询每个人当天执行多少用例 select * from zt_testrun where lastRunner='admin' and lastRunDate>'2015-12-17 00:00:00 ' and lastRunDate<'2015-12-17 23:59:59 ' 产品表

select * from zt_product,zt_case where zt_product.id=zt_case.product and zt_https://www.wendangku.net/doc/3013237020.html,='ETC项目' and lastRunDate>'2015-12-17 00:00:00' and lastRunDate<'2015-12-17 23:59:59' select * from zt_product,zt_case where zt_product.id=zt_case.product and zt_https://www.wendangku.net/doc/3013237020.html,='ETC项目' and lastRunDate>'2015-12-17 00:00:00' and lastRunDate<'2015-12-17 23:59:59' select zt_https://www.wendangku.net/doc/3013237020.html,, lastRunResult,count(*) as 当日执行合计from zt_product,zt_case where zt_product.id=zt_case.product and lastRunDate>'2015-12-17 00:00:00' and lastRunDate<'2015-12-17 23:59:59' group by zt_https://www.wendangku.net/doc/3013237020.html,

【干货分享】DM数据库获取表结构和对象定义方法

【干货分享】DM数据库获取表结构和对象定义方法 很多新手在开始使用DM数据库时,都问过如何获取表结构信息的问题,今日我整理了获取表结构的各种方法,也可以从这些方法中获取其他对象的定义信息,比如表、视图、存储过程、函数、包等DDL创建语句,供大家参考。 本章介绍DM数据库获取表结构方法。 本章的测试环境: ①操作系统: Window 10 (64位) ②数据库版本:DM8 相关关键字:DM数据库对象定义语句表结构 DM数据库获取对象定义信息 下面从系统包、系统过程、数据字典、DI SQL窗口和客户端管理工具等方面介绍获取表结构、视图和其他对象定义的方法。 1 使用DBMS_META系统包 DBMS_META系统包兼容Oracle功能,其GET_DDL函数用于获取数据库对表、视图、索引、全文索引、存储过程、函数、包、序列、同义词、约束、触发器等定义的DDL语句。语法如下: FUNCTION GET_DDL( OBJECT_TYPE IN V ARCHAR(30), NAME IN V ARCHAR(128), SCHNAME IN V ARCHAR(128) DEFAULT NULL ) RETURN CLOB 参数详解 OBJECT_TYPE 对象类型。包括表、视图、物化视图、索引、全文索引、存储过程、函数、包、目录等,具体可参考《DM8系统包使用手册》。OBJECT_TYPE只能为大写。 NAME 对象名称,区分大小写。 SCHEMA 模式,默认是当前用户模式。 ①获取表定义语句 select dbms_metadata.get_ddl(OBJECT_TYPE => 'TABLE', NAME=>upper('EMPLOYEE'), SCHNAME => 'DMHR'); 结果展示如下,从结果中可查看表及相关主键、外键、唯一性约束等相关定义:

结构化查询语言SQL习题与答案 精品

第四章结构化查询语言SQL 一、选择题 1. 在SQL包含的功能中,最重要的功能是_______。 A) 数据查询B) 数据操纵C) 数据定义D) 数据控制 2. 使用SQL语言有两种方式,它们是_______。 A) 菜单式和交互式B) 嵌入式和程序式 C) 交互式和嵌入式D) 命令式和解释式 3. SQL的全部功能可以用9个动词概括,其中动词INSERT是属于下列__ ____功能。 A) 数据查询B) 数据操纵C) 数据定义D) 数据控制 4. SQL语言支持数据库的三级模式结构,其中模式对应于______。 A) 存储文件B) 视图C) 基本表D) 视图和基本表 5. 在创建数据表时,可以给字段规定NULL或NOT NULL值,NULL值的含义是______。 A) 0 B) 空格C) NULL D) 不确定 6. 在SQL的ALTER语句中,用于删除字段的子句是______。 A) ALTER B) DELETE C) DROP D) MODIFY 7. SQL中的INSERT语句可以用于______。 A) 插入一条记录B) 插入一个字段 C) 插入一个索引D) 插入一个表 8. 下列描述错误的是______。 A)用INSERT-SQL语句可以插入一条记录 B)用INSERT-SQL语句可以插入多条记录 C)使用INSERT-SQL语句可以插入记录的部分数据 D)使用INSERT-SQL语句插入记录时列名的排列顺序必须与表定义时的顺序一致 9. INSERT-SQL语句中所使用的数据不能来自于______。 A) 数组B) 变量C) 查询D) 索引 10. SQL中的UPDATE语句可以用于______。 A) 更新数据表的结构B) 更新数据表的值 C) 更新索引D) 更新查询 11. 下列描述错误的是______。 A)SQL中的UPDATE语句可以修改一条记录 B)SQL中的UPDATE语句可以修改多条记录 C)SQL中的UPDATE语句可以用子查询提供要修改的值 D)SQL中的UPDATE语句可以修改子查询的结果 12. SQL中的DELETE语句可以用于______。 A) 删除数据表的结构B) 删除数据表 C) 删除数据表的记录D) 删除数据表的字段 13. 在SELECT语句中,为了在查询结果中消去重复记录,应使用________项。 A) PERCENT B) DISTINCT C) TOP N D) WITH TIES

sql查询表结构

--新建一张表后,会将所有与表有关的信息写入该数据库下面的某张系统表, sysobjects, syscolumns, systypes 是其中三张SELECT https://www.wendangku.net/doc/3013237020.html, as 表名, https://www.wendangku.net/doc/3013237020.html, as 表列名, SC.colid as 索引, https://www.wendangku.net/doc/3013237020.html, as 类型 FROM sysobjects SO, -- 对象表 syscolumns SC, -- 列名表 systypes ST -- 数据类型表 WHERE SO.id = SC.id AND SO.xtype = 'U' -- 类型U表示表,V表示视图 AND SO.status >= 0 --加一个条件:SO.status >= 0,否则会将系统的临时表显示出来 AND SC.xtype = ST.xusertype ORDER BY https://www.wendangku.net/doc/3013237020.html,, SC.colorder -- 按表名、列名排序 -----------------------------------------------------------------------------------------

SELECT https://www.wendangku.net/doc/3013237020.html, 表名, https://www.wendangku.net/doc/3013237020.html, 表列名, SC.colid 索引, https://www.wendangku.net/doc/3013237020.html, 类型 FROM sysobjects SO, -- 对象表 syscolumns SC, -- 列名表 systypes ST -- 数据类型表 CliqueClient WHERE SO.id = SC.id AND SO.xtype = 'U' -- 类型U表示表,V表示视图AND SO.status >= 0 -- status >= 0 为非系统对象 AND SC.xtype = ST.xusertype AND https://www.wendangku.net/doc/3013237020.html, = 'CliqueClient' -- 某张特定表 ORDER BY https://www.wendangku.net/doc/3013237020.html,, SC.colorder -- 按表名、列名排序 查询指定数据表中的所有列的列名: SELECT name FROM syscolumns

用友u8数据库表结构

用友u8数据库表结构 用友数据库表名参照表 1 Accessaries 成套件表 2 AccInformation 帐套参数表 3 AdjustPVouch 4 AdjustPVouchs 5 Ap_AlarmSet 单位报警分类设置表 6 Ap_BillAge 帐龄区间表 7 Ap_Cancel 核销情况表 8 Ap_CancelNo 生成自动序号 9 Ap_CloseBill 收付款结算表 10 Ap_CtrlCode 控制科目设置表 11 Ap_Detail 应收/付明细帐 Ap_CloseBill Table 收付款单主表 12 Ap_DigSet 13 AP_DispSet 查询显示列设置表 14 Ap_InputCode 入帐科目表 15 Ap_InvCode 存货科目设置表 16 Ap_Lock 操作互斥表 17 Ap_MidExch 18 Ap_MyTableSet 查询条件存储表 19 Ap_Note 票据登记簿 20 Ap_Note_Sub 票据登记簿结算表 21 Ap_SstyleCode 结算方式科目表 22 Ap_Sum 应收/付总帐表 23 Ap_Vouch 应付/收单主表 24 Ap_Vouchs 应付/收单主表的关联表 25 Ap_VouchType 单据类型表 26 Ar_BadAge 坏帐计提帐龄期间表 27 Ar_BadPara 坏帐计提参数表 28 ArrivalVouch 到货单、质检单主表*** 29 ArrivalVouchs 到货单、质检单子表*** 30 AssemVouch 组装、拆卸、形态转换单主表 31 AssemVouchs 组装、拆卸、形态转换单子表 32 Bank 本企业开户银行及帐号 33 CA_ACR 按产品产量约当分配率表 34 CA_AllMt 分配率分配方法表 35 CA_AmoCt 各项费用成本表 36 CA_AsDIF 辅助部门内部固定分配率表 37 CA_AssCW 辅助费用耗用表

U8数据库表结构

U8数据库表结构 1 Accessaries 成套件表 2 AccInformation 帐套参数表 3 AdjustPVouch 4 AdjustPVouchs 5 Ap_AlarmSet 单位报警分类设置表 6 Ap_BillAge 帐龄区间表 7 Ap_Cancel 核销情况表 8 Ap_CancelNo 生成自动序号 9 Ap_CloseBill 收付款结算表 10 Ap_CtrlCode 控制科目设置表 11 Ap_Detail 应收/付明细帐 12 Ap_DigSet 13 AP_DispSet 查询显示列设置表 14 Ap_InputCode 入帐科目表 15 Ap_InvCode 存货科目设置表 16 Ap_Lock 操作互斥表 17 Ap_MidExch 18 Ap_MyTableSet 查询条件存储表 19 Ap_Note 票据登记簿 20 Ap_Note_Sub 票据登记簿结算表 21 Ap_SstyleCode 结算方式科目表 22 Ap_Sum 应收/付总帐表 23 Ap_Vouch 应付/收单主表 24 Ap_Vouchs 应付/收单主表的关联表 25 Ap_VouchType 单据类型表 26 Ar_BadAge 坏帐计提帐龄期间表 27 Ar_BadPara 坏帐计提参数表 28 ArrivalVouch 到货单、质检单主表*** 29 ArrivalVouchs 到货单、质检单子表*** 30 AssemVouch 组装、拆卸、形态转换单主表 31 AssemVouchs 组装、拆卸、形态转换单子表 32 Bank 本企业开户银行及帐号 33 CA_ACR 按产品产量约当分配率表 34 CA_AllMt 分配率分配方法表 35 CA_AmoCt 各项费用成本表 36 CA_AsDIF 辅助部门内部固定分配率表 37 CA_AssCW 辅助费用耗用表 38 CA_AssMP 辅助部门计划单价表 39 CA_AWPC 各项费用耗用计划表 40 CA_Batchmx_temp

SQL表结构

SELECT TOP 10 * FROM COT_IV WHERE PO_NO='DC0403043' SELECT name FROM sysobjects WHERE type = 'U' AND sysstat = '83' orDER BY Name SQL获取所有用户名,数据库名、所有表名、所有字段名及字段类型2009-09-02 10:30SQL获取所有用户名,数据库名、所有表名、所有字段名及字段类型(转) 1.获取所有用户名: SELECT name FROM Sysusers where status='2' and islogin='1' islogin='1'表示帐户 islogin='0'表示角色 status='2'表示用户帐户 status='0'表示糸统帐户 2.获取所有数据库名: SELECT Name FROM Master..SysDatabases ORDER BY Name 3.获取所有表名 SELECT Name FROM DatabaseName..SysObjects Where XType='U' ORDER BY Name XType='U':表示所有用户表; XType='S':表示所有系统表; 4.获取所有字段名: SELECT Name FROM SysColumns WHERE id=Object_Id('TableName') 5.获取数据库所有类型 select name from systypes 6.获取主键字段 SELECT name FROM SysColumns WHERE id=Object_Id('表名') and colid=(select top 1 keyno from sysindexkeys where id=Object_Id('表名')) 7、获取字段类型 select https://www.wendangku.net/doc/3013237020.html, as [column],https://www.wendangku.net/doc/3013237020.html, as type from syscolumns a,systypes b where a.id=object_id('表名') and a.xtype= b.xtype 或者可以通过存储过程 exec sp_help 表名 8、取表结构

数据库表结构设计

数据库表结构设计 1. 原始单据与实体之间的关系 可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对 应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实 体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计 录入界面大有好处。 〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员 工基本情况表、社会 关系表、工作简历表。这就是“一张原始单证对应多个实体”的典型例子。 2. 主键与外键 一般而言,一个实体不能既无主键又无外键。在E—R 图中, 处于叶子部位的 实体, 可以定义主键, 也可以不定义主键(因为它无子孙), 但必须要有外键(因为它有父亲)。 主键与外键的设计,在全局数据库的设计中,占有重要地位。当全局数据库的设计完成以后,有个 美国数据库设计专家说:“键,到处都是键,除了键之外,什么也没有”,这 就是他的数据库设计经验 之谈,也反映了他对信息系统核心(数据模型)的高度抽象思想。因为:主键是 实体的高度抽象,主键与 外键的配对,表示实体之间的连接。

3. 基本表的性质 基本表与中间表、临时表不同,因为它具有如下四个特性: (1) 原子性。基本表中的字段是不可再分解的。 (2) 原始性。基本表中的记录是原始数据(基础数据)的记录。 (3) 演绎性。由基本表与代码表中的数据,可以派生出所有的输出数据。 (4) 稳定性。基本表的结构是相对稳定的,表中的记录是要长期保存的。 理解基本表的性质后,在设计数据库时,就能将基本表与中间表、临时表区分开来。 4. 范式标准 基本表及其字段之间的关系, 应尽量满足第三范式。但是,满足第三范式的数据库设计,往往不是 最好的设计。为了提高数据库的运行效率,常常需要降低范式标准:适当增加冗余,达到以空间换时间的目的。 〖例2〗:有一张存放商品的基本表,如表1所示。“金额”这个字段的存在,表明该表的设计不满足第三范式,因为“金额”可以由“单价”乘以“数量”得到,说明“金额”是冗余字段。但是,增加“金额”这个冗余字段,可以提高查询统计的速度,这就是以空间换时间的作法。 在ROSE 2002中,规定列有两种类型:数据列和计算列。“金额”这样的列被称为“计算列”,而“单价”和“数量”这样的列被称为“数据列”。 表1 商品表的表结构 商品名称商品型号单价数量金额 电视机 29吋 2,500 40 100,000 5. 通俗地理解三个范式

速达SQL数据库表结构

速达 3000 及 3000Pro 数据库结构分析 LASTDATE 字段名 中文描述 字段类型/长度 是否为空 说明 ID 顺序号 INTEGER NOT P rimary ;Uniq ue; BILLID 单据ID SMAL LINT NOT BILLTIME 开单日期 DATE GOODSID 货品ID VARCHAR(20) AMOUNT 数量 DOUBLE P RECISION P RICE 单价 DOUBLE P RECISION RETURNTAG 退货标志 SMAL LINT 帐套信息表 表名:ACCINFO 描述 :记录帐套的详细资料 字段名 中文描述 字段类型/字段长度 是否为空 说明 COR PID 公司ID SMALLINT NOT P rimary;U nique TAXTYPE 税务类型 VARCHAR(1) STARTDATE 启用日期 DATE CURRYEAR 当前年份 SMAL LINT CURRMON 当前月份 SMAL LINT 表名:ABNORMALSALE 描述: 登帐是否审核 MUSTCHECK BANK 开户行 VARCHAR(20) ACCOUNTS 帐号 VARCHAR(20) TAXNUMBER 税号 VARCHAR(20) BIND 进销存财务捆绑 VARCHAR(1) STE P0 一级科目长度 SMALLINT STE P1 二级科目长度 SMALLINT STE P2 三级科目长度 SMALLINT STEP3 四级科目长度 SMALLINT STEP4 五级科目长度 SMALLINT STEP5 六级科目长度 SMALLINT BACKU POP TION SMALLINT STATUS 启用状态 SMAL LINT VERSION 帐套版本号 VARCHAR(4) MAXLOGRECOUNT SMALLINT MAXLOGDAY SMALLINT ADDRESS 地址 VARCHAR(100) VARCHAR(1) 审核是否可同人 VARCHAR(1) 法人代表 SAMEUSER LAWPERSON VARCHAR(20) DATE

INFORMIX查询标准表结构SQL

-- 规范SQL select a.tabname as tabname_en, '' tabname_cn, b.colno, b.colname as colname_en, '' colname_cn, case b.coltype when '0' then 'varchar2('||collength||')' when '1' then 'integer' when '2' then 'integer' when '3' then 'float' when '4' then 'float' when '5' then 'decimal('||trunc(collength/256)||','||mod(collength,256)||')' when '6' then 'integer' when '7' then 'date' when '8' then 'money' when '9' then 'null' when '10' then 'datetime' when '11' then 'byte' when '12' then 'text' when '13' then 'varchar2('||collength||')' when '14' then 'interval' when '15' then 'varchar2('||collength||')' when '16' then 'varchar2('||collength||')' when '17' then 'int8'

then 'serial8' when '19' then 'set' when '20' then 'multiset' when '21' then 'list' when '22' then 'unnamed row' when '40' then 'varchar2(4000)' when '41' then 'clob' when '43' then 'blob' when '44' then 'boolean' when '256' then 'varchar2('||collength||')' when '257' then 'integer' when '258' then 'integer' when '259' then 'float' when '260' then 'real' when '261' then 'decimal('||trunc(collength/256)||','||mod(collength,256)||')' when '262' then 'serial' when '263' then 'date' when '264' then 'money' when '266' then 'datetime' when '267' then 'byte' when '268' then 'text' when '269' then 'varchar'

速达SQL数据库表结构

速达3000及3000Pro 数据库结构分析 ● 表名: ABNORMALSALE 描述: 字段名中文描述字段类型/长度是否为空说明 ID 顺序号 INTEGER NOT Primary;Unique; BILLID 单据ID SMALLINT NOT BILLTIME 开单日期 DATE GOODSID 货品ID VARCHAR(20) AMOUNT 数量 DOUBLE PRECISION PRICE 单价 DOUBLE PRECISION RETURNTAG 退货标志 SMALLINT ●帐套信息表 表名: ACCINFO 描述:记录帐套的详细资料 字段名中文描述字段类型/字段长度是否为空说明 CORPID 公司ID SMALLINT NOT Primary;Unique; TAXTYPE 税务类型 VARCHAR(1) STARTDATE 启用日期 DATE CURRYEAR 当前年份 SMALLINT CURRMON 当前月份 SMALLINT MUSTCHECK 登帐是否审核 VARCHAR(1) SAMEUSER 审核是否可同人 VARCHAR(1) LAWPERSON 法人代表 VARCHAR(20) BANK 开户行 VARCHAR(20) ACCOUNTS 帐号 VARCHAR(20) TAXNUMBER 税号 VARCHAR(20) BIND 进销存财务捆绑 VARCHAR(1) STEP0 一级科目长度 SMALLINT STEP1 二级科目长度 SMALLINT STEP2 三级科目长度 SMALLINT STEP3 四级科目长度 SMALLINT STEP4 五级科目长度 SMALLINT STEP5 六级科目长度 SMALLINT BACKUPOPTION SMALLINT LASTDATE DATE STATUS 启用状态 SMALLINT VERSION 帐套版本号 VARCHAR(4) MAXLOGRECOUNT SMALLINT MAXLOGDAY SMALLINT ADDRESS 地址 VARCHAR(100)

Sql语句查看表结构

Sql语句查看表结构 Sql语句查看表结构 2008年03月21日星期五10:43怎样在sql sever中用sql 命令查看表结构? 可以使用内置的存储过程sp_MShelpcolumns。 如查询表B_RWZL的结构: sp_MShelpcolumns 'dbo.B_RWZL' ===================================== (1) SELECT 表名=case when a.colorder=1 then https://www.wendangku.net/doc/3013237020.html, else '' end, 表说明=case when a.colorder=1 then isnull(f.value,'') else '' end, 字段序号=a.colorder, 字段名=https://www.wendangku.net/doc/3013237020.html,, 标识=case when COLUMNPROPERTY( a.id,https://www.wendangku.net/doc/3013237020.html,,'IsIdentity')=1 then '√'else '' end, 主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in ( SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND

colid=a.colid ))) then '√' else '' end, 类型=https://www.wendangku.net/doc/3013237020.html,, 占用字节数=a.length, 长度=COLUMNPROPERTY(a.id,https://www.wendangku.net/doc/3013237020.html,,'PRECISION'), 小数位数=isnull(COLUMNPROPERTY(a.id,https://www.wendangku.net/doc/3013237020.html,,'Scale'),0), 允许空=case when a.isnullable=1 then '√'else '' end, 默认值=isnull(e.text,''), 字段说明=isnull(g.[value],'') FROM syscolumns a left join systypes b on a.xusertype=b.xusertype inner join sysobjects d on a.id=d.id and d.xtype='U' and https://www.wendangku.net/doc/3013237020.html,<>'dtproperties' left join syscomments e on a.cdefault=e.id left join sysproperties g on a.id=g.id and a.colid=g.smallid left join sysproperties f on d.id=f.id and f.smallid=0 --where https://www.wendangku.net/doc/3013237020.html,='要查询的表' --如果只查询指定表,加上此条件 order by a.id,a.colorder(2)SQL2000系统表的应用 --1:获取当前数据库中的所有用户表select Name from sysobjects where xtype='u' and status>=0--2:获取某一个表的所有字段select name from syscolumns where id=object_id('

SQLSERVER语句返回表结构

SQLSERVER语句返回表结构? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 SELECT 表名 = case when a.colorder=1 then https://www.wendangku.net/doc/3013237020.html, else '' end, 表说明 = case when a.colorder=1 then isnull(f.value,'') else '' end, 字段序号 = a.colorder, 字段名 = https://www.wendangku.net/doc/3013237020.html, + ',', '@v_' + https://www.wendangku.net/doc/3013237020.html, + ' ' + https://www.wendangku.net/doc/3013237020.html, + cast(a.length as varchar(3)) + ',', '', 标识 = case when COLUMNPROPERTY( a.id,https://www.wendangku.net/doc/3013237020.html,,'IsIdentity')=1 then '√'else '' en 主键 = case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE 类型 = https://www.wendangku.net/doc/3013237020.html,, 占用字节数 = a.length, 长度 = COLUMNPROPERTY(a.id,https://www.wendangku.net/doc/3013237020.html,,'PRECISION'), 小数位数 = isnull(COLUMNPROPERTY(a.id,https://www.wendangku.net/doc/3013237020.html,,'Scale'),0), 允许空 = case when a.isnullable=1 then '√'else '' end, 默认值 = isnull(e.text,''), 字段说明 = isnull(g.[value],'') FROM syscolumns a left join systypes b on a.xusertype= b.xusertype inner join sysobjects d on a.id=d.id and d.xtype='U' and https://www.wendangku.net/doc/3013237020.html,<>'dtproperties' left join syscomments e on a.cdefault=e.id left join sys.extended_properties g on a.id=G.major_id and a.colid=g.minor_id left join sys.extended_properties f on d.id=f.major_id and f.minor_id=0

精通SQL结构化查询语言详解

关系:是汇集在表结构中的行和列的集合,每个关系由一个或多个属性组成 关系,属性和数组这3个术语在涉及到关系模型时使用,SQL在描述这些术语时,使用的是表,列和行 联系指实体间对应关系 三范式: 1.每一列都是不可分的基本数据项,同一列中不能有多个值,每一行只包含一个实例的信 息,简言之,就是无重复的列 2.属性完全依赖于主关键字, 3.一个数据表中不包含已在其它表中已包含的非主关键字信息 SQL组成 1.数据定义语言(Data Definition Language),用于创建,修改,删除数据库对象,SQL 关键字包括CREATE,ALTER,DROP 2.数据查询语言(Data Query Language),用于检索数据,主要SQL关键字为SELECT 3.数据操纵语言(Data Manipulation Language),用于增,删,改数据库对象中的数据, 主要SQL关键字INSERT,UPDATE和REVOKE 4.数据控制语言(Data Control Language),用于控制用户对数据库的访问,主要SQL关 键字GRANT,DENY 和REVOKE 5.其它语言要素,事务控制,程序化语言 ================================== 表=============================== 创建表 增加列 删除列:有默认值,作为主键不能被删除,具有非空约束的列可以被删除 处理办法:先删除约束,再删除列 修改列:TEXT,IMAGE,NTEXT,TIMESTAMP,索引的一部分,是PRIMARY KEY或FOREIGN KEY,有缺省值,有CHECK,UNIQUE时不能改变其类型 重命名表 重命名列 ================================ 数据库============================== 创建数据库 创建区分大小写的列(sql server默认不区分大小写) ================================ 索引============================= 索引:一个表的存储是由两部分存放的,一部分用来存储表的数据页面,另一部分存储索引页面,索引就存放在索引页面上。通常,索引面页相对于数据页面来说小得多,当进行数据检索时,系统先搜索索引页面,从中找到所需要数据的指针,再通过指针从数据页面中读取数据 簇索引:簇索引与数据是混为一体的 非簇索引:非簇索引具有与表的数据完全分离的结构,由于非簇索引使用索引页存储,因此比簇索引需要更多的空间,且检索效率低 创建索引 索引改名和删除 ============================== 完整性控制============================ 完整性约束分3种类型: 1.与表有关的约束:是在创建有的语句中定义的一种约束,在定义列同时定义该约束称为 列约束;在列定义之后,单独定义多个列的约束称为表约束

结构化查询语言(SQL)

结构化查询语言(SQL) SQL概述 SQL的容在笔试和上机考试中均占到大约30%的比例,此外它还是查询和视图的基础,因此是学习的重点也是难点。 SQL是结构化查询语言Structure Query Language的缩写。 SQL包含了查询功能、数据定义、数据操纵和数据控制功能,在VFP中没有提供数据控制功能。 SQL主要特点 1.SQL是一种一体化语言。 2.SQL是一种高度非过程化的语言。 3.SQL语言非常简洁。 4.SQL语言可直接以命令方式交互使用,也可嵌入到程序设计语言中以程序方式使用。

查询功能 SELECT命令的特点: 1.可以自动打开数据库、表文件加以查询,而不需要事先用OPEN DATABASE或USE命令打开。 2.可以直接选取数据表中的数据,而不需要事先用SET RELATION 命令建立关联。 3.当需要的索引文件不存在时,会自动建立暂存索引文件,以支持快速搜索技术(Rushmore)来查询。 4.其查询结果可输出到文件、表、屏幕或报表上,还可以转换成统计图表。 命令格式:SELECT ——FROM ——WHERE 可与LIST FIELDS——FOR ——对照学习。 关系操作:投影,选择,联接。 说明:功能强大,语法灵活;要处理的数据表无须事先打开,通过FROM子句指明并打开。 1.SELECT 短语:说明要查询的数据;对应的关系操作为投影,类似于FIELDS子句。 2.FROM 短语:说明要查询的数据来自哪个或哪些表,可对单个表或多个表进行查询; 3.WHERE 短语:说明查询条件;对应的关系操作为选择,类似

于FOR子句。如是多表查询还可能过该子句指明联接条件,进行联接。 4.GROUP BY 短语:用于对查询结果进行分组,可利用它进行分组汇总;类似于TOTAL命令。 5.HAVING 短语:跟随GROUP BY 使用,它用来限定分组必须满足的条件; 6.ORDER BY 短语:用于对查询的结果进行排序;类似于SORT 命令。 示例数据库: 学生管理,包括三个表:学生,课程,选课(通过该表反映“学生”与“课程”之间“多对多”的联系。 问题:请同学们分别指出三个表的主关键字。 一、简单查询 简单查询基于单个表。 例: 1.查询学生信息 SELE * FROM 学生&&“*”号代表所有列。 类似于: USE 学生 LIST

相关文档
相关文档 最新文档