文档库 最新最全的文档下载
当前位置:文档库 › SQL语句汇总

SQL语句汇总

SQL语句汇总
SQL语句汇总

S Q L语句

一:基本查询:

(1)插入单行数据

insert into 表名(列名1,列名2,列名3,……)values(值1,值2,值3……)from 表名

(2)将现有表中的数据添加到新表中

insert into 新表名(列名1,列名2,列名3,……)select(值1,值2,值3……)from已存在表的表名select 表名1.列名1,表名1.列名2……into 表名//不需先创建表

(3)创建标识列

select identity(数据类型,标识种子,标识常量)as 列名into 新表form原始表

(4)使用union关键字插入多行数据

insert 表名(列名1,列名2,列名3,……)

select 列名1,列名2,列名3,……union

select 列名1,列名2,列名3,……

(5)更新某行数据

upadate 表名set列名1=更新值,列名2=更新值……

where 列名1=原始值,列名2=原始值……

(6)删除数据行

delete from表名where条件

注意:不能删除有主键被其他表引用的行!

truncate table 表名

注意:此语句用来删除表中所有行,但是表的结构、列、约束等不变。且不能用于有外键约束的表

(7)限制查询返回行数及按百分比返回

select TOP 行数列名1,……from 表名where条件

select TOP PRECENT列名1,……from 表名where条件

(8)LIKE查询

select *from 表名where列名LIKE'zhang%'

(9)between查询

select *from 表名where列名between 数值范围

(10)In查询

select 列名from列名where列名(not)In('字符值1','字符值2',……)order by 列名

(11)使用聚合函数查询

select 聚合函数(列名)from表名where条件

(12)分组查询

select 列名1,聚合函数(列名)from表名group by 列名1

(13)having筛选

select 列名1,列名2,……from表名group by 列名,列名……having count(*)>1

(14)使用distinct去除重复信息

select distinct 列名from 表名

(15)NULL值的判断

空值运算符:is(not)NULL

注意:不能用<>代替上面的语句

(16)组合查询

使用AND OR 运算符

(17)关于IN和NOT IN查询

在条件中添加语句:where 列名IN(not in)('values1'……)

(18)IN 与OR 可以互换,已达到同样的效果

(19)NOT 运算符

NOt 即对查询条件取反

注意:NULL 取反仍为NULL

(20)NOT与BETWEEN组合使用

列名NOT BETWEEN 40 AND 60

(21)LIKE 模糊查询

“%"通配符:表示任意的字符匹配,且不计字符的多少

列名LIKE '计算机%'表示此列是以"计算机"开头后接任意的字符

列名LIKE '%计算机'表示此列是以"计算机"结尾前面接任意多的字符

列名LIKE '%计算机%'表示此列是含有"计算机"前后接任意多的字符

列名LIKE '基础%计算机'表示此列是以"基础"开头,以"计算机"结尾中间可含有任意多的字符

"_"通配符:表示任意一个字符的匹配,且知道列名含有的字符个数

列名LIKE '计算机__'表示此列含有五个字符

"[]"通配符:用于指定一系列字符,只要满足这些字符其中之一,且位置出现在[]通配符的位置的字符串就满足查询条件

列名LIKE '[计生]%'表示要查是以"计"字,或是以"生"字开头的列名

列名LIKE '[^计生]%'表示要查所有不以"计"字,或是以"生"字开头的列名

注意:用NOT和用^能达到同样的效果

(22)使用ESCAPE定义转义字符

LIKE '%M%'ESCAPE ‘M’

注意:上面第二个%号是实际值,不作为通配符

二:连接符、数值运算和函数

(1)连接符:+,||用于连接表中的两列或者多列数据,使他们作为一列供用户查找操作

Select 列名1+列名2,列名4 from 表名

注意:相连接的列名的数据类型应当相容,若不相容就要强制转换如下:

select 列名1+CAST(列名2 AS 数据类型),列名4 from 表名

另注意:若有一列名为NULL则连接后结果也为空

(2)数值运算:加、减、乘、除、取余%

