删除表中重复数据sql语句(7)

2020-06-07 14:29

-----------case到end为一列里的判断,case在这里是取值,结果用于输出,不显示原值

----------------------------------------------------------------------------- select 列名1, case 列名2

when 1 then '男生' when 0 then '女生' else '未知' end

from 表名

--------这里case取列名,是用于这一列每项取值比较,在这里列名2用的是bit型数据

------------------------------------------------------------------------- select * into 库1.表1 from 库2.表2 -----------把库2中表2移到库1中

------------------------------------------------------------------------ 数据维护三个命令:

insert ---------向表中插入数据 update ---------修改表中的数据 delete ---------删除表中的数据

------------------------------------------------------------------------ insert into 表名 -----------(into可有可无)

(列1,列2,列3,列4) -----------表的原始列,用括号括起来 values ----------有这条命令只能插入一条数据 (数1,数2,数3,数4) ----------插入的数值 ---------可以省略原始列清单,但必须把所有列都赋值 ------------------------------------------------------------------------ insert into 表1

(列1,列2,列3,列4)

select * from 表2 where sex=1

----------将表2中sex列等于1的数据信息插入表1中 ------------------------------------------------------------------------- update 表名 set 姓名='丁一'

where 姓名='李一' ----------把表中姓名叫李一的改为丁一。 ------------where后面跟定位的列与值

------------------------------------------------------------------------- update 表名 set 学号=14, 姓名=陈强

where 学号=1 ------------把学号为1的同学改为学号14,姓名陈强 -----------------------------------------------------------------------

update 表名

set 学号=年龄+7, 姓名='陈一强', 年龄=29

where 学号=14

-------把学号为14的同学资料改为年龄加七赋给学号姓名改为陈一强,年龄改为29

-------如果没用where定位,则修改全部值

------------------------------------------------------------------------ delete 表名

where 学号>30 ---------把学号大于30的资料删除

--------如不指定条件,则删表内所有数据。这是记录日志文件的操作 ---------------------------------------------------------------- truncate table 表名

-------清空表。不记录日志文件的操作。

-------------------------------------------------------------------- create view 图名 -------------新建视图 用法: create view 图名 as

select 列名 from 表名

------------------------------------------------------------------------------

syscomments ------------这个表存着视图代码的信息 ------------------------------------------------------------------------------ alter view 图名 with encryption as

select 列名 from 表名 -----------用with encyption语句给视图原代码加密

-------------不可恢复,除非保留源代码

------------------------------------------------------------------------------ sp_helptext 图名 -----------查看视图源代码

----------------------------------------------------------------------------- select text from syscomments

where id =(select id from sysobjects where name ='图名') ---------查视图的代码

----------------------------------------------------------------------------- create view 图名 as

select * from 源图名 ------------基于源图创建新视图 ----------------------------------------------------------------------------- create view 图名 as

select 列1 as 新列1,列2 新列2,列3=新列3 ---------起别名的三种方法 from 表名 -----------在新视图中为列起别名,则所见的是新起的别名 -----------------------------------------------------------------------------

sp_depends 表名 -----------查该表的相关性,有多少表、图与之相关。 ------------------------------------------------------------------------------- create view 图名 select * from 表名 where 年龄<20

with check option ---------强制插入数据符合年龄小于20的条件,加在where后面

-----------是约束insert和update语句的

------------------------------------------------------------------------------- select 男公民.姓名,女公民.姓名 from 男公民,女公民 where 男公民.配偶编号=女公民.编号

------------查结婚男女。较原始的语法,后被下列语法取代 或: select 男公民.姓名,女公民.姓名

from 男公民 join 女公民 on 男公民.配偶编号=女公民.编号 -------新的形式,在join之前省略了inner语句。

--可用左连接(*=或left outer join)右连接(=*或right outer join)全连接(full outer) ----where不能做全连接,但可以做连接的约束 select * from 男公民

where 配偶编号 in (select 编号 from 女公民)

--------嵌套查询,查配偶编号在女公民表中编号列中出现过的 ------------------------------------------------------------------------------- select distinct 客户表.*

from (select * from 订单表 where 订单年份=2004) as d,客户表 where d.客户号=客户表.客户号

-----子查询放在from身后,也可以放在where身后

---------------------------------------------------------------------------- select (select 子查询语句) from 表名

-------这种格式要求子查询查出的必须是唯一的数据

---------------------------------------------------------------------------- select a.员工编号,a.员工姓名,b.员工姓名 as 领导姓名 from 员工表 as a,员工表 as b where a.部门领导编号=b.员工编号

select a.员工编号,a.员工姓名,b.员工姓名 as 领导姓名

from 员工表 as a join 员工表 as b on a.部门领导编号=b.员工编号

select a.员工编号,a.员工姓名,

(select 员工姓名 from 员工表 as b where a.部门领导编号=b.员工编号) as 领导姓名

from 员工表 as a

---------三种查询员工领导的方法

------如果里面总经理领导编号是这空的,这种查询方法不显示空值。如要显示,则用左连接

----------------------------------------------------------------------------- sp_tables -----------查当前数据库中的所有表

------------------------------------------------------------------------------ select * from 男公民

union ------------联合。自动升序排序,并去掉重复语句 select * from 女公民

-----查询结果是男公民和女公民表的总集。如果不去掉重复的,则用 union all -----如果要降序排,则要在最后一个select语句后面加上order by 列名 desc -----用union查询时,结果集内列数必须相同,并且数据类型必须相互兼容 -----多表联合查询加order by时,后面必须跟第一个结果集的列名 ------------------------------------------------------------------------------ select top 2 成绩 from 表

order by 成绩 desc ---------查前两种最好成绩

------------------------------------------------------------------------------- select top 2 with ties 成绩 from 表

order by 成绩 desc ---------查前两种最好成绩所有人的信息 ------------------------------------------------------------------------------- select top 1 a.成绩

from (select distinct top 3 成绩 from 表 order by 成绩 desc) as a order by 成绩 ---------嵌套查询,查考成绩第三名的值 ------------------------------------------------------------------------------- select max (SQL成绩),min (MCSE成绩) from 表 -----查SQL最高分和MCSE最低分

-----常用的函数:max(最大),min(最小),sum(总和),avg(平均值)

-----count(*)统计表内数据的行数。count(列名)统计表内列里非空值的行数 ------------------------------------------------------------------------------- select count(*) from 表名 --------查表内有多少行数据 -------------------------------------------------------------------------------

select count(列名) from 表名 ------------查表内列中有多少行非空数据 -------------------------------------------------------------------------------

select min(成绩),max(成绩),sum(成绩),avg(成绩),count(*),count(成绩) from 表名

--------返回显示数据只有一行。中间不能加列名,如想加,可以在后面加列。 ------------------------------------------------------------------------------- group by ---------分组统计,后面跟的是列名

---------上面select检索多少原始列,后面group by就要跟多少原始列

例: select 性别,avg(年龄) from 表名

group by 性别 -------统计性别的平均年龄

------------------------------------------------------------------------------- select 年龄,avg(年龄) from 表名 where 年龄<23

group by 年龄 -------查年龄小于23岁的各年龄段平均年龄 -------或也可用如下方法:

select 年龄,avg(年龄) from 表名 group by 年龄

having<23 -------having是统计之后的条件,where是统计之前的条件 --------having是做为group by的子句出现的,不能单独使用 ------------------------------------------------------------------------------ select 年龄,avg(年龄) from 表名 where 年龄<23

group by all 年龄 -------显示所有年龄,但只统计年龄小于23的,大于23的显示空值

------------------------------------------------------------------------------ select 品牌,颜色,sum(价格),avg(价格) from 汽车表 group by 品牌,颜色

with cube -------多维统计,按不同品牌不同颜色统计,也是group by的子句

--------其结果出现把各品牌统计一下,最后再统计所有品牌、所有颜色的总统计 ------------------------------------------------------------------------------ select 品牌,颜色,sum(价格),avg(价格) from 汽车表 group by 品牌,颜色

with rollup ------只按第一列统计,也是group by的子句 ---------即统计品牌各颜色和所有品牌所有颜色的总统计 ------------------------------------------------------------------------------ select 品牌,颜色,价格 from 汽车表

compute sum(价格),avg(价格) ----------出现两个结果集 ------------查原始列,另外统计所有的总和与平均值

------------------------------------------------------------------------------- select 品牌,sum(价格),avg(价格) from 汽车表

group by 品牌 ------只对汽车品牌进行统计。进行分组的列不一定用来统计

------------------------------------------------------------------------------ select 品牌,颜色,价格 from 汽车表 order by 品牌

compute sum(价格),avg(价格) by 品牌

--------按品牌分组统计。分别显示品牌各款,然后再显示函数计算值 ------------------------------------------------------------------------------

exists --------存在。相当于一个判断开关。说对了执行,说错了放弃

用法: select * form 表名

where exists (select * from 表名 where 性别='男')

------如果存在性别为男的,执行查询。如果不存在,则不执行命令。 -----------------------------------------------------------------------------

数据完整性:1.实体完整性----用unique(唯一)或主键控制,数据不能重复 2.值域完整性----用check控制。控制的是列中不能有非法数据 3.引用完整性----一列的取值完全依赖于前一列时,用这个。 4.用户自定义完整性

------------------------------------------------------------------------------ create table 表名

(列1 int primary key, --------设置列级主键,紧跟在设置列的后面。 列2 int)

------------------------------------------------------------------------------- create table 表名 (列1 int, 列2 int,

primary key (列1)) --------设置表级主键,放在建表语句的最后面。 ------------------------------------------------------------------------------- create table 表名

(列1 int constraint pk_表 primary key, 列2 int)

--------把列1设为主键,并且起名叫:pk_表。constraint是命名的命令


删除表中重复数据sql语句(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:山东省广饶经济开发区乐安中学2014-2015学年九年级下学期自主招

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: