`
yzz9i
  • 浏览: 221505 次
  • 性别: 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]

相关推荐

    SQL Server精华 (CHM)_sqlserver_SQLServer笔记_

    《SQL Server精华 (CHM)_sqlserver_SQLServer笔记_》是一部综合性的SQL Server学习资源,旨在帮助用户深入理解和掌握Microsoft SQL Server数据库管理系统的核心概念、功能和最佳实践。这部笔记涵盖了一系列关键知识...

    sqlserver数据库操作笔记

    #### 二、SQL Server 基本操作 **1. 创建数据库:** ```sql CREATE DATABASE mydatabase; ``` - **数据文件:** - 名称: `name='mydatabase_mdf'` - 路径: `filename='e:\test\mydatabase.mdf'` - 初始化大小: `...

    SQLServer2005数据库学习笔记

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

    sqlserver个人学习笔记

    ### SQLServer个人学习笔记知识点概览 #### 一、日期格式转换:`SELECT REPLACE(CONVERT(CHAR(8),GETDATE(),120),'-','')` - **知识点**:使用`CONVERT`函数将当前系统时间`GETDATE()`转换为指定格式的字符串,并...

    SQLServer 2012性能学习笔记

    ### SQL Server 2012 性能学习笔记 #### SQL Server 2012 新特性及简介 SQL Server 2012 是微软推出的一个重要版本,它引入了许多新特性和改进,旨在提高数据库系统的可用性、安全性、可管理性以及性能。以下是几...

    SQL server-2017-学习笔记.docx

    在SQL Server 2017的学习中,我们首先需要了解SQL Server的基础操作,这包括了基本的增删改查操作,比如INSERT、DELETE、UPDATE和SELECT。这些是数据库管理中最常用的操作,用于处理数据的存取和修改。 接着,我们...

    sql server 2008笔记

    SQL Server 2008是微软推出的一款关系型数据库管理系统,具有强大的数据处理能力和稳定性。在维护和优化SQL Server 2008时,我们需要注意以下几个关键知识点: 1. **RAID配置**: - RAID10:提供高读写速度和数据...

    sqlserver数据库笔记

    本文档详细介绍了如何使用 SQL Server 2008 进行数据库的基本操作,包括创建、修改数据库以及数据文件的相关管理。这些知识对于初学者来说非常重要,可以帮助他们快速掌握 SQL Server 的基本使用方法,并能够进行...

    sql server语法笔记整理

    本笔记主要针对SQL Server的语法进行整理,旨在帮助初学者快速掌握基础概念和常用操作。 一、SQL简介 SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言。在SQL Server中,你可以创建、更新、...

    SQL_Server学习笔记

    基本查询涉及简单的查询语句和使用WHERE子句进行条件查询,包括使用LIKE操作符进行模糊查询、使用IN关键字查询指定值范围内的数据、使用ISNULL函数处理空值、使用逻辑操作符处理多条件查询以及使用ORDER BY子句对...

    sqlserver优化笔记

    ### SQL Server 优化知识点 #### 一、SQL性能优化技巧 **1.1 查询的模糊匹配** - **问题描述**:使用 `LIKE '%parm1%'` 的查询方式会导致索引失效,降低查询效率。 - **解决方案**: - **前端改进**:改变用户...

    SQL Server 学习笔记

    在本文中,我们将深入探讨SQL Server的学习笔记,涵盖其体系结构、数据库类型特点、OLTP与OLAP的区别,以及一些关键的管理工具。 首先,让我们了解Microsoft SQL Server 2008系统的体系结构。这个系统由四个主要...

    SqlServer初学者学习笔记

    4. 数据类型:Sql Server提供多种数据类型,如数值类型(INT、DECIMAL等)、字符串类型(VARCHAR、NVARCHAR)、日期时间类型(DATE、DATETIME2等)、二进制类型(BINARY、VARBINARY)等。选择合适的数据类型对于存储...

    Oracle SQLServer数据库 学习笔记

    Oracle和SQL Server是两大主流的关系型数据库管理系统,广泛应用于企业级的数据存储和处理。这篇学习笔记将深入探讨这两个系统的概念、特性和应用。 一、Oracle数据库系统 Oracle数据库是由甲骨文公司开发的一款...

    sql server 帮助文档官方版

    SQL Server 提供了数据虚拟化功能,可以将关系数据、HDFS 数据、CSV 数据等虚拟化为关系数据。此外,SQL Server 还提供了机器学习服务,用户可以使用 Python、R 语言等来开发机器学习模型。 监视和优化 SQL Server...

    郝斌SqlServer笔记.pdf

    郝斌的SqlServer笔记是一个关于SqlServer的学习笔记,涵盖了SqlServer的基本概念、数据库管理、用户权限管理、表设计、主键和外键的设置、数据录入、查询执行等多个方面的知识点。 一、数据库管理 * 创建数据库:...

    郝斌Sqlserver2005学习笔记

    【郝斌Sqlserver2005学习笔记】涵盖了SQL Server 2005数据库系统的基础知识,特别是关于数据查询和关系数据库设计的部分。这个笔记基于郝斌老师的教学视频,旨在帮助学习者理解并掌握SQL Server 2005的核心概念。 ...

    Microsoft SQL Server 2008技术内幕笔记

    【Microsoft SQL Server 2008 技术内幕笔记】主要涵盖了T-SQL查询的执行顺序和语言基础,包括逻辑查询处理的各个阶段以及关系模型的基础概念。 在T-SQL查询中,逻辑查询处理分为以下几个阶段: 1. **From阶段**: ...

    sql server笔记

    SQL Server支持标准的SQL语法,如SELECT语句用于查询,JOIN操作用于连接多个表,GROUP BY和HAVING用于数据分组和过滤。 5. **索引**:索引用于提高数据检索速度。SQL Server支持不同类型的索引,如B树索引(主键和...

    SQL SERVER学习笔记

    根据提供的文件内容,我们可以整理出一系列关于SQL Server的基础知识点,主要涵盖了数据库的创建与删除、表的创建与修改、数据的插入与更新、以及查询语句等关键操作。下面将详细解析这些知识点。 ### 1. 数据库的...

Global site tag (gtag.js) - Google Analytics