Select 列名1*列名2,列名4 from 表名

注意:相运算的两列必须是数值型,若是数据类型不同但同为数值(比如说:学号有人为char型,有的人为int型)就要强制转换如下:

select 列名1+CAST(列名2 AS 数据类型),列名4 from 表名

(3)函数:

字符处理函数:ASCII(字符表达式),返回字符表达式最左端字符的ASCII码值

CHAR(INT 型表达式),将ASCII码转换为字符。若没有输入0~255之间的ASCII码值,函数将会返回NULL值

LOWER(字符表达式)和UPPER(字符表达式),分别将字符转换为小写和大写

LTRIM(字符表达式)和RTRIM(字符表达式),分别将字符串头和尾部的空格去掉

LEFT(字符表达式,int值),返回从字符串最左边起,到第int值个字符的部分

RIGHT(字符表达式,int值),返回从字符串右边第int值个自符起,到最后一个字符的部分

SUBSTRING(字符表达式,开始位置,长度),返回部分字符串是从左边"开始位置"起到指定"长度"结束

REPLICATE(字符表达式,int值),返回一个重复"字符表达式"指定次数的字符串

REVERSE(字符表达式)将指定的字符串的字符排列顺序颠倒。

REPLACE(字符表达式1,字符表达式2,字符表达式3),用"1"替换在"2"中的子串"3"。

日期函数:DAY(date_expression),返回date_expression中的日期值

MONTH(date_expression),返回date_expression中的月份值

YEAR(date_expression), 返回date_expression中的年份值

DATEADD(datepart,number,date),返回指定日期date加上指定的额外日期间隔number产生的新日期

DATEDIFF(datepart,date1,date2),返回date2超过date1的差距值,是个整数值

DATENAME(datepart,date,),以字符串的形式返回日期的指定部分,此部分由datepart来指定

DATEPART(datepart,date),以整数的形式返回日期的指定部分。此部分由datepart来指定

GETDATE()返回系统当前时间

CONVERT()函数转换日期,时间

convert(date_type,expression,style)date_type为要转换成的数据类型,expression为DATATIME类型的数据,style为指定的转换形式。

常用转换形式:日期时间综合类型:0,9,13,20,21

时间类型:8,14

日期类型:1,2,3,4,5,6,7,9,10,11,12

聚合函数:sum(列名):只能作用于数值类型的列,若该列存在NULL值,求和函数会忽略该值。

max(列名):可以是数值、字符串、日期时间类型

min(列名):可以是数值、字符串、日期时间类型

avg(列名):只能作用于数值类型的列,若该列存在NULL值,求和函数会忽略该值。

count(列名):用来计算表中记录的个数或者列中值的个数,可以为*号,若含有NULL值则会忽略。

聚合分析的重值处理:可以使用ALL关键字对所有行数据进行处理,使用DISTINCT关键字指明对所选列中的非重值数据进行行处理。

select AVG ALL或DISTINCT 列名from 表名

分组查询:select 列名1,……from 表名

where 条件

group by 列名1

group by 列名2//多列组合查询

CUBE运算符和ROLLUP运算符:在使用group by 进行多列组合查询时,可以在group by子句中使用ROLLUP运算符和CUBE运算符,扩展查询结果。

select 列名1……from 表名

group by 列名1,列名2 with ROLLUP 或者CUBE

注意:group by 子句中将所有NULL值分成同一组

HAVING 子句:对分组以后的内容再进行筛选

select column,sum(column)

from table_name

group by column

HAVING 条件

三:多表查询

select column

from join_table

JION_type join_table

ON (join_condition)

自然连接:natural join

内连接:inner join

外连接:left outer join 和right outer join

交叉连接:cross join

注意:此连接不需要使用ON关键字!

UNION运算符:用来求两个集合并的运算

select column_name

from table_name

where condition

UNION (ALL)//若用了ALL则是用来保留所有重复元组

select column_name

from table_name

where condition

注意:1.可以用OR代替,但是两个集合中若有重复的记录用OR是无法除去的。

2.既可以使用在同一张表中也可以多表联合。

A.内联查询:

1.

SELECT 表名1.列名,表名2.列名,……//想要查询的内容

FROM 表名1,表名2,……//目标表名

WHRER 两表条件(列名)相等//判断条件相等

2.

使用JOIN……ON

SELECT 表名1.列名,表名2.列名,……

FROM 表名1INNER JOIN 表名2 ON

(两表条(列名)件相等)

B.外连接查询:

1.左外连接

(1)以左边的表为主表,找右边表相匹配的记录,若没有则显示为NULL。语法:left outer join……on

2.右外连接

(1)以右边的表为主表,找左边表相匹配的记录,若没有则显示为NULL。语法:right outer join……on

3.完整外联接:full join

四:创建数据库:

1. create database 数据库名称

on primary

( name='数据库逻辑名称'

filename='物理名称'

size=数字MB

maxsize=数字MB

filegrowth=数字%

)

log on

(name='日志文件名字'

filename='物理文件名称'

siz=数字MB

filegrowth=数字MB)

go

2. 创建表:

create table 表名

(字段1 数据类型约束

……)

3. 删除表:drop table 表名

4. 约束:主键约束PK_字段名

唯一约束UQ_字段名

检查约束CK_字段名

默认约束DF_字段名

外键约束FK_字段名

5. 添加约束:add constraint 约束类型(条件)

6. 删除约束:alter table 表名

drop constraint 约束名

7. 增加新列:alter table 表名

add 列名数据类型

8. 删除列:alter table 表名

drop column 列名

9. 修改列:alter table 表名

alter column 要修改的列名修改值

10.表的重命名:sp_rename '旧表名' '新表名'

11.重命名列名:sp_rename '表名.列名' '新列名' 'column'

12.创建登陆:

创建SQL登陆账户:exec sp_addlogin, '账户名','密码'

创建Windows登录账户: exec sp_grantlogin, 'windows域名\账户'

创建数据库用户:exec sp_grantdbaccess '账户','数据库用户名'

给数据库用户授权:grant 权限(intsert,update,select,delete) on 表名to 用户五:索引

1. 簇索引:对表的物理数据页中的数据按列进行排序,然后重新存储到磁盘上

2. 非簇索引:与表的结构完全分离

3. 创建索引:create index 索引名称

on 表名(列名1……)

4. 创建非簇索引:select 列名1……

from 表名

with (index(索引名称))

where 条件

5. 创建条件索引:唯一unique, 聚集与非聚集索引:clustered/noclustered

create 条件index 索引名称

on 表名(列名1……)

6. 销毁索引:drop index 索引名称

六:视图

1. 创建视图:create view 视图名称(列名1……可选)

as

select 列名

from 表名

2. 为视图创建视图:create view 视图名称

as

select*from 已经建好的视图名称

where 条件

3.查看视图:select *from 视图名称

4.利用视图简化表的复杂联接

实例:create view join_view

AS

select sname, dname,score

from StudentInfor,Department,RecrutInfor

where StudentInfor.address= RecrutInfor.address

and StudentInfor.dno = RecrutInfor.don

5.利用视图简化复杂查询:用视图创建视图的方法来简化查

实例:create VIEW result_view (sname,dname)

as

select Boyscore_view.Sname,Department.dname

from Boyscore_view,Department

where Boyscore_view.dno=Department.dno

6.视图的销毁:drop view 视图名称

七:子查询

1.在多表查询中使用子查询:

Select column_name from table_name1

Where column_name =

(select column_name from table_name2 where column_name=数值)

2.IN 子查询

Select column_name from table_name

Where colum [not] IN(select column_name from table_name2 where column_name=数值)

3.采用IN 子查询实现集合交运算

Select column_nane1……from table_name1

Where column_name2条件

AND column_name3 [not]IN

(select column_name3 from table_name2 where column_name2=数值)

4.EXISTS子查询

Select column_nane1……from table_name1

Where [not] EXISTS

(select column_name3 from table_name2 where column_name2=数值)

