--插入整行数据
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. git 源代码下载和安装(CentOS)

    1.阅读INSTALL文件 $ make configure ;# as yourself$ ./configure --prefix=/usr ;# as yourself$ make all do ...

  2. linux查看负载

    LINUX下查看负载 1,查看磁盘 df -h 2,查看内存大小 free free [-m|g]按MB,GB显示内存 vmstat 3,查看cpu cat /proc/cpuinfo 只看cpu数量 ...

  3. Linux:安装rstatd,报错

    [安装] 下载地址:http://heanet.dl.sourceforge.net/sourceforge/rstatd/安装:一次执行--tar -xzvf rpc.rstatd-4.0.1.ta ...

  4. OpenLayers Map理解

    1,视口坐标的原点在左上角,水平向右为x轴正向,垂直向下为y 轴正向:2,地图坐标原点为初始图层的中心点,水平向右为x轴正向,垂直向上为y轴正向:3,视口中心点永远与地图中心点重合,不一定与瓦片中心点 ...

  5. Windows 2008 R2 安装 Windows phone 7 开发环境

    安装环境:1.Windows server 2008 R22.Visual Studio 2010 SP1 旗舰版 1.下载 WP7 SDK 离线安装包.(话说要选择与 VS2010 相同语言的版本) ...

  6. JS循环往table中写入行

    < script > $(function() { $('#test').click(function() { $.ajax({ url: '__APP__/Article/jsonTes ...

  7. 会话状态已创建一个会话 ID,但由于响应已被应用程序刷新而无法保存它

    解决方法是新建 全局应用程序类 Global.asax 在 Session_Start 函数中 添加 string sessionId = Session.SessionID; protected v ...

  8. java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 错误的解决办法

    java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 错误的解决办法 (2011-05-05 16:08:05) 转载▼ ...

  9. springboot 使用c3p0数据库连接池的方法

    使用springboot开发时,默认使用内置的tomcat数据库连接池,经常碰到这种情况:运行时间一长,数据库连接中断了.所以使用c3p0连接池吧. 引入的maven依赖: <dependenc ...

  10. poi API

    一. POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 二. HSSF概况 HSSF 是 ...