数据库开发及ADO.NET
大部分数据库都需要数据库服务器才能运行。
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的更多相关文章
- 第20课-数据库开发及ado.net 可空值类型,资料管理器,多条件查询,Case
第20课-数据库开发及ado.net 可空值类型,资料管理器,多条件查询,Case SqlHelper using System; using System.Collections.Generic; ...
- 第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获得连接字符串
第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获 ...
- 第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据
第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据 ADO.NET 为什么要学习? 我们要搭建一个平台(Web/Winform ...
- 第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; ...
- 第16课-数据库开发及ado.net-数据库SQl,创建数据库和表,增删改语句,约束,top和Distinct,聚合函数介绍
第16课-数据库开发及ado.net 数据库SQl,创建数据库和表,增删改语句,约束,top和Distinct,聚合函数介绍 SQL语句入门(脚本.命令) SQL全名是结构化查询语言(Structur ...
- 第15课-数据库开发及ado.net-数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库
第15课-数据库开发及ado.net 数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库 1. 学习方法 2. 多涨见识 3. 比自己强的人一起,学习更强:比自己更聪明的人 ...
- SQL从入门到基础 - 01 数据库开发及ADO.Net
一.数据库概述 1. 用自定义文件格式保存数据的劣势:并发性差,查找数据的速度差. 2. DBMS(DataBase Management System数据库管理系统)和数据库.平时谈到“数据库”的含 ...
- .NET基础拾遗(6)ADO.NET与数据库开发基础
Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开发基 ...
- 摘:VC开发数据库基础之ADO篇
一.ADO简介ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,请不必为此担心,即使你对OLE DB,COM ...
随机推荐
- 全面了解 Linux 服务器 - 4. 查看 Linux 系统的平均负载
可使用 uptime.top.w 命令来查看. 以 uptime 命令为例: liuqian@ubuntu:~$ uptime 17:31:26 up 7:27, 2 users, load aver ...
- Oracle时间戳 与时间之间的相互转换
Unix时间戳记是从'1970-01-01 00:00:00'GMT开始的秒数,表现为整数型. Oracle中的时间是Date型,以下函数提供了两种时间转换的Oracle函数 (1)从Unix时间戳记 ...
- 引用google的jQuery文件
1. 很多网站都是使用这种方式引入,客户的浏览器可能已经缓存过了 jquery.可以直接调用本地的,速度更快… 2. Google code 使用了 cdn 技术在很多地方有节点服务器,加载 jque ...
- EBS密码安全的几个参数
PROFILE Name 1.Signon Password Failure Limit 输入错误次数限制,一旦被锁定需要系统管理员重置解锁 除了后台表系统中没有的地方可以体现被锁定的现象 此功能使用 ...
- java后台异步任务执行器TaskManager
java后台异步任务执行器TaskManager 此方式基于MVC方式: 一,使用任务: @Resource private TaskManager taskManager; public strin ...
- openldap权限sudo
http://pig.made-it.com/ldap-sudoers.html https://www.lisenet.com/2015/convert-openldap-schema-to-ldi ...
- 【EF学习笔记09】----------使用 EntityState 枚举标记实体状态,实现增删改查
讲解之前,先来看一下我们的数据库结构:班级表 学生表 如上图,实体状态由EntityState枚举定义:Detached(未跟踪).Unchanged(未改变).Added(已添加).Deleted( ...
- JAVA的Random类[转]
在实际的项目开发过程中,经常需要产生一些随机数值,例如网站登录中的校验数字等,或者需要以一定的几率实现某种效果,例如游戏程序中的物品掉落等. 在Java API中,在java.util包中专门提供了一 ...
- 基于tcp/udp的协议
使用TCP协议的常见端口主要有以下几种: (1) FTP:定义了文件传输协议,使用21端口.常说某某计算机开了FTP服务便是启动了文件传输服务.下载文件,上传主页,都要用到FTP服务. (2) Tel ...
- IIS中使用LocalDB遇到错误:error 50,Local Database Runtime error occurred.的解决办法
参见: [1] http://www.cnblogs.com/yjmyzz/archive/2009/10/26/1590033.html [2] http://blogs.msdn.com/b/sq ...