5.使用EXISTS 子查询实现两表交集

Select column_nane1……from table_name1

Where column_name2条件

AND [not]EXISTS

(select column_name3 from table_name2 where column_name2=数值)

注意:此查询可以用INNER JOIN 连接方式实现

6.Some 和ALL子查询

注意1:some和all关键字具有相同的功能

注意2:只要是使用了SQL比较运算符,那么运算前后的表达式都必须为单一值

Select column_nane1……from table_name1

Where column_name2>

ALL [Some](select column_name3 from table_name2 where column_name2=数值) 7.UNIQUE子查询

注意:这个关键字使用来测试集合是否存在重复元素!与EXISTS判式相似,他总是与子查询结合使用,若有重复则返回真,反则返回假

Select column_name from table_name

Where [not]UNIQUE

(selece column_name from table_name where column_name条件)

8.使用IN引入相关子查询

Select 课程号,课程名称,学时

From 课程表

Where ‘李华’IN

(select 姓名from 学生信息表where 课程号=课程表.课程号)

Order by 课程号

特别注意:相关子查询具有较高的处理要求,因此应该尽量避免使用,可用多表连接替代9.在HAVING子句中使用相关子查询

先分组,再筛选出符合要求的记录行

10. 嵌套子查询:即在子查询中再套一个子查询。

执行顺序是:从里到外

11.使用子查询创建视图

第一步:创建视图

create view view_name(列名……)

AS

Select 列名……

From table_name

Group by 列名

第二部:使用视图进行查询

Select 列名……

From 表名

Where 列名IN (select 列名view_name where view_列名条件)

八:存储过程与函数

1.创建存储过程

Create procedure 存储过程名称

@参数名称数据类型output(输出参数)

@参数名称数据类型默认为输入参数

AS

Select * 表名

Where 参数赋值或条件

2.调用存储过程

Exec 存储过程名称输入参数值

3.使用create function 创建函数

Create function 名称(参数列表:@名字数据类型)

Returns decimal //返回值

AS

Begin

Return (标量值表达式:也就是你要通过参数返回的东西)END

2021年SQL语句大全实例

SQL语句实例 欧阳光明(2021.03. 07) 表操作 例1对于表的教学管理数据库中的表STUDENTS ,可以定义如下: CREATE TABLE STUDENTS (SNO NUMERIC (6, 0) NOT NULL SNAME CHAR (8) NOT NULL AGE NUMERIC(3,0) SEX CHAR(2) BPLACE CHAR(20) PRIMARY KEY(SNO)) 例2对于表的教学管理数据库中的表ENROLLS ,可以定义如下:CREATE TABLE ENROLLS (SNO NUMERIC(6,0) NOT NULL CNO CHAR(4) NOT NULL GRADE INT PRIMARY KEY(SNO,CNO) FOREIGN KEY(SNO) REFERENCES STUDENTS(SNO) FOREIGN KEY(CNO) REFERENCES COURSES(CNO)

*欧阳光明*创编2021.03.07 CHECK ((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100))) 例3根据表的STUDENTS表,建立一个只包含学号.姓名.年龄的女学生表。 CREATE TABLE GIRL AS SELECT SNO, SNAME, AGE FROM STUDENTS WHERE SEX=女?; 例4删除教师表TEACHER。 DROP TABLE TEACHER 例5在教师表中增加住址列。 ALTER TABLE TEACHERS ADD (ADDR CHAR(50)) 例6把STUDENTS表中的BPLACE列删除,并且把引用 BPLACE列的所有视图和约束也一起删除。 ALTER TABLE STUDENTS DROP BPLACE CASCADE 例7补充定义ENROLLS表的主关键字。 ALTER TABLE ENROLLS ADD PRIMARY KEY (SNO,CNO);

常用SQL语句大全

常用SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 DROP database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definition only 5、说明:删除新表 DROP table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键:Alter table tabname DROP primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:DROP index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:DROP view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词

SQL学习总结

SQL学习 2.1 SQL 简介 当面对一个陌生的数据库是,通常需要一种方式与它进行交换,以完成用户所需要的各种工作,这个时候,就要用到SQL语言了,由于SQL 语言的标准化,所以大多数关系型数据库系统都支持SQL语言,它已经发展成多种平台进行交互操作的底层会话语言。 2.2 SQL 使用入门 2.2.1 SQL分类 SQL 语句主要可以划分为以下3个类别 1)、DDL (Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括create、drop、alter等。 2)、DML(Data Manipulation Languagr)语句:数据操作语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用的语句关键字主要包括insert、delete、update和select等。 3)、DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别、主要的语句关键字包括grant、revoke等。 2.2.2 DDL 语句 DDL是数据定义语言的缩写,是对数据库内部的对象进行创建(create)、删除(drop)、修改(alter)的操作语言,它和DML语句的最大区别是DML只是对表内部数据的操作,而不涉及表定义,结构的修改,更不会涉及其它的对象,DDL语句更多地被数据库管理员(DBA)所使用,一般开发人员很少使用。 下面通过一些例子来介绍MySQL中常用的DDL语句的使用方法。 1、创建数据库 因为所有的数据都存储在数据库中,因此需要学习的第一个命令是创建数据库,语法如下:

数据库_经典SQL语句大全

一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1. dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….)删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1

SQL Server2000常用语句

SQL Server 2000常用命令,语法使用方法 (1) 数据记录筛选: sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]" sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 in ('值1','值2','值3')" sql="select * from 数据表 where 字段名 between 值1 and 值2" (2) 更新数据记录: sql="update 数据表 set 字段名=字段值 where 条件表达式" sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式" (3) 删除数据记录: sql="delete from 数据表 where 条件表达式" sql="delete from 数据表" (将数据表所有记录删除) (4) 添加数据记录: sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)" sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表) (5) 数据记录统计函数: AVG(字段名) 得出一个表格栏平均值 COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计 MAX(字段名) 取得一个表格栏最大的值 MIN(字段名) 取得一个表格栏最小的值 SUM(字段名) 把数据栏的值相加 引用以上函数的方法:

SQL语句--Group By总结

1 SQL语句--Group By总结 1. Group By 语句简介: Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。 P.S. 这里真是体会到了一个好的命名的力量,Group By从字面是直接去理解是非常好理解的。恩,以后在命名的环节一定要加把劲:)。话题扯远了。 2. Group By 的使用: 上面已经给出了对Group By语句的理解。基于这个理解和SQL Server 2000的联机帮助,下面对Group By语句的各种典型使用进行依次列举说明。 2.1 Group By [Expressions]: 这个恐怕是Group By语句最常见的用法了,Group By + [分组字段](可以有多个)。在执行了这个操作以后,数据集将根据分组字段的值将一个数据集划分成各个不同的小组。比如有如下数据集,其中水果名称(FruitName)和出产国家(ProductPlace)为联合主键: FruitName ProductPlace Price Apple China $1.1 Apple Japan $2.1 Apple USA $2.5 Orange China $0.8 Banana China

$3.1 Peach USA $3.0 如果我们想知道每个国家有多少种水果,那么我们可以通过如下SQL语句来完成: SELECTCOUNT(*)AS水果种类,ProductPlaceAS出产国 FROMT_TEST_FRUITINFO GROUPBYProductPlace 这个SQL语句就是使用了Group By + 分组字段的方式,那么这句SQL语句就可以解释成“我按照出产国家(ProductPlace)将数据集进行分组,然后分别按照各个组来统计各自的记录数量。”很好理解对吧。这里值得注意的是结果集中有两个返回字段,一个是ProductPlace(出产国), 一个是水果种类。如果我们这里水果种类不是用Count(*),而是类似如下写法的话: SELECTFruitName,ProductPlaceFROMT_TEST_FRUITINFOGROUPBYProductPlace 那么SQL在执行此语句的时候会报如下的类似错误: 选择列表中的列'T_TEST_FRUITINFO.FruitName'无效,因为该列没有包含在聚合函数或GROUPBY子句中。 这就是我们需要注意的一点,如果在返回集字段中,这些字段要么就要包含在Group By语句的后面,作为分组的依据;要么就要被包含在聚合函数中。我们可以将Group By操作想象成如下的一个过程,首先系统根据SELECT 语句得到一个结果集,如最开始的那个水果、出产国家、单价的一个详细表。然后根据分组字段,将具有相同分组字段的记录归并成了一条记录。这个时候剩下的那些不存在于Group By语句后面作为分组依据的字段就有可能出现多个值,但是目前一种分组情况只有一条记录,一个数据格是无法放入多个数值的,所以这里就需要通过一定的处理将这些多值的列转化成单值,然后将其放在对应的数据格中,那么完成这个步骤的就是聚合函数。这就是为什么这些函数叫聚合函数(aggregate functions)了。 2.2 Group By All [expressions] : Group By All + 分组字段, 这个和前面提到的Group By [Expressions]的形式多了一个 关键字ALL。这个关键字只有在使用了where语句的,且where条件筛选掉了一些组的情况才可以看出效果。在SQL Server 2000的联机帮助中,对于Group By All是这样进行描述的:

sql语句大全1

SQL语句大全 --语句功能 --数据操作 SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 --数据定义 CREATE TABLE --创建一个数据库表 DROP TABLE --从数据库中删除表 ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图 CREATE INDEX --为数据库表创建一个索引DROP INDEX --从数据库中删除索引 CREATE PROCEDURE --创建一个存储过程 DROP PROCEDURE --从数据库中删除存储过程CREATE TRIGGER --创建一个触发器 DROP TRIGGER --从数据库中删除触发器CREATE SCHEMA --向数据库添加一个新模式DROP SCHEMA --从数据库中删除一个模式CREATE DOMAIN --创建一个数据值域 ALTER DOMAIN --改变域定义 DROP DOMAIN --从数据库中删除一个域 --数据控制 GRANT --授予用户访问权限 DENY --拒绝用户访问 REVOKE --解除用户访问权限 --事务控制 COMMIT --结束当前事务 ROLLBACK --中止当前事务 SET TRANSACTION --定义当前事务数据访问特征--程序化SQL DECLARE --为查询设定游标 EXPLAN --为查询描述数据访问计划 OPEN --检索查询结果打开一个游标 FETCH --检索一行查询结果 CLOSE --关闭游标 PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句 DESCRIBE --描述准备好的查询

最新常用经典SQL语句大全完整版

常用经典SQL语句大全完整版--详解+实例下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice ’disk’, ’testBack’, ’c:\mssql7backup\MyNwind_1.dat’--- 开始备份 BACKUP DATABASE pubs TO testBack

4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明: 删除新表:drop table tabname 6、说明: 增加一个列:Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明: 添加主键:Alter table tabname add primary key(col) 说明: 删除主键:Alter table tabname drop primary key(col) 8、说明: 创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname

SQL SEVER 常用语句

整理了一下,希望对大家有用 SQL语句大全 --语句功能 --数据操作 SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 --数据定义 CREATE TABLE --创建一个数据库表 DROP TABLE --从数据库中删除表 ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图 CREATE INDEX --为数据库表创建一个索引DROP INDEX --从数据库中删除索引 CREATE PROCEDURE --创建一个存储过程 DROP PROCEDURE --从数据库中删除存储过程CREATE TRIGGER --创建一个触发器 DROP TRIGGER --从数据库中删除触发器CREATE SCHEMA --向数据库添加一个新模式DROP SCHEMA --从数据库中删除一个模式CREATE DOMAIN --创建一个数据值域 ALTER DOMAIN --改变域定义 DROP DOMAIN --从数据库中删除一个域 --数据控制 GRANT --授予用户访问权限 DENY --拒绝用户访问 REVOKE --解除用户访问权限 --事务控制 COMMIT --结束当前事务 ROLLBACK --中止当前事务 SET TRANSACTION --定义当前事务数据访问特征--程序化SQL DECLARE --为查询设定游标 EXPLAN --为查询描述数据访问计划 OPEN --检索查询结果打开一个游标 FETCH --检索一行查询结果 CLOSE --关闭游标 PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句 DESCRIBE --描述准备好的查询

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”(哎和一),用户反映说看不清楚,公司决定,把存储在数据

