大部分数据库都需要数据库服务器才能运行。

Catalog(分类)又叫做数据库DataBase

Table(表)不同类型的东西放到不同的区域中,将这种区域叫做表。

列(Column)字段Field

主键是数据航的唯一标识,不会重复的列才能当主键

主键有两种选择策略:业务主键和逻辑主键

业务主键,就是有业务意义,比如身份证号码、银行账号等

逻辑主键没有任何意义的主键,逻辑主键是完全给程序看的,业务人员是不会看的,一般业界使用逻辑主键。

表间的关联

通过外键指向另一表的主键

SQL语句中的字符串用单引号‘’。

SQL语句中对大小写是不敏感的。值得注意的是,不敏感的是SQL的关键字,而字符串的值还是敏感的。

向表中插入一条记录

Insert into T_Person(Name,Age) values(‘李宏’,15)

SQL语言主要分DDL(数据定义语言) DML(数据操作语言)

主键的选择

SQL Sever 中两种常用的主键数据类型,int(bigint)+标识列(又称自动增长字段)

Uniqueidetifer又称GUID,UUID

一般主键名用ID、id

一个表只能有一个标识列

VS2008中,有GUID生成器,每次调用都不会重复,永远都不会重复。

网卡mac 、地址、 纳秒级时间、芯片ID 码

MS SQL Sever 中调用newID();

C#中,Guid id = Guid.new Guid();

数据更新(update)

更新一个列 update T_person set age = 30

更新多个列 update T_Person set age = 30 ,Name = ‘Tom’

本身进行计算 update T_Person set age = age +1

Update T_Person set Name = ‘Lily’where age>=30

若是中文在前面加N’李思’

SQL 语句中,等于判断=

不等于<>

And

Or

Not

数据的删除

删除全部 Delete From T_Persom 只是删除数据表还在

Drop Table T_Person  毁了

Delete  Table T_Person  where age >30

创建数据表

Create Table T_Person (Name char(10),Age int )

数据的检索

Select *from T_Person

Select Name from T_Person

Select Name,Age from T_Person

Select Name,Age from T_Person where Age >35

Select Name as 别名1,Age as别名2  from T_Person where age >30

Select可以查询与表无关的数据

Select newid()

Select 1+3

Select  getdate()

Select @@version

Select 1+11 as 数据,getdate()as 日期

Select Max(Age) from T_Person

数据汇总

Select Count(*) from T_Person

Max Min  Avg Sum Count 数量

排序

Select *from T_Person

Order by Age ASC(升序)/DESC(降序)

通配符

Like

单字通配符 _ 英文下划线

多字通配符 % 半角 任意个数

Where Name Like ‘_ily’

Where Name Like ‘n%’

空值处理

Null 数据库中,NULL表示不知道

C#中,NULL不指向任何的对象

Select Name,Age from T_Person where Name is NULL

IN (在什么范围内,具体的值)

Selsect *from T_Person where Age in(13,15)

等价于 where Age = 13 or Age = 15

嵌套的查询

Select top 3 * from  T_Employee

Where Fnumber Not in

( select top 5  Fnumber from T_Employee

Order by Fsalary DESC)

Order by Fsalary DESC

数据分组(group by)

必须放在where之后,而且聚合函数不能出现在where子句中。聚合函数位于Having语句中或选择列表所包含的子查询中,并且要对其进行聚合的列是外部引用。Where是对原始数据进行过滤的,Having无法替代where ,Having 是对分组后的信息的过滤,能用的列和Select中能用的列相同。

限制结果集的行数

Select top 3 *from T_Person

Order by Age ASC

去掉重复数据

Select distinct Name ,Age from T_Person(消除完全重复的行)

Select distinct Name ,Age from T_Person

Union (all)

Select distinct Name ,Age from T_Person

Union 把重复的数据合并,

而Union all 会有重复行

数字函数

ABS()求绝对值

CEILING()舍入到最大整数

Floor() 舍入到最小整数

Round(,)四舍五入

字符串函数

Len()计算字符串长度

Lower() Upper()大小写替换

Ltrim() Rtrim() 左右去空格

SubString (string,start-position,Length)取子字符串

日期函数

Getdate() 取得当前日期

DateADD(datePart,number,date) 在向指定日期加上一段时间的基础上,返回新的 datetime 值

DateADD(datePart,2,‘2008-12-8’)

DateDIIF(datepart,startdsate,enddate)计算两个日期的差额

DatePart(datepart,date) 返回代表指定日期的指定日期部分的整数。

DatePart(month,’2008-12-8’)

类型转换函数

CAST(expression as datetype)

Convert(datetype,expression)

空值处理

Isnull(Name,’佚名’)

Case函数的用法

Case i

When 1 then ‘a’

When 2 then ’b’

….

Else  default retrun value

End

索引(index)

经常进行查询的字段添加索引

值得注意的是,即使创建了索引,仍有可能全表扫描,比如Like等。

子查询

1) 将一个查询语句作为结果集供其他SQL语句使用

2) 单值作为子查询,注意只有返回且仅返回一行一列数据的子查询才能当成单值子查询。

3) 多行单列的子查询。

数据库开发及ADO.NET的更多相关文章

  1. 第20课-数据库开发及ado.net 可空值类型,资料管理器,多条件查询,Case

    第20课-数据库开发及ado.net 可空值类型,资料管理器,多条件查询,Case SqlHelper using System; using System.Collections.Generic; ...

  2. 第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获得连接字符串

    第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获 ...

  3. 第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据

    第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据 ADO.NET 为什么要学习? 我们要搭建一个平台(Web/Winform ...

  4. 第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all; Select 列 into 新表;字符串函数;日期函数

    第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all;  ...

  5. 第16课-数据库开发及ado.net-数据库SQl,创建数据库和表,增删改语句,约束,top和Distinct,聚合函数介绍

    第16课-数据库开发及ado.net 数据库SQl,创建数据库和表,增删改语句,约束,top和Distinct,聚合函数介绍 SQL语句入门(脚本.命令) SQL全名是结构化查询语言(Structur ...

  6. 第15课-数据库开发及ado.net-数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库

    第15课-数据库开发及ado.net 数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库 1.  学习方法 2.  多涨见识 3.  比自己强的人一起,学习更强:比自己更聪明的人 ...

  7. SQL从入门到基础 - 01 数据库开发及ADO.Net

    一.数据库概述 1. 用自定义文件格式保存数据的劣势:并发性差,查找数据的速度差. 2. DBMS(DataBase Management System数据库管理系统)和数据库.平时谈到“数据库”的含 ...

  8. .NET基础拾遗(6)ADO.NET与数据库开发基础

    Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开发基 ...

  9. 摘:VC开发数据库基础之ADO篇

    一.ADO简介ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,请不必为此担心,即使你对OLE DB,COM ...

随机推荐

  1. PHP截断函数mb_substr()详细介绍

    [导读] 在php中mb_substr()函数是用来截中文与英文的函数,可以方便快速的解决截取指定字符长度的问题,下面我来给大家介绍介绍.提示:mb_substr在于php中是默认不被支持的我们需要在 ...

  2. Linux 日志服务器 rsyslog

    预先需要httpd.php.mysql,yum方式安装.创建数据库: yum install rsyslog rsyslog-mysql cd /usr/share/doc/rsyslog-mysql ...

  3. zhuang 定制iOS 7中的导航栏和状态栏

    近期,跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7.最新的iOS 7外观上有大量的改动.从开发者的角度来看,导航栏和状态栏就发生了明显的变化.状态栏现在是半透明的了,这也就意味着导航栏 ...

  4. windows 装 Crypto.Cipher

    python 2.7 先去官网下载,https://www.dlitz.net/software/pycrypto/ 回来装这个,http://download.csdn.net/download/d ...

  5. django(五)

    URLs 当一个用户请求一个页面时,Django将按照顺序去匹配每一个模式,并停在第一个匹配请求的URL上. 如果你的url多个正则表达式都能匹配上咋弄?小心出错,这个是按照顺序匹配的 url(r'^ ...

  6. 洛谷P3372 【模板】线段树 1

    P3372 [模板]线段树 1 153通过 525提交 题目提供者HansBug 标签 难度普及+/提高 提交  讨论  题解 最新讨论 [模板]线段树1(AAAAAAAAA- [模板]线段树1 洛谷 ...

  7. WM_CLOSE WM_DESTROY WM_QUIT的区别

    WM_CLOSE:关闭应用程序窗口 WM_DESTROY:关闭应用程序 WM_QUIT:关闭消息循环

  8. Analyze network packet files very carefully

    As a professional forensic guy, you can not be too careful to anlyze the evidence. Especially when t ...

  9. NHibernate系列文章十八:NHibernate关系之一对多(附程序下载)

    摘要 这篇文章介绍NHibernate最实用的内容:关系映射. NHibernate的关系映射方式有三种: Set:无序对象集合,集合中每一个元素不能重复. List:有序对象集合,集合中的元素可以重 ...

  10. java GZIP压缩和解压

    最近碰到了一个按GZIP解压指定的输入流数据,备份下 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream ...