--插入整行数据
insert into [dbo].[person] values('Hasaki', 35, '1983-08-29', 'A', 'A', 'A') --插入部分列数据
insert into [dbo].[person] (name, age, birth) values('Hasaki', 35, '1983-08-29') --删除行记录
delete from person where name = 'John' --更新数据库
update person set study = 'A' where name = 'Amy' --去除重复行
select distinct name from [dbo].[person] --TOP 选择前n条记录
select top 1 * from [dbo].[person] --TOP 选择前百分n条记录
select top 50 percent * from [dbo].[person] --LIKE 通配符'_'匹配一个任意字符
select * from [dbo].[person] where name like 'T_m' --LIKE 通配符'%'匹配0个或多个任意字符
select * from [dbo].[person] where name like '%Tom' --LIKE 通配符'[]'匹配括号里任一字符
select * from [dbo].[person] where name like '[TJA]%' --LIKE 通配符'[^]'匹配不在括号里的任一字符
select * from [dbo].[person] where name like '[^TJA]%'

连接

  连接操作是是通过笛卡尔积运算进行的。例如下面两个分别有三条记录的表student和course连接时,实际就是两两匹配,产生9条记录。

name age
Hasaki 14
Noki 16
Yummy 15
course name
chinese Hasaki
english Yummy
math Kilo

  

笛卡尔积结果为:

name age name course
Hasaki 14 Hasaki chinese
Hasaki 14 Yummy english
Hasaki 14 Kilo math
Noki 16 Hasaki chinese
Noki 16 Yummy english
Noki 16 Kilo math
Yummy 15 Hasaki chinese
Yummy 15 Yummy english
Yummy 15 Kilo math

  数据库的连接操作结果是笛卡尔积运算后经过筛选剩余的部分。

--内连接
select * from Course join person on person.name = course.name

  提取 course.name 和 person.name 相等的记录,结果:

name age name course
Hasaki 14 Hasaki chinese
Yummy 15 Yummy english
--左连接
select * from course left join person on person.name = course.name

  提取 course.name(左表) 和 person.name(右表) 相等的记录,而且对于左表的每一条记录,在结果数据集中最少出现一次。

对于左表中一条记录,如果在右表不存在匹配记录,那么结果集中右表部分的数据为NULL,结果:

name course name age
Hasaki chinese Hasaki 14
Yummy english Yummy 15
Kilo math NULL NULL
--右连接
select * from Course right join person on Course.pName = person.name

  情况和左连接相反,结果:

name course name age
Hasaki chinese Hasaki 14
Yummy english Yummy 15
NULL NULL Noki 16

    

--全连接
select * from Course full join person on Course.pName = person.name

  提取 course.name(左表) 和 person.name(右表) 相等的记录,而且对于左表、右表的每一条记录,在结果数据集中最少出现一次。对于左表中一条记录,如果在右表不存在匹配记录,那么结果集中右表部分的数据为NULL。对于右表中一条记录,如果在左表不存在匹配记录,那么结果集中左表部分的数据为NULL。结果:

name course name age
Hasaki chinese Hasaki 14
Yummy english Yummy 15
NULL NULL Noki 16
Kilo math NULL NULL

sql server数据库操作的更多相关文章

  1. 【转】sql server数据库操作大全——常用语句/技巧集锦/经典语句

    本文为累计整理,有点乱,凑合着看吧! ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ ☆ ☆ ☆ sql 宝 典 ☆ ☆ ☆ 2012年-8月 修订版 ☆ ...

  2. SQL server 数据库 操作及简单查询

    使用SQL Sever语言进行数据库的操作 常用关键字identity 自增长primary key 主键unique 唯一键not null 非空references 外键(引用) 在使用查询操作数 ...

  3. SQL SERVER 数据库操作脚本

    创建数据库 create Database MYDB on ( Name=mydb_dat, FileName='c:\data\mydate.mdf',size=10,maxsize=50 ) LO ...

  4. SQL Server 数据库操作类

    /// <summary> /// SQLServerHelper的摘要说明. /// </summary> public class SQLServerHelper { pu ...

  5. JDBC连接sql server数据库操作

    1.首先,先创建一个连接数据库的工具类: package gu.db.util; import java.sql.Connection; import java.sql.DriverManager; ...

  6. c# SQL Server数据库操作-数据适配器类:SqlDataAdapter

    SqlDataAdapter类主要在MSSQL与DataSet之间执行数据传输工具,本节将介绍如何使用SqlDataAdapter类来填充DataSet和MSSQL执行新增.修改..删除等操作. 功能 ...

  7. c# SQL Server数据库操作-管理命令参数的类:SqlParameter

    使用SqlCommand类来执行Transact-SQL语句或存储过程时,有时需要用参数传值或作为返回值,SqlParameter类正是为了此需要而设计的类.下面介绍如何使用该类为SqlCommand ...

  8. C#操作access和SQL server数据库代码实例

    在C#的学习中,操作数据库是比较常用的技术,而access和sql server 数据库的操作却有着不同.那么,有哪些不同呢? 首先,需要引用不同的类.因为有着不同的数据引擎. access:usin ...

  9. SQL Server数据库远程操作

    SQL Server数据库远程操作中,在使用openrowset/opendatasource前首先要启用Ad Hoc Distributed Queries服务,因为这个服务不安全所以SqlServ ...

随机推荐

  1. docker理念:不可变基础设施

    不可变基础设施 1.什么是Immutable Infrastructure Immutable Infrastructure,直译过来就是不可变基础设施. 它是由Chad Fowler于2013年提出 ...

  2. 转 LoadRunner 技巧之 IP欺骗 (推荐)

    IP欺骗也是也loadrunner自带的一个非常有用的功能. 需要使用ip欺骗的原因: 1.当某个IP的访问过于频繁,或者访问量过大是,服务器会拒绝访问请求,这时候通过IP欺骗可以增加访问频率和访问量 ...

  3. java后台如何获取String 类型 json里的字段值

    首先把获取到的数据转为json String sbody=Json.getGson().toJson(resp.getResponseBody()); Huanxin 这个类是 json数据对应字段的 ...

  4. disconf系列【1】——百度disconf在ubuntu14.04环境下的安装

    disconf官网给出的安装文档默认读者已经非常熟练本文1.2章节给出的依赖软件的原理及使用方法,且官网默认安装环境为linux(windows安装方法只字未提).同时,官网对很多重要的细节语焉不详, ...

  5. VUE 入门基础(3)

    三,模板语法 Vue将模板编译成虚拟DOM渲染函数,结合响应系统,在应用状态改变时,vue能够智能地计算出重新渲染组件的最小代价并DOM操作上. 插值,文本 数据绑定常见的形式就是使用"Mu ...

  6. SpringMVC学习笔记(四)

    一.Controller接受网页参数. 1.使用方法的形参来接受 //使用基本类型和字符串来接受 @RequestMapping(value="/param2.do") publi ...

  7. Res_Orders_01

    一.燃尽图展示 二.项目进展 1.讨论选题内容 2.确定项目的版本(Web版) 3.讨论能达到的效果和内容 4.确定编程方面的难点 5.开始制作大概的框架 三.遇到问题 1.不知道怎么部署能达到最好的 ...

  8. css3新属性

    CSS calc()函数来制作响应式网格: calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,你可以使用calc()给元素的border.margin.pading.fo ...

  9. delphi中midas是什么

    Delphi中MIDAS到底是什么呢?和他相关组件是什么呢?   MIDAS(Multitiered Distributed Application Services)多层分布式应用服务.   Del ...

  10. SQL优化 CREATE STATISTICS

    CREATE STATISTICS 语法: https://msdn.microsoft.com/zh-cn/library/ms188038.aspx STATISTICS优化中的使用案例: htt ...