数据库经典SQL语句大全

数据库经典SQL语句大全 篇一:经典SQL语句大全 下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk','testBack', 'c:mssql7backupMyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2? from tab_old definition only 5、说明: 删除新表: tabname 6、说明: 增加一个列:Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明: 添加主键:Alter table tabname add primary key(col) 说明: 删除主键:Alter table tabname drop primary key(col) 8、说明: 创建索引:create [unique] index idxname on tabname(col?.) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。

常用经典SQL语句大全完整版教学文案

常用经典S Q L语句大 全完整版

常用经典SQL语句大全完整版--详解+实例下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice ’disk’, ’testBack’, ’c:\mssql7backup\MyNwind_1.dat’--- 开始备份

BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明: 删除新表:drop table tabname 6、说明: 增加一个列:Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明: 添加主键:Alter table tabname add primary key(col) 说明: 删除主键:Alter table tabname drop primary key(col) 8、说明: 创建索引:create [unique] index idxname on tabname(col….)

SQL常用语句与解释

SQL常用语句与解释 (1)数据记录筛选: sql="select * from 数据表where 字段名=字段值order by 字段名[desc]" //从数据表中读取“字段名=字段值”的所有字段并根据字段名排序【倒序】sql="select * from 数据表where 字段名like '%字段值%' order by 字段名[desc]" //从数据表中读取“字段名中包含字段值”的所有字段并根据字段名排序【倒序】sql="select top10 * from 数据表where 字段名=字段值order by 字段名[desc]" //从数据表中读取前10条满足“字段名=字段值”的所有字段并根据字段名排序【倒序】 sql="select * from 数据表where 字段名in('值1','值2','值3')" //从数据表中读取“字段名满足三个值中的一个”的所有字段 (2)更新数据记录: sql="update 数据表set 字段名=字段值where 条件表达式" //更新数据表中满足条件表达式的记录的字段(更新一条字段)sql="update 数据表set 字段1=值1,字段2=值2……字段n=值n where 条件表达式" //更新数据表中满足条件表达式的记录的多个字段(更新多条字段) (3)删除数据记录: sql="delete from 数据表where 条件表达式" //删除数据表中满足条件表达式的所有记录 sql="delete from 数据表" //将数据表所有记录删除 (4)添加数据记录: sql="insert into 数据表(字段1,字段2,字段3…) values(值1,值2,值3…)" //将值1,值2,值3...插入数据表的字段1,字段2,字段3... sql="insert into 目标数据表select * from 源数据表" //把源数据表的记录添加到目标数据表 (5)数据记录统计函数: AVG(字段名)//得出一个表格某个字段的平均值 COUNT(*|字段名)//对数据行数的统计或对某一字段有值的数据行数统计 MAX(字段名)//取得一个表格中某字段的最大值 MIN(字段名)//取得一个表格中某字段的最小值 SUM(字段名)//取得一个表格中某字段的总和 引用以上函数的方法: sql="select sum(字段名) as 别名from 数据表where 条件表达式" //别名是为了引用的需要

数据库基本SQL语句大全

数据库基本SQL语句大全 数据库基本----SQL语句大全 一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1、d at' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 typ e2 [not null],、、) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definit ion only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的就是增加varchar类型的长度。 7、说明:添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col…、) 删除索引:drop index idxname 注:索引就是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement

SQL常用语句及函数方法

1、通常用到的字符串转日期格式 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06 Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06 Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06 Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06 Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06 Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46 Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06 Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16 Select CONVERT(varchar(100), GETDATE(), 12): 060516 Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937 Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967 Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47 Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157 Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16 Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47

50个经典sql语句总结

一个项目涉及到的50个Sql语句(整理版) --1.学生表 Student(S,Sname,Sage,Ssex) --S 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别--2.课程表 Course(C,Cname,T) --C --课程编号,Cname 课程名称,T 教师编号 --3.教师表 Teacher(T,Tname) --T 教师编号,Tname 教师姓名 --4.成绩表 SC(S,C,score) --S 学生编号,C 课程编号,score 分数 */ --创建测试数据 create table Student(S varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10)) insert into Student values('01' , N'赵雷' , '1990-01-01' , N'男') insert into Student values('02' , N'钱电' , '1990-12-21' , N'男') insert into Student values('03' , N'孙风' , '1990-05-20' , N'男') insert into Student values('04' , N'李云' , '1990-08-06' , N'男') insert into Student values('05' , N'周梅' , '1991-12-01' , N'女') insert into Student values('06' , N'吴兰' , '1992-03-01' , N'女') insert into Student values('07' , N'郑竹' , '1989-07-01' , N'女') insert into Student values('08' , N'王菊' , '1990-01-20' , N'女') create table Course(C varchar(10),Cname nvarchar(10),T varchar(10)) insert into Course values('01' , N'语文' , '02') insert into Course values('02' , N'数学' , '01') insert into Course values('03' , N'英语' , '03') create table Teacher(T varchar(10),Tname nvarchar(10)) insert into Teacher values('01' , N'张三') insert into Teacher values('02' , N'李四') insert into Teacher values('03' , N'王五') create table SC(S varchar(10),C varchar(10),score decimal(18,1)) insert into SC values('01' , '01' , 80) insert into SC values('01' , '02' , 90) insert into SC values('01' , '03' , 99) insert into SC values('02' , '01' , 70) insert into SC values('02' , '02' , 60) insert into SC values('02' , '03' , 80) insert into SC values('03' , '01' , 80) insert into SC values('03' , '02' , 80) insert into SC values('03' , '03' , 80) insert into SC values('04' , '01' , 50) insert into SC values('04' , '02' , 30) insert into SC values('04' , '03' , 20) insert into SC values('05' , '01' , 76) insert into SC values('05' , '02' , 87)

50个经典SQL查询语句

--一个题目涉及到的50个Sql语句 --(下面表的结构以给出,自己在数据库中建立表.并且添加相应的数据,数据要全面些. 其中Student表中,SId为学生的ID) ------------------------------------表结构-------------------------------------- --学生表tblStudent(编号StuId、姓名StuName、年龄StuAge、性别StuSex) --课程表tblCourse(课程编号CourseId、课程名称CourseName、教师编号TeaId) --成绩表tblScore(学生编号StuId、课程编号CourseId、成绩Score) --教师表tblTeacher(教师编号TeaId、姓名TeaName) --------------------------------------------------------------------------------- --1、查询“001”课程比“002”课程成绩高的所有学生的学号; Select StuId From tblStudent s1 Where (Select Score From tblScore t1 Where t1.StuId=s1.stuId And t1.CourseId='001')> (Select Score From tblScore t2 Where t2.StuId=s1.stuId And t2.CourseId='002') --2、查询平均成绩大于60分的同学的学号和平均成绩; Select StuId,Avg(Score) as AvgScore From tblScore Group By StuId Having Avg(Score)>60 --3、查询所有同学的学号、姓名、选课数、总成绩; Select StuId,StuName, SelCourses=(Select Count(CourseId) From tblScore t1 Where t1.StuId=s1.StuId), SumScore=(Select Sum(Score) From tblScore t2 Where t2.StuId=s1.StuId) From tblStudent s1 --4、查询姓“李”的老师的个数; Select Count(*) From tblTeacher Where TeaName like '李%' --5、查询没学过“叶平”老师课的同学的学号、姓名; Select StuId,StuName From tblStudent Where StuId Not In ( Select StuID From tblScore sc Inner Join tblCourse cu ON sc.CourseId=cu.CourseId Inner Join tblTeacher tc ON cu.TeaId=tc.TeaId Where tc.TeaName='叶平' ) --6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; Select StuId,StuName From tblStudent st Where (Select Count(*) From tblScore s1 Where s1.StuId=st.StuId And

相关文档