`
yzz9i
  • 浏览: 217339 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

SQL Server 数据的简单操作个人笔记(二)

阅读更多

--日期函数

select getdate() as 当前时间

/*

年份

 yyyyyy

 

季度

 qqq

 

月份

 mmm

 

每年的某一日

 dyy

 

日期

 ddd

 

星期

 wkww

 

小时

 hh

 

分钟

 min

 

 sss

 

毫秒

 ms

 

 

 

*/

select dateadd(hh,2,getdate())

select datediff(yy,'1983-08-23',getdate())

--返回时间内容

--datename返回字符串

select datename(dw,getdate())

--datepart 返回整数

select datepart(dw,getdate())-1

 

--数学函数

select floor(78.9)

select ceiling(78.1)

select round(78.1,1)--注意下  后面的参数可以是正数/负数,正数表示小数点后(可以理解为有效数字的位数)    ,在前面就是看与的关系,大于前位加, 小于自身变

--系统函数

--convert  强制转换

select convert(int,34.1)

select convert(varchar(20),12334567)

--对时间的格式化(word文档)

select CONVERT(varchar(12) , getdate(), 111 )

--得到登陆的用户名

SELECT CURRENT_USER

select user_name(1)

SELECT SYSTEM_USER

 

--案例分析

 

create table card

(

  id int identity primary key, --建立表识列并设立主键

  password varchar(10) not null

 

)

insert into card values ('0oi1o1')

 select * from card

 

select replace(password,'o','0') from card

 

select replace(password,'i','1') from card

update card set password=replace(replace(password,'o','0'),'i','1')

 

--案例二

create table sellrecord

(

  id int identity primary key, --建立表识列并设立主键

  listnumber varchar(10) not null

 

)

 

insert into sellrecord values('106-18')

select * from sellrecord

select left(listnumber,2)as 前半部分from sellrecord

--找通式

select charindex('-',listnumber,1)-1 from sellrecord

 

select left(listnumber,charindex('-',listnumber,1)-1) as 前半部分from sellrecord

 

select stuff(listnumber,1,charindex('-',listnumber,1),'') from  sellrecord

 

select right(listnumber,2)as 后半部分 from sellrecord

--最后

select * from sellrecord order by convert(int, left(listnumber,charindex('-',listnumber,1)-1)),convert(int,stuff(listnumber,1,charindex('-',listnumber,1),''))

 

--模糊查询

--like

use StuDB

select * from Score

select * from Score where SName like '%'

select * from Score where SScore like '8[0-9]'

--between --and

select * from Score where SScore>80 and SScore<90

select * from Score where SScore between 80 and 90

select * from Score where SScore between 80 and 90

--in 表示在该范围内

select * from Score where SScore in (80,30)

select * from Score where SScore not in(80,30)

 

--is null  / is not null

 

--对学生成绩的调查

select * from Score

select sum(SScore) as 班级总分,

 avg(SScore) as 平均分,

 count(*) as 需要参考人数,

 count(SScore) as 参考人数,

 count(*)-count(SScore)  缺考人数,

  min(SScore) 最低分,

 max(SScore) 最高分

 from Score

 

--注意一点: null记录时候

delete Score where ID=9

 

…………………………………………………………………………………………………………………………

 

 

 

--查询分析器中执行:

--建表table1,table2

create table table1(id int,name varchar(10))

create table table2(id int,score int)

insert into table1 select 1,'lee'

insert into table1 select 2,'zhang'

insert into table1 select 4,'wang'

insert into table2 select 1,90

insert into table2 select 2,100

insert into table2 select 3,70

select * from table1;

select * from table2

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

 

 

--一、外连接

--1.概念:包括左向外联接、右向外联接或完整外部联接

 

--2.左连接:left join left outer join

--(1)左向外联接的结果集包括LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值(null)

--(2)sql语句

select * from table1 left join table2 on table1.id=table2.id

 

 

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

--注释:包含table1的所有子句,根据指定条件返回table2相应的字段,不符合的以null显示

 

--3.右连接:right join right outer join

--(1)右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。

--(2)sql语句

select * from table1 right join table2 on table1.id=table2.id

 

-------------结果-------------

 

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

--注释:包含table2的所有子句,根据指定条件返回table1相应的字段,不符合的以null显示

 

--4.完整外部联接:full join full outer join

--(1)完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

--(2)sql语句

select * from table1 full join table2 on table1.id=table2.id

 

 

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

--注释:返回左右连接的和(见上左、右连接)

 

--二、内连接

--1.概念:内联接是用比较运算符比较要联接列的值的联接

 

--2.内连接:join inner join

 

--3.sql语句

select * from table1 join table2 on table1.id=table2.id

select * from table1 join table2 on table1.id>table2.id

select * from table1 join table2 on table1.id!=table2.id

 

 

--注释:只返回符合条件的table1table2的列

 

--4.等价(与下列执行效果相同)

--A:

select a.*,b.* from table1 a,table2 b where a.id=b.id

--B:

select * from table1 cross join table2 where table1.id=table2.id  --(注:cross join后加条件只能用where,不能用on)

 

--三、交叉连接(完全)

xxd

--1.概念:没有WHERE 子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。(table1table2交叉连接产生*3=9条记录)

 

--2.交叉连接:cross join (不带条件where...)

 

--3.sql语句

select * from table1 cross join table2

 

<span sty

分享到:
评论
1 楼 love_rain_boy 2011-02-23  
[flash=200,200][/flash]

相关推荐

    SQLServer2005数据库学习笔记

    笔记是本人学习SQLServer一段时间后重新整理出来的,适合有一些入门基础的人学习。 ├─01 安装及使用 │ SQLServer2005安装及使用.txt │ ├─02 常用函数 │ function.sql │ ├─03 建表、建库 │ create.sql ...

    sql server资料收集,再也不求人 -数据库学习个人笔记

    数据库 SQL备份和还原 , 数据库资料, MS SQL SERVER数据库置疑后恢复步骤 MSSQL中如何用SQL清除所有表的数据,SQL优化,配置SQL内存,利用触发器实现标识列连续,清理过大的日志文件

    SQL server 2008 学习笔记

    SQL Server 2008 出现在微软数据平台愿景上是因为它使得公司可以运行他们最关键任务的 应用程序 同时降低了管理数据基础设施和发送观察和信息给所有用户的成本 这个平台有以下特点: 可信任的 使得公司可以...

    邹建大大笔记-sqlserver2000.rar

    邹建-中文版SQL Server2000开发与管理应用实例 一书的目录,可以对照一下 第 1 章 安装和配置SQL Server 1 1.1 SQL Server的版本和版本选择 1 1.2 安装SQL Server的常见问题 3 1.3 如何理解实例 5 ...

    SQL server2008学习笔记之SQL Server 2008安装教程.html

    数据库是按照数据结构来组织、存储和管理数据的仓库,它是计算机软件的组成部分。不管是网站开发、桌面软件还是手机应用开发,只要涉及数据的...T-SQL数据语言操作;视图、索引、存储过程;数据库的备份恢复等知识。

    SQL Server笔记 .zip

    SQL server专业术语 SQL Server 作为一个关系型数据库管理系统,涉及到一些专业...查询是指在 SQL Server 中检索和操作数据的命令。通过使用查询语言(如 SQL),可以从表中检索特定的数据行或执行更复杂的数据操作。

    SQL server 数据库笔记.zip

    SQL server专业术语 SQL Server 作为一个关系型数据库管理系统,涉及到一些专业...查询是指在 SQL Server 中检索和操作数据的命令。通过使用查询语言(如 SQL),可以从表中检索特定的数据行或执行更复杂的数据操作。

    笔记10_WinCC数据远程上传SQLServer.doc

    WinCC上的数据上传至远程服务器【SQLserver】全局脚本,可运行!此外,文档还包含必备SQLserver语句!

    《SQL Server 202x数据挖掘与商业智能完全解决方案》读书笔记模板.pptx

    《SQL Server 202x数据挖掘与商业智能完全解决方案》读书笔记模板.pptx

    SQL Server管理.rar

    1.SQL Server数据库管理 2.SQL Server表管理 3.SQL Server数据管理

    数据库管理系统SQL Server Management Studio (SSMS)学习笔记

    数据库管理系统SQL Server Management Studio (SSMS)学习笔记,适合刚学习数据的同学,从创建数据库到使用sql语句对数据表编辑,超详细。

    sqlserver数据库

    最为基础的sql笔记,只要你想学,你就能学会 1.真正的客户机/服务器体系结构。 2.图形化用户界面,使系统管理和数据库管理更加直观、简单。 3.丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地...

    SQL Server Table表定义导出工具

    支持所有SQLServer数据类型,一键导出。 由于时间有限,现只能实现字段和主键的导出, 外键及其他约束不能导出,需另行处理,请知悉。 导出效果: USE [MyTest] GO CREATE TABLE [dbo].[tbl_Vendor] ( [VendorID] ...

    SQL Server数据库笔记整理(一)

    关系型数据库是基于E-R模型(即实体-模型),使用SQL语言进行操作。 数据库分类:文档型数据库、服务型数据库(使用居多) (移动端即手机都是使用sqlite文档型数据库) 三范式:列不可拆分、唯一标识、引用主键 ...

    SQL Server从入门到精通(二)

    今天阿猪和大家正式进入SQL Server的第二次学习,所有的学习笔记阿猪都是跟着《大型数据库管理系统 技术、应用于实例分析》和结合(百度文库)总结归纳出来的,在今后的讲解中阿猪只使用SQL命令来编写,好的接下来...

    SQL Server数据库管理员(DBA)的工作内容

    在Microsoft SQL Server 2008系统中,数据库管理员(Database Administration,简称为DBA)是最重要的角色。DBA的工作目标就是确保Microsoft SQL Server 2008系统正常高效地运行。DBA的工作也是最繁忙的工作,无论是...

    sql server实现递归查询的方法示例

    有时候面对树结构的数据时需要进行递归查询,网上找了一番,参考了各位大神的文章,发现蛮简单的,当做个小笔记方便以后使用 sql server 通过CTE来支持递归查询,这对查询树形或层次结构的数据很有用 一般的树形表结构...

    常考SQL语句.pdf

    常用的SQL语句笔记,采用例题的形式进行增、删、改、查等基本操作,可用于参考去做数据库的课后习题,也可当作数据库课后练习来做

    SQL Server索引的原理深入解析

    SQL Server接触不久的朋友可以只看以下蓝色字体字,简单有用节省时间;如果是数据库基础不错的朋友,可以全看,欢迎探讨。 索引的概念 索引的用途:我们对数据查询及处理速度已成为衡量应用系统成败的标准,而采用...

Global site tag (gtag.js) - Google Analytics