SQLSERVER语句返回表结构

SQLSERVER语句返回表结构
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.360docs.net/doc/d35986260.html, else '' end,

表说明 = case when a.colorder=1 then isnull(f.value,'') else '' end,

字段序号 = a.colorder,

字段名 = https://www.360docs.net/doc/d35986260.html, + ',',

'@v_' + https://www.360docs.net/doc/d35986260.html, + ' ' + https://www.360docs.net/doc/d35986260.html, + cast(a.length as varchar(3)) + ',',

'',

标识 = case when COLUMNPROPERTY( a.id,https://www.360docs.net/doc/d35986260.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.360docs.net/doc/d35986260.html,,

占用字节数 = a.length,

长度 = COLUMNPROPERTY(a.id,https://www.360docs.net/doc/d35986260.html,,'PRECISION'),

小数位数 = isnull(COLUMNPROPERTY(a.id,https://www.360docs.net/doc/d35986260.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.360docs.net/doc/d35986260.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

41

42

43

44

45 where

https://www.360docs.net/doc/d35986260.html,='cs_oper_information' --如果只查询指定表,加上此条件and a.isnullable = '1'

order by

a.id,a.colorder

SQLServer(多语句表值函数代码)

SQLServer(多语句表值函数代码) 代码如下: set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go CREATE FUNCTION [dbo].[ufnGetContactInformation](@ContactID int) RETURNS @retContactInformation TABLE ( -- Columns returned by the function [ContactID] int PRIMARY KEY NOT NULL, [FirstName] [nvarchar](50) NULL, [LastName] [nvarchar](50) NULL, [JobTitle] [nvarchar](50) NULL, [ContactType] [nvarchar](50) NULL ) AS -- Returns the first name, last name, job title and contact type for the specified contact. BEGIN

DECLARE @FirstName [nvarchar](50), @LastName [nvarchar](50), @JobTitle [nvarchar](50), @ContactType [nvarchar](50); -- Get common contact information SELECT @ContactID = ContactID, @FirstName = FirstName, @LastName = LastName FROM [Person].[Contact] WHERE [ContactID] = @ContactID; SET @JobTitle = CASE -- Check for employee WHEN EXISTS(SELECT * FROM [HumanResources].[Employee] e WHERE e.[ContactID] = @ContactID) THEN (SELECT [Title] FROM [HumanResources].[Employee] WHERE [ContactID] = @ContactID) -- Check for vendor

SQL数据库数据的查询,汇总,统计和分析

8.数据的查询、汇总、统计和分析 本章将深入剖析SELECT命令。

8.1.SELECT命令 SELECT是一个用来从一个或多个表中获取数据的SQL命令。 8.2.简单的SELECT查询 如: SELECT命令至少包含: ?要出现在查询结果中的字段列表,如:身份证号码,姓名,电话号码 ?字段来自哪些表,如:FROM飞狐工作室 ?字段列表也可以是由字段、常量和函数组成的表达式 ?要列出所有字段,只须用* 号 8.3.设置查询结果的字段名 查询需求 请从数据库pubs的authors表,查询出所有作者的代号、姓名、电话号码及住址,而且请使用中文文字作为查询结果的各字段名。 解答

SELECT 作者代号= au_id, 姓名= au_fname+au_lname, 电话号码= phone, 住址= address FROM authors 或(看看你更喜欢哪一种格式?) /* 脚本文件名: Demo92.sql */ USE pubs SELECT au_id AS 作者代号, au_fname+au_lname AS 姓名, phone AS 电话号码, address AS 住址 FROM authors 注意: ?如果您设置的的字段名包含空格,则须加上单引号 SELECT au_fname+au_lname AS‘Name of Author’ FROM authors 任务:查询teacher表的姓名、性别和生日,列名用中文表示;查询class表的所有班级

信息;查询teacher表的教师姓名和年龄。 8.4.关键字ALL和DISTINCT的使用 1.查询需求 请列出“飞狐工作室”表中所有员工的雇用日期,但是日期相同者只列出一次即可。USE NorthwindSQL SELECT DISTINCT雇用日期FROM飞狐工作室 2.查询需求 请列出“飞狐工作室”表中有哪些部门。 USE NorthwindSQL SELECT DISTINCT部门FROM飞狐工作室 ALL为默认项,显示所有查询到的记录,包括重复项。 DISTINCT,对指定字段的内容相同的,仅显示一项。每个SELECT表达式只能有一个DISTINCT关键字。这意味着,DISTINCT是限制整条数据记录都重复者,只显示其中一条,而不是针对单一字段来处理。 任务:请列出“章立民工作室”表中有哪些部门。列出teacher表中的教师职称。

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 <条件表达式>]

SQLSERVER操作命令

SQLSERVER数据库操作 ******操作前,请确定SQL的服务已经开启******** 一:登录进入sql数据库 1、开始---所有程序---Microsoft SQL Server 2005---SQL Server Management Studio Express 2、此时出现“连接到服务器”的对话框, “服务器名称”设置为SQL数据库所在机器的IP地址 “身份验证”设置为SQL Server身份验证或者Windows 身份验证 填写登录名和密码后,点击“连接”按钮,即可进入到SQL数据库操作界面。 二:新建数据库 登录进去后,右击“数据库”,选择—“新建数据库” 设置数据库名称,在下面的选项卡中还可以设置数据库的初始大小,自动增长,路径。 点击确定,一个数据库就建好了。 三:如何备份的数据库文件。 登录进入后,右击相应的需要备份数据库----选择“任务” 目标下的备份到,点击“添加”按钮可以设置备份数据库保存的路径。 四:如何还原备份的数据库文件。(以本地机器为例子) 1、设置服务器名称,点击右边的下拉框的三角,选择“浏览更多…”。 此时出现查找服务器对话框,选择“本地服务器”---点开“数据库引擎”前面 的三角---选中出现的服务器名称—确定。 (注:可以在“网络服务器”选项卡中设置网络服务器) 2、设置身份验证,选择为“windows身份验证” 3、点击连接按钮,进入数据库管理页面 4、右击“数据库”,选择“还原数据库”,出现还原数据库的对话框 还原的目标----目标数据库,这里设置数据库的名字 还原的源----选择“源设备”,在弹出的对话框中点击“添加”按钮,找到所备 份的数据库文件,确定。 5、此时,在还原数据库对话框中会出现所还原的数据库的信息。在前面选中所需还 原的数据库。确定。 6、为刚刚还原的数据库设置相应的用户。 a点开“安全性”---右击“登录名”---新建登录名 b 设置登录名(假如为admin),并设置为SQL Server身份验证,输入密码,去除 “强制实施密码策略”前的勾。 C 找到导入的数据库,右击此数据库----选择“属性”,在选择页中,点击“文件” 设置所有者,点击右边的按钮,选择“浏览”,找到相应的用户(如admin)。确 定。。 7、此时重新以admin的身份进入,就可操作相应的数据库。

实验一 SQL语言单表查询

实验一SQL语言单表查询 一、实验目的 熟悉SQLServer2008建立数据库和表的方法;掌握SQL语言单表查询方法二.实验内容 1、建立数据库Student 2、建立该数据库的三张表:stu_info,course_info,stu_grade,三张表分别存放学生的学生信息、课程信息和学生选课信息 3、请写出实现如下功能的SQL语句,并在SQLServer2008中进行测试 (1)查询所有同学的姓名和年龄信息,要求使用别名(姓名和年龄),结果如下: (2)查询所有的院系信息,要求取消重复的行,结果如下: (3)查询前5位同学的学号、姓名和成绩信息。查询结果如下: (4)查询所有的男同学学号、姓名、生日和性别信息。查询结果如下:

(5)查询所有总分大于550的男同学信息。查询结果如下: (6)查询所有信息学院和会计学院并且总分大于550分的同学信息。查询结果如下: (7)查询所有籍贯为空的同学信息。查询结果如下: (8)查询总分在530—560之间的同学信息。 查询结果如下:

(9)查询所有在信息学院或会计学院就读的同学信息。查询结果如下: (10)查询所有姓“张”的同学信息。查询结果如下: (11)查询所有姓“张”,而且姓名是两个字的同学信息。查询结果如下: (12)查询所有不姓“张”也不姓“王”的同学信息。查询结果如下: (13)查询所有同学课程编号701的课程成绩,并按由大到小的顺序输出,如果成绩相同,则按学号由小到大排序。查询结果如下:

(14)统计学生成绩表中每个同学的最高分、最低分、平均分和总分。查询结果如下: (15)统计学生成绩表中每个同学的最高分、最低分、平均分和总分,80分以下的成绩不参与统计。 Select stu_id,MAX(grade),MIN(grade),AVG(grade),SUM(grade) From stu_grade Where grade>=80 Group by stu_id 查询结果如下: (16)统计学生成绩表中每个同学的最高分、最低分、平均分和总分,并输出平均分大于87分的信息。查询结果如下: (17)明细汇总: 使用group by子句对查询数据进行分组汇总,为每一组产生一个汇总结果,每个组只返回一行,无法看到详细信息。使用compute和compute by子句既能够看到统计经营部的结果又能够浏览详细数据。 使用compute子句对所有学生的人数进行明细汇总。查询结果如下:

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.查询与’王平’的办公电话相同的读者的姓名。

SQL语句从大到小排序

根据下面三个关系模式完成下面习题:答案已设为白色需要就全选设为黑色学生表student 第一章课件:编写基本的sql语句。 1.查询所有学生情况。 3.查询所有学生的姓名,性别以及年龄。 5.查询所有学生10年后的年龄。 7.查询所有课程(列名用中文显示)。 9.查看竟有那些学生选课(重复学号显示一次)。 11.显示课程表的边结构。第二章课件:约束和排序数据。 01.查询计算机系的所有学生的姓名和年龄。 02.查询体育课的学分。 03.查询年龄小于18的学生。 04.查询年龄大于20的学生。 05.查询年龄介于18和20之间的学生(包括18和20)。 06.查询年龄不在18和20之间的学生。 07.查询年龄为18,20,22的学生。 08.查询年龄不是18,20,22的学生。 09.查询所有姓张的学生。 10.查询所有没有先行课的课程。 11.查询有先行课的课程。 12.在计算机系中找,姓张的男生。 13.在计算机系中找,姓张的或者姓李的男生并且按照年龄从大到小排序。 14.查询所有学生信息,显示结果先按系从大到小排序,再按年龄排序。 第三章课件:多表查询 1.查询每个学生(学号)选了哪门课(课程)得了多少分 2.查询每个学生(姓名)选了哪门课(课程号)得了多少分 3.查询每个学生(姓名)选了哪门课(课程名)得了多少分 4.查询一下王林选可哪门课得了多少分。 5.查询每个学生的成绩类别(优、良还是及格)。 6.查询哪个学生没有选课(用外查询)。 7.查询哪门课没有人选(用外查询)。 第四章课件:组函数

1.查询一下所有课程的平均分,最高分,最低分和总分数。 2.查询一下有多少个学生参加选课。 3.查询一下计算机系有多少人过20岁。 4.统计一下计算机系的男生多少人。 5.查询一下每个学生考试的最高分和最低分。 6.查询每门课(课程号)的最高分和最底分。 7.查询每门课(课程名)的最高分和最底分。 8.查询计算机系中男生多少人,女生多少人。 9,查询人数在三百人以上的系。 10.查询选修人数在三人(包括三人)的课程(课程名)。 11.查询各科考试成绩最低的同学。 12.查询考试成绩小于所选课程平均分的人。(有能力的同学选做) 第五章课件:子查询 1.查询所有比王林大的同学信息。 2.查询和王林同在一个系的所有学生信息。 3.查询一下谁的成绩(所有成绩)最低。 4.查询一下每门课成绩最底的同学(要姓名,和成绩)。 5.查询一下哪个学生没有选课(用子查询)。 6.查询一下哪门课没有人选(用子查询)。 7.查询一下和王林一个系,但是比他年龄大的同学。 第六章课件:ddl语句 1.创建以上四个表,要求每个表必须有主键,表和表之间必须有外间关联。 3.写出insert语句,给表添加以上数据。 5.提交所有操作。 7.将王林的年龄设置为空。 9.将张大民调到计算机系。 11.将体育课的学分设置成和管理学学分一样(update 中带有子查询)。 13.回滚所有操作。 9.某公司印了一批充值卡,卡的密码是随机生成的,现在出现这个问题:卡里面的“o和0”(哦和零)“i和1”(哎和一),用户反映说看不清楚,公司决定,把存储在数据

SqlServer存储过程基本语法

动态语句基本语法 1 :普通SQL语句可以用exec执行 Select * from tableName exec('select * from tableName') exec sp_executesqlN'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类作为变量时,必须用动态SQL declare @fnamevarchar(20) set @fname = 'FiledName' Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。exec('select ' + @fname + ' from tableName') -- 请注意加号前后的单引号的边上加空格 当然将字符串改成变量的形式也可 declare @fnamevarchar(20) set @fname = 'FiledName' --设置字段名 declare @s varchar(1000) set @s = 'select ' + @fname + ' from tableName' exec(@s) -- 成功 exec sp_executesql @s -- 此句会报错 declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000) set @s = 'select ' + @fname + ' from tableName' exec(@s) -- 成功 exec sp_executesql @s -- 此句正确 3. 输出参数 declare @numint, @sqlsnvarchar(4000) set @sqls='select count(*) from tableName' exec(@sqls) --如何将exec执行结果放入变量中? declare @numint, @sqlsnvarchar(4000) set @sqls='select @a=count(*) from tableName ' execsp_executesql @sqls,N'@aint output',@num output select @num 1 :普通SQL语句可以用Exec执行例: Select * from tableName Exec('select * from tableName')

SQLSERVER数据库、表的创建及SQL语句命令

SQLSERVER数据库、表的创建及SQL语句命令 SQLSERVER数据库,安装、备份、还原等问题: 一、存在已安装了sql server 2000,或2005等数据库,再次安装2008,会出现的问题 1、卸载原来的sql server 2000、2005,然后再安装sql server 2008,否则经常sql server服务启动不了 2、sql server服务启动失败,解决方法: 进入sql server configure manager,点开Sql server 网络配置(非sql native client 配置),点sqlzhh(我sqlserver 的名字)协议,将VIA协议禁用。再启动Sql Server服务,成功 如图: 二、在第一次安装SQLSERVER2008结束后,查看安装过程明细,描述中有较多项插件或程度,显示安装失败。 解决方法:

1、重新启动安装程度setup.exe,选择进行修复安装,至完成即可。 三、先创建数据库XXX,再进行还原数据库时,选择好备份文件XXX.bak,确定后进行还原,会报如下图的错误。 解决方法: 选择好备份数据库文件后,再进入“选项”中,勾选“覆盖现在数据库”即可。

四、查看数据库版本的命令:select @@version 在数据库中,点击“新建查询”,然后输入命令,执行结果如下 五、数据库定义及操作命令: 按照数据结构来组织、存储和管理数据的仓库。由表、关系以及操作对象组成,把数据存放在数据表中。 1、修改数据库密码的命令: EXEC sp_password NULL, '你的新密码', 'sa' sp_password Null,'sa','sa'

sqlserver常用函数

Sql Server 常用函数 1,统计函数avg, count, max, min, sum 2, 3,多数聚会不统计值为null的行。可以与distinct一起使用去掉重复的行。可以与group by 来分组4, 5, 2,数学函数 6, 7, SQRT 8, ceiling(n) 返回大于或者等于n的最小整数 9, floor(n), 返回小于或者是等于n的最大整数 10,round(m,n), 四舍五入,n是保留小数的位数 11,abs(n) 12,sign(n), 当n>0, 返回1,n=0,返回0,n<0, 返回-1 13,PI(), 3.1415.... 14,rand(),rand(n), 返回0-1之间的一个随机数 15,3,字符串函数 16, 17,ascii(), 将字符转换为ASCII码, ASCII('abc') = 97 18,char(), ASCII 码转换为字符 19,low(),upper() 20,str(a,b,c)转换数字为字符串。a,是要转换的字符串。b是转换以后的长度,c是小数位数。 str(123.456,8,2) = 123.46 21,ltrim(), rtrim() 去空格 22,left(n), right(n), substring(str, start,length) 截取字符串 23,charindex(子串,母串),查找是否包含。返回第一次出现的位置,没有返回0 24,patindex('%pattern%', expression) 功能同上,可是使用通配符 25,replicate('char', rep_time), 重复字符串 26,reverse(char),颠倒字符串 27,replace(str, strold, strnew) 替换字符串 28,space(n), 产生n个空行 29,stuff(), SELECT STUFF('abcdef', 2, 3, 'ijklmn') ='aijklmnef', 2是开始位置,3是要从原来串中删除的字符长度,ijlmn是要插入的字符串。 30,3,类型转换函数: 31, 32,cast, cast( expression as data_type), Example: 33,SELECT SUBSTRING(title, 1, 30) AS Title, ytd_sales FROM titles WHERE CAST(ytd_sales AS char(20)) LIKE '3%' 34,convert(data_type, expression) 35,4,日期函数 36, 37,day(), month(), year() 38,dateadd(datepart, number, date), datapart指定对那一部分加,number知道加多少,date指定在谁的基础上加。datepart的取值包括,

SQL语言命令

SQL语言由命令、子句、运算和集合函数等构成。在SQL中,数据定义语言DDL(用来建立及定义数据表、字段以及索引等数据库结构)包含的命令有CREATE、DROP、ALTER;数据操纵语言DML(用来提供数据的查询、排序以及筛选数据等功能)包含的命令有SELECT、INSERT、UPDATE、DELETE。 一、SQL语句 (1)Select 查询语句 语法:SELECT [ALL|DISTINCT] <目标列表达式> [AS 列名] [,<目标列表达式> [AS 列名] ...] FROM <表名> [,<表名>…] [WHERE <条件表达式> [AND|OR <条件表达式>...] [GROUP BY 列名[HA VING <条件表达式>]] [ORDER BY 列名[ASC | DESC]] 解释:[ALL|DISTINCT] ALL:全部;DISTINCT:不包括重复行 <目标列表达式> 对字段可使用A VG、COUNT、SUM、MIN、MAX、运算符等 <条件表达式> 查询条件谓词 比较=、>,<,>=,<=,!=,<>, 确定范围BETWEEN AND、NOT BETWEEN AND 确定集合IN、NOT IN 字符匹配LIKE(“%”匹配任何长度,“_”匹配一个字符)、NOT LIKE 空值IS NULL、IS NOT NULL 子查询ANY、ALL、EXISTS 集合查询UNION(并)、INTERSECT(交)、MINUS(差) 多重条件AND、OR、NOT 对查询结果分组 [HA VING <条件表达式>] 分组筛选条件 [ORDER BY 列名[ASC | DESC]] 对查询结果排序;ASC:升序DESC:降序 例1:select student.sno as 学号, https://www.360docs.net/doc/d35986260.html, as 姓名, course as 课程名, score as 成绩from score,student where student.sid=score.sid and score.sid=:sid 例2:select student.sno as 学号, https://www.360docs.net/doc/d35986260.html, as 姓名,A VG(score) as 平均分from score,student where student.sid=score.sid and student.class=:class and (term=5 or term=6) group by student.sno, https://www.360docs.net/doc/d35986260.html, having count(*)>0 order by 平均分DESC 例3:select * from score where sid like '9634' 例4:select * from student where class in (select class from student where name='陈小小') (2)INSERT插入语句 语法:INSERT INTO <表名> [(<字段名1> [,<字段名2>, ...])] V ALUES (<常量1> [,<常量2>, ...]) 语法:INSERT INTO <表名> [(<字段名1> [,<字段名2>, ...])] 子查询 例子:INSERT INTO 借书表(rid,bookidx,bdate)V ALUES (edit1.text,edit2.text,date) 例子:INSERT INTO score1(sno,name) SELECT sno,name FROM stud ent WHERE class=?9634? (3)UPDATE-SQL

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;

SQLSERVER函数大全

SQL SERVER函数大全 SQL SERVER命令大全 SQLServer和Oracle的常用函数对比 1.绝对值 S:select abs(-1) value O:select abs(-1) value from dual 2.取整(大) S:select ceiling(-1.001) value O:select ceil(-1.001) value from dual 3.取整(小) S:select floor(-1.001) value O:select floor(-1.001) value from dual 4.取整(截取) S:select cast(-1.002 as int) value O:select trunc(-1.002) value from dual 5.四舍五入 S:select round(1.23456,4) value 1.23460 O:select round(1.23456,4) value from dual 1.2346 6.e为底的幂 S:select Exp(1) value 2.7182818284590451 O:select Exp(1) value from dual 2.71828182 7.取e为底的对数 S:select log(2.7182818284590451) value 1 O:select ln(2.7182818284590451) value from dual; 1 8.取10为底对数 S:select log10(10) value 1 O:select log(10,10) value from dual; 1 9.取平方 S:select SQUARE(4) value 16 O:select power(4,2) value from dual 16

SQLServer语句优化

SQLServer语句优化 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 我们把这种正文内容本身就是一种按照一定规则排列的目录称为“聚集索引”。 需要两个过程,先找到目录中的结果,然后再翻到您所需要的页码。我们把这种目录纯粹是目录,正文纯粹是正文的排序方式称为“非聚集索引”。 下面的表总结了何时使用聚集索引或非聚集索引(很重要): 动作描述使用聚集索引使用非聚集索引 列经常被分组排序应应 返回某范围内的数据应不应 一个或极少不同值不应不应 小数目的不同值应不应 大数目的不同值不应应 频繁更新的列不应应 外键列应应 主键列应应 频繁修改索引列不应应 事实上,我们可以通过前面聚集索引和非聚集索引的定义的例子来理解上表。如:返回某范围内的数据一项。比如您的某个表有一个时间列,恰好您把聚合索引建立在了该列,这时您查询2004年1月1日至2004年10月1日之间的全部数据时,这个速度就将是很快的,因为您的这本字典正文是按日期进行排序的,聚类索引只需要找到要检索的所有数据中的开头和结尾数据即可;而不像非聚集索引,必须先查到目录中查到每一项数据对应的页码,然后再根据页码查到具体内容。 结合实际,谈索引使用的误区 理论的目的是应用。虽然我们刚才列出了何时应使用聚集索引或非聚集索引,但在实践中以上规则却很容易被忽视或不能根据实际情况进行综合分析。下面我们将根据在实践中遇到的实际问题来谈一下索引使用的误区,以便于大家掌握索引建立的方法。 1、主键就是聚集索引 这种想法笔者认为是极端错误的,是对聚集索引的一种浪费。虽然SQL SERVER默认是在主键上建立聚集索引的。 通常,我们会在每个表中都建立一个ID列,以区分每条数据,并且这个ID列是自动增大的,步长一般为1。我们的这个办公自动化的实例中的列Gid就是如此。此时,如果我们将这个列设为主键,SQL SERVER会将此列默认为聚集索引。这样做有好处,就是可以让您的数据在数据库中按照ID进行物理排序,但笔者认为这样做意义不大。 显而易见,聚集索引的优势是很明显的,而每个表中只能有一个聚集索引的规则,这使得聚集索引变得更加珍贵。 从我们前面谈到的聚集索引的定义我们可以看出,使用聚集索引的最大好处就是能够根据查询要求,迅速缩小查询范围,避免全表扫描。在实际应用中,因为ID号是自动生成的,我们并不知道每条记录的ID号,所以我们很难在实践中用ID号来进行查询。这就使让ID号这个主键作为聚集索引成为一种资源浪费。其次,让每个ID号都不同的字段作为聚集索引也不符合“大数目的不同值情况下不应建立聚合索引”规则;当然,这种情况只是针对用户经常修改记录内容,特别是索引项的时候会

ER图+SQL语句练习题new

下图是企业订单管理系统的E-R图,提供对职工信息、客户信息、供应商信息、产品信息、订单信息、订单明细进行管理。描述为主键,描述为外键,外键约束通过图下箭头线进行标注。其中职员信息表中的sex取值为m或f,表示为男和女。 创建脚本如下: /*==============================================================*/ /* Table: 供应商信息表Supplier */ /*==============================================================*/ create table Supplier ( SupplierID char(5) not null, SupplierName varchar(50) not null,

Phone varchar(20) not null, Address varchar(50) null, PostalCode varchar(15) null, City varchar(20) null, constraint PK__Supplier primary key (SupplierID) ) go /*==============================================================*/ /* Table: 产品信息表Products */ /*==============================================================*/ create table Products ( ProductID char(5) not null, ProductName varchar(50) not null, SupplierID char(5) not null, constraint PK__Products primary key (ProductID), constraint FK_PRODUCTS_SUPPLIER foreign key (SupplierID) references Supplier (SupplierID) ) go /*==============================================================*/ /* Table: 客户信息表Customers */ /*==============================================================*/ create table Customers ( CustomerID char(5) not null, CustomerName varchar(50) not null, Phone varchar(20) not null,

禅道数据库表结构

专业版--后台-二次开发--数据库 查询每个人当天执行多少用例 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.360docs.net/doc/d35986260.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.360docs.net/doc/d35986260.html,='ETC项目' and lastRunDate>'2015-12-17 00:00:00' and lastRunDate<'2015-12-17 23:59:59' select zt_https://www.360docs.net/doc/d35986260.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.360docs.net/doc/d35986260.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数据库与表的创建

1.创建数据库 --创建数据库 create database db_NetStore --网上书城 on primary (name='db_NetStore', filename='f:\data\db_NetStore.mdf', size=10MB, maxsize=50MB ) log on (name='db_NetStore_log', filename='f:\data\db_NetStore.ldf, size=5MB, maxsize=25MB ) 2.创建表 ①create table Member --会员信息表 ( MemberID int not null primary key,--会员ID UserName varchar(50)not null,--会员登录名Password varchar(50)not null,--会员登录密码RealName varchar(50)not null,--会员真实姓名Sex bit not null,--会员性别 Phonecode varchar(20)not null,--会员电话号码Email varchar(50)not null,--会员E-mail地址Address varchar(200)not null,--会员详细地址PostCode char(10)not null,--邮编 LoadDate datetime not null,--创建时间 ) ②create table Admin --管理员信息表 ( AdminID int not null primary key,--管理员ID AdminName varchar(50)not null,--管理员登录名Password varchar(50)not null,--管理员登录密码RealName varchar(50)not null,--管理员真实姓名Email varchar(50)not null,--管理员E-mail地址LoadDate datetime not null,--创建时间 )

相关文档
最新文档