笔记


笔记

认识c#关键词... 4

namespace关键词... 4

using关键词... 4

class关键词... 4

main()方法... 4

关键代码:... 4

C#中的变量和常量... 4

c#中的常用数据类型... 4

C#中的变量... 5

C#中的常量... 5

Console类... 5

C#向控制台输出... 5

”c#从控制台读入... 5

转换类型... 5

类和对象... 6

自定义方法... 6

命名规范... 6

理解类和对象... 6

注释... 6

Visual studio调试技巧... 7

总结... 7

第二章c#语法快速热身... 7

选择结构... 7

多种if8

Switch结构... 9

数组与循环... 9

一维数组... 9

循环... 9

跳转语句:... 10

冒泡排序... 10

总结... 10

第三章使用属性升级mybank. 11

Privare访问修饰符... 11

访问修饰符... 11

This关键词... 11

C#属性... 11

用方法保证数据安全... 11

用属性实现字段封装... 11

值传递和引用传递... 12

比较值传递和引用传递... 12

总结... 12

第四章深入c#的string类... 12

C#中的string类... 12

常用的字符串处理方法... 12

Format格式化... 15

类型转换... 15

简单的类型转换... 15

数值类型与字符串之间的转换... 15

使用Convent类进行转换... 16

总结... 16

第六章数据库... 16

数据库的基本概念... 16

数据库和数据库表... 16

数据库管理系统和数据库系统... 16

数据完整性... 17

登录SQLserver数据库... 17

新建一个数据库连接... 17

新建数据库登录名... 17

创建和管理SQL Server 数据库... 18

创建数据库... 18

数据库的管理和维护... 18

删除数据库... 19

总结... 19

第7章用表组织数据... 20

表相关的几个基本概念... 20

数据完整性... 20

主键和外键... 20

创建数据表... 21

数据类型... 21

完善表的设计结构... 25

向表中插入数据... 25

建立表间关系... 25

删除数据库表... 25

总结... 26

第8章SQL语句操作数据... 26

SQL中的运算符... 26

使用T-sql插入数据... 27

使用insert插入数据... 27

一行插入多行数据... 28

使用T-SQL删除数据... 28

使用DELETE删除数据... 28

使用TRUNCAE TABLE 删除数据... 29

导入和导出数据... 29

导出数据... 29

导入数据... 29

总结... 29

第9章 数据查询基础... 30

T-SQL查询基础... 30

使用SELECT 语句进行查询... 30

SQL Aggregate 函数... 30

字符串函数... 31

日期函数... 31

数学函数... 31

系统函数... 32

总结... 32

第10章 模糊查询和聚合函数... 32

模糊查询... 32

使用LIKE进行模糊查询... 33

使用BETWEEN 在某个范围内进行查询... 33

使用IN在列举值内进行查询... 33

T-SQL中的聚合函数... 33

SUM()函数... 33

AVG()函数... 33

MAX()函数和MIN()函数... 33

COUNT()函数... 33

总结... 33

第11章 连接查询和分组查询... 34

分组查询... 34

使用GROUP BY 进行分组查询... 34

多列分组查询... 34

使用HAVING子句进行分组筛选... 34

多表连接查询... 34

多表连接查询的分类... 34

内连接查询... 34

外连接查询... 35

左外连接查询... 35

右外连接查询... 35

总结... 35

 

第一章

认识c#关键词

namespace关键词

namespace(命名空间)

using关键词

它的作用跟Java中的import类似

class关键词

c#与Java不同,不要求类名与文件名源文件的名称一样

main()方法

它可以有没名命令行参数,因此有四种形式

1.     Static void main(string [] args ){ }

2.     Static int  main(string [] args){  }

3.     Static void main{ }

4.     Static int  main{  }

关键代码:“

Console.WriteLine (“helloWord”)

Console.ReadLine();

C#中的变量和常量

c#中的常用数据类型

整型:int

浮点型:  float

双精度型:double、

字符串型: stirng

布尔型: Boolean

C#中的变量

C#中的变量声明与java一样是相同。使用下面呢的所介绍的方式

语法:

数据类型  变量名称:、

C#中的常量

Conts 数据类型变量明名称=值

Public const int daymax =7

1常量名称必须具有一定的实际意义

2.常量名称最好是一大写字母来命名,中间根据意义的链接性用下划线连接,每个常定义的右侧最好有简单的注释,说明其作用

3.常量名称 长度最好不要25个字符,否则可读性差

 

Console类

C#向控制台输出

语法:

方式一

Console.WriteLine ()

方式二

 Console.WriteLine(“输出的值”)

方式三

Console.WriteLine (‘变量列表’)

”c#从控制台读入

语法:

Console.ReadLine();

转换类型

语法:int.Parse();方法方法

类和对象

自定义方法

【 访问修饰符 】返回值类型 方法名 (参数列表)

{

//方法的主体

}

1.     访问修饰符

2.     方法的返回值类型

3.     方法名

4.     参数列表

5.     方法的主体

命名规范

1方法名要有实际的含义,最好使用动宾短语,表示能完成什么任务。

2.方法名一般使用Pascal命名法,就是组成方法名的单词直接相连,每个单词的首字母大写,

理解类和对象

类是创建对象的模板,对象是类的一个具体事例,这就是累和对象之间的关系

语法:

【 访问修饰符】class 类名

{

//类的主体

}

注释

语法:#region

 

 

       #endregion

一个开头一个结尾

命名规范:

1.     类名前应使用文档注释,说明类的简单功能和使用方法

2.     方法前应使用注释,说明方法的功能,参数的含义,返回值等等

3.     关键性的语句要使用注释,如,变量声明,条件判断,循环

Visual studio调试技巧

1.     设置断点(断点:breakpoint)

F5:开始调试

Shift+F5:停止调试

F9:设置或取消断点

Ctrl+F9:取消断点

F1’0:单步执行

F2:转到所调试用过的过程或变量的定义

Ctrl+F2:将焦点转移到类的下拉列表框

2.     监视变量值

方法一

选中并右键需要关注的变量

方法二

在监视1窗口中单击名称下的空白单元格,输入‘某某’按enter键

总结

1.     使用visual studio创建和运用c#控制台应用程序步骤如下:

   启动visual studio2012

              新建项目

              生成可执行文件

              开始运行

2.     C#采用命名空间组织程序,引入其他空间因using关键字

3.     C#‘中使用控制台类Console 的ReadLIine()和WriteLine()’方法输入和输出

4.     C#中的main()方法的手指母大写,根据返回值和参数不同main(方法有四种形式

5.     C#中布尔类使用bool关键字

6.     C#中使用const关键字声明常量

7.     C#中有三种注释类型,

8.     类是对象的模板,对象是类的一个具体事例

第二章c#语法快速热身

选择结构

语法

Iif(表达式)

{

//代码块

}

 

语法:

If(表达式)

{

//代码块

}else

{

//代码块

}

 

 

语法“”:“

 

If(表达式)

{

//代码块

}else if(表达式)

{

//代码块

}else if(表达式)

{

}else

{

}

多种if

If(表达式)

{

If(表达式)

{

//代码块

}else

{

//代码块

}

//代码块

}else

{

//代码块

}

 

 

Switch结构

Switch(表达式)

{

Case 常量表达式1:

Break;         //必须有

Case 常量表达式2:

Break;//必须有

Case 常量表达式3:

Break;//必须有

Default

//语句:

}

数组与循环

一维数组

语法:

数据类型【】数组名

数据类型  数组名【】;

语法:

数据类型【】 数组名;

语法:

数组名。Length

语法:

数组名【下标】

循环

1.     While循环

While(条件表达式)

{

//代码块

}

2.     do-while循环

语法:、

Do

{

//代码块

}while(条件表达试);

3.     for循环

语法:

For(表达式1 ,表达式2,表达式3)

{

//代码块

}

4.     foreach循环

语法

Foreach(元素类型 元素变量名   in 数组)

{

//代码块

}

跳转语句:

1.     break 语句                   停止

2.     continue语句               跳出循环继续执行

冒泡排序

冒泡排序算法

冒泡排序速记口诀

1.     N个数字来排队

2.     外层循环N-1,内层循环N-1-i

3.     如果要降序排序,只要把程序中的大于号换成小于号就行了

总结

1.     C#一维数组的声明和初始化于java有点不同,声明时不能将数组名放在数据类型和方括号之间

2.     C#中有四种循环结构:whiel ,do-while,for,foreach,其中foreach用来遍历数组中的每个元素

3.     二重元循环就是在一个循环中嵌套另一个循环,必须将内层循环完整第包含在外层循环的循环体内

4.     Brak与continue语句用在内层循环时,只对内层循环的执行有影响,并不影响外层循环

5.     使用二层循环可以实现冒泡排序算法,排序的过程是比较相邻的两个数并交换,直到所有的数都比较过并拍好顺序

第三章使用属性升级mybank

Privare访问修饰符

访问修饰符

Public  不受限制   最高

Private  只有类的内部可以使用            最低

This关键词

使用this关键字可以解决成员变量和局部变量名称冲突的问题

C#属性

用方法保证数据安全

用属性实现字段封装

1.     c#的属性

语法:

Private string _name;

Public string Name

{

Get { return _name;}

Set{ _name = value; }

}

2.     属性的数据类型

定义类中的一个属性是。属性的数据类型必须与它所访问的字段类型一支

3.     属性的访问类型

只读属性,只包含get’访问器

只写属性,只包含set’访问器

读写属性,包含get和set访问器

4.     在编码中快速第创建属性

5.     对象初始化器

值传递和引用传递

比较值传递和引用传递

 

值传递是将变量的值复制一份传递给方法,使得该方法的形参和实 的值相同,在调用的方法中修改形参也只是对实参复制品的数据做更新,并没有真正改变实参的值

 

 

引用传递是将要传递的对象引用复制给方法的形参,使得被调用的方法直接引用对象进行更改,会影响实参原来的值

 

总结

1.     public 访问修饰符的成员可以被其他的类访问,private 访问修饰符的成员只能在本类被访问

2.     this 关键词代表的是当前的对象,在类的内部,可以用this关键字访问它的成员

3.     c#属性可以利用get 访问器获得字段的值,利用set访问奇艺设置字段的值,在访问器中可以数据进行约束

4.     封装是将数据和操作方法保存在一起的技术,或者是有选择第隐藏或功能开类的属性和方法的过程、

5.     方法的属性传递有两中方式

6.     Ref关键字修饰的参数可以将调用方法的餐宿的更新值传递给调用者

第四章深入c#的string类

C#中的string类

常用的字符串处理方法

、1.字符串比较
字符串.ComparTo(目标字符串)
"a".ComparTo("b");
2.查找子串
字符串.IndexOf(子串,查找其实位置) ;
字符串.LastIndexOf(子串) ;最后一次出现的位置
str.IndexOf("ab",0);
3.插入子串
字符串.Insert(插入位置,插入子串) ;
s.Insert(2,"ab");
4.移出子串
字符串.Remove(其实位置,移出数);
s.Remove(3,2);
5.替换子串
字符串.Replace(源子串,替换为);
s.Replace("-"," ");将-替换为空格
6.截取子串
字符串.Substring(截取其实位置,截取个数);
"abcdef".Substring(2,3);结果为cde
7.去空格
myString = myString.Trim(); //同时删除字符串前后的空格
char[] trimChars = {' ','e','s'}; //准备删除的字符
myString = myString.Trim(trimChars); //删除所有指定字符
myString = myString.TrimEnd(); //删除字符串后的空格
myString = myString.TrimStart(); //删除字符串前的空格
8.转换大小写
str.ToLower()转化成小写字母
str.ToUpper()转化成大写字母
Char.IsUpper(str,3)//判断一个字符串中的第n个字符是否是大写
9.拆分字符串
string[] Strs = myString.Split(' ',3); //按照空格进行拆分,并且返回前三个字符串,结果在字符串数组里
10.使字串达到指定长度
PadLeft()、PadRight() ,如:
string str1="00";
str1=str1.PadLeft(3,'1'); //无第二参数为加空格,结果为“100”
11.得到字符串长度
len=str.Length;
12.字符串遍历
string myString = "This is a test!";
foreach (char myChar in myString)
{
Console.Write("{0}",myChar);

----------------------------------------------------------------------------------------

.net中几个经常用到的字符串的截取

string str="123abc456";
int i=3;
1 取字符串的前i个字符
   str=str.Substring(0,i); //or  str=str.Remove(i,str.Length-i); 
2 去掉字符串的前i个字符:
   str=str.Remove(0,i);  // orstr=str.Substring(i); 
3 从右边开始取i个字符:
  str=str.Substring(str.Length-i); // orstr=str.Remove(0,str.Length-i);
4 从右边开始去掉i个字符:
   str=str.Substring(0,str.Length-i); // orstr=str.Remove(str.Length-i,i);
5 判断字符串中是否有"abc" 有则去掉之
   using System.Text.RegularExpressions;
   string str = "123abc456";
   string a="abc";
   Regex r = new  Regex(a); 
   Match m = r.Match(str); 
   if (m.Success)
   {
    //绿色部分与紫色部分取一种即可。
      str=str.Replace(a,"");
      Response.Write(str);   
      string str1,str2;
      str1=str.Substring(0,m.Index);
      str2=str.Substring(m.Index+a.Length,str.Length-a.Length-m.Index);
      Response.Write(str1+str2); 
   }
6 如果字符串中有"abc"则替换成"ABC"
   str=str.Replace("abc","ABC");

运算符‘==’和equals()方法:

Equals()方法判断的是两个字符串对象的值是否相等

==  :判断的是连个字符串对象在内存中的首地址,即判断是否是同一个字符串对象

Format格式化

Format()方法允许把字符串,数字或布尔类型的变量插入到格式字符串中,它的语法和writeline()方法很相似

语法:

String mystring = string.format(“格式字符串”参数列表);

格式化数值结果表

字符:C        货比

字符:D        十进制

字符:F        小数点后的位数固定

字符:N        用逗号(,)隔开的数字

字符:P        百分比数法

字符:P        十六进制格式

类型转换

简单的类型转换

1.     隐式类型转换

2.     显示类型转换

数值类型与字符串之间的转换

1.     字符转换为数值类

Int .  Parse(Console.ReadLine())

 

字符转为整型

Int .  Parse(string)

字符转单精度

Float.Parse(string)

字符转双精度

Double.Parse(string)

2.     数值类型换为字符串

语法:

ToString();

使用Convent类进行转换

常用 Convent类的类型转换方法

Convert.ToInt32()        转换为整数int 型

Convert.TosSingle()      转换为单精度浮点型

Convert.ToDouble()     转换为双精度浮点型

Convert.ToString()       转换为字符串类型

总结

1.     string 类提供了很多厂院内的字符串处理方法

split()方法分割字符串,返回数组;join()方法链接字符串

format()方法格式化字符串

2.     在c#中进行数据类型转换有多种方式:隐式类型转换,显示类型转换,Parse()方法,convert()方法

3.     对于任何数值类型A,只要其取值范围完全包含在类型B的取  值范围内,就可以隐式转换

4.Parse()方法将string 类型数据转换为其他类型,用法为xxx。Parse()。

5.convert类可以实现任何类型之间的相互转换

第六章数据库

数据库的基本概念

数据库中的数据就是按照这种格式进行存储的,而不是杂乱无章的,相同格式和类型的数据统一存放在一起

数据库和数据库表

在早期数据库技术并不发达的时候,实体,之间的; 关系 , 常用关系表达式来实现,在数据库相当发达的今天,很多  关系  被高度抽象,成为比较统一的概念,通过键,类型,规则,权限,约束等抽象概念来实现

数据库管理系统和数据库系统

1.数据库管路系统的主要功能是维护数据库,并有效地访问数据库中各个部分的数据,

2.数据库系统(DateBase System,DBS)是一个实际可运行的系统,可以对系统提供的数据进行存储,,维护和应用,它是有介质,处理对象和管理系统共同组成的集合体,通常由软件,数据库和数据库管理员组成

3.数据有数据库管理系统统一管理,数据的插入,,修改和检索都要通过数据库管理系统进行,

4.数据库管理员,在数据系统中负责创建,监控和维护整个数据库,是数据能被有权限使用的人有效使用

数据完整性

登录SQLserver数据库

1.     master数据库

所有的登录账户和系统配置设置

所有其他的数据库及数据库文件的位置

SQLsever的初始化信息

2.     tempdb数据库

用于保存所有的临时库存过程,以临时生成的工作表

3.     model数据库

可以用于咋系统上创建的所有数据库的摸版

4.     masdb数据库

5.     resource数据库

新建一个数据库连接

1.     在ssms的 菜单栏中选择‘’ 文件  --连接对象资源管理  选项,弹出, 连接到服务器,的对话框

2.     在, 服务器名称, 下拉列表中选择已连接 过的服务器,也可以选择《浏览更多》选项来选择其他的服务器

3.     Windows 身份验证

4.     Sql server身份验证

新建数据库登录名

1.在  安全性  节点下,右击  登录名  在弹出的快速菜单中选择  新建登录名   选项

2.在登录名-新建  窗口中输入登录名,密码

登录名是默认是;‘’ Windows身份验证‘’

可以勾选‘’强制实施密码‘’ 复选框,对用户输入的密码 提出要求

创建和管理SQL Server 数据库

创建数据库

1.     数据库文件

一个数据库可以有一个或者多个数据库文件,一个数据库文件只属于一个数据库,当有多个数据库文件时,有一个文件被定义为主题数据库文件,主数据库文件的扩展名为。Mdf,用来存储数据库的启动信息数据,一个数据库只能有一个主数据库文件,其他数据库文件被称为次数据库文件

2.     事务日志文件

用来记录数据库的更新情况,在对数据库进行操作时,数据库中内容更改的操作信息都会记录在此文件中,事务日志文件的扩展名为,ldf,一个数据库可以有多个事务日志文件

3.     文件组

主要用于分配磁盘空间并进行管理,每一个文件组有一个组名,与数据库一样,文件组也分为主文件组与次文件组

数据库的管理和维护

1.     分离和符加数据库

数据库文件时不能复制粘贴的,但有时候我们希望 将数据库管理物理文件复制到其他计算机上使用,

2.     备份和还原数据库

完全备份:备份整个数据库的所有内容,包括事务日志

差异备份:只备份上次完整备份更改的数据部分

事务日志备份:只备份日志里的内容

文件和文件组备份:如果数据库创建多个数据库文件或文件组,只备份数据中的这些文件的某些文件

完全备份数据库:

备份数据库Back up a database

还原数据库

若要执行还原顺序,请执行下列步骤:

1.     若要启动该顺序,请还原一个或多个数据备份(例如数据库备份、部分备份、一个或多个文件备份)。

2.     也可以还原基于这些完整备份的最新差异备份。

对于计划还原的每个完整备份,确定它是否是任何差异备份的基础。如果是,还原最新的差异备份(如果可以)。

3.     通过按顺序还原日志备份、完成包含恢复点的备份来前滚数据库。是否必须应用所有日志备份取决于日志备份

收缩数据库

1.     自动收缩数据库,

2.     手动收数据库

删除数据库

右击数据库可以删除,以释放磁盘空间

在删除数据库的时候必须谨慎,因为一旦删除数据库,该数据库所有的信息都将没有

总结

1.     用数据库来管理数据,将数据的存储,检索变得更加安全和高效

2.     Sql server2008是微软公司提供的关系数据亏管理系统,SQLserver也是当今主流的数据库、

3.     数据里是表数据库访问对象的集合,其职能表示分类存储了不同的实体信息,每一行数据对应一个实体的描述信息

4.     数据存放一些重复的数据,数据完整性:数据能够正确地反映实际情况,数据库中允许有一些重复的数据库,但是要保持数据的完整性

5.     SQL server Management studioshi sql server 2008 最常用的操作环境,能够执行对数据库的日常管理操作和数据查询,如分离,符加数据,备份数据,还原数据,收缩数据库等

6.     连接SQL server 之前应先启动SQLsever服务,建库之前建好该数据库的用户

7.     Sql server 数据库的物理文件包括数据文件和日志文件两部分

第7章用表组织数据

表相关的几个基本概念

数据完整性

1检验每行数据是否符合要求

2.检验没列数据是否符合要求

实体完整性约束

实体完整性要求表中单的每一行数据反映不同的实体,不能存在相同的数据行

通过索引,唯一约束,主键约束或标识列属性,可以实现表的实体完整性

域的完整性

域完整性指的是给定列输入的有效性

通过限制数据库类型,检查约束,输入格式,外键约束,默认值,费控约束等多种方法,可以实现表的域完整性

引用完整性约束

在输入或删除数据行时,引用完整数性约束用来保持表之间已定义的关系

自定义完整性约束

用户自定义完整性用来定义特定的规则

主键和外键

主键

一个表只能有一个主键,并且主键列不允许出现空值null、尽管有的表中允许没有主键,但是通常情况下建议为表设置一列为主键

如果两列或多列组合在一起唯一第标识表中的美一行,则该主键叫‘’复合主键‘;;’

外键

是用来达到这个目的的,它是相当对于主键而言,就是‘’从表‘’中对应于‘’主表‘’列,在从表中称外键或引用键,它的值要求与主表的主键或者唯一主键相对应,外键用强制引用完整性,一个表可以有多个外键

创建数据表

数据类型

Microsoft Access 数据类型

数据类型

描述

存储

Text

用于文本或文本与数字的组合。最多 255 个字符。

Memo

Memo 用于更大数量的文本。最多存储 65,536 个字符。注释:无法对 memo 字段进行排序。不过它们是可搜索的。

Byte

允许 0 到 255 的数字。

1 字节

Integer

允许介于 -32,768 与 32,767 之间的全部数字。

2 字节

Long

允许介于 -2,147,483,648 与 2,147,483,647 之间的全部数字。

4 字节

Single

单精度浮点。处理大多数小数。

4 字节

Double

双精度浮点。处理大多数小数。

8 字节

Currency

用于货币。支持 15 位的元,外加 4 位小数。提示:您可以选择使用哪个国家的货币。

8 字节

AutoNumber

AutoNumber 字段自动为每条记录分配数字,通常从 1 开始。

4 字节

Date/Time

用于日期和时间

8 字节

Yes/No

逻辑字段,可以显示为 Yes/No、True/False 或 On/Off。在代码中,使用常量 True 和 False (等价于 1 和 0)。注释:Yes/No 字段中不允许 Null 值

1 比特

Ole Object

可以存储图片、音频、视频或其他 BLOBs(Binary Large OBjects)。

最多 1GB

Hyperlink

包含指向其他文件的链接,包括网页。

Lookup Wizard

允许您创建一个可从下拉列表中进行选择的选项列表。

4 字节

 


MySQL 数据类型

在 MySQL 中,有三种主要的类型:Text(文本)、Number(数字)和 Date/Time(日期/时间)类型。

Text 类型:

数据类型

描述

CHAR(size)

保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符。

VARCHAR(size)

保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多 255 个字符。注释:如果值的长度大于 255,则被转换为 TEXT 类型。

TINYTEXT

存放最大长度为 255 个字符的字符串。

TEXT

存放最大长度为 65,535 个字符的字符串。

BLOB

用于 BLOBs(Binary Large OBjects)。存放最多 65,535 字节的数据。

MEDIUMTEXT

存放最大长度为 16,777,215 个字符的字符串。

MEDIUMBLOB

用于 BLOBs(Binary Large OBjects)。存放最多 16,777,215 字节的数据。

LONGTEXT

存放最大长度为 4,294,967,295 个字符的字符串。

LONGBLOB

用于 BLOBs (Binary Large OBjects)。存放最多 4,294,967,295 字节的数据。

ENUM(x,y,z,etc.)

允许您输入可能值的列表。可以在 ENUM 列表中列出最大 65535 个值。如果列表中不存在插入的值,则插入空值。

注释:这些值是按照您输入的顺序排序的。

可以按照此格式输入可能的值: ENUM('X','Y','Z')

SET

与 ENUM 类似,不同的是,SET 最多只能包含 64 个列表项且 SET 可存储一个以上的选择。

Number类型:

数据类型

描述

 

TINYINT(size)

带符号-128到127 ,无符号0到255。

 

 

SMALLINT(size)

带符号范围-32768到32767,无符号0到65535, size 默认为 6。

 

MEDIUMINT(size)

带符号范围-8388608到8388607,无符号的范围是0到16777215。 size 默认为9

 

INT(size)

带符号范围-2147483648到2147483647,无符号的范围是0到4294967295。 size 默认为 11

 

BIGINT(size)

带符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到18446744073709551615。size 默认为 20

 

FLOAT(size,d)

带有浮动小数点的小数字。在 size 参数中规定显示最大位数。在 d 参数中规定小数点右侧的最大位数。

 

DOUBLE(size,d)

带有浮动小数点的大数字。在 size 参数中规显示定最大位数。在 d 参数中规定小数点右侧的最大位数。

 

DECIMAL(size,d)

作为字符串存储的 DOUBLE 类型,允许固定的小数点。在 size 参数中规定显示最大位数。在 d 参数中规定小数点右侧的最大位数。

 

 

数据类型

描述

存储

 

 

 

 

 

char(n)

固定长度的字符串。最多 8,000 个字符。

Defined width

 

varchar(n)

可变长度的字符串。最多 8,000 个字符。

2 bytes + number of chars

 

varchar(max)

可变长度的字符串。最多 1,073,741,824 个字符。

2 bytes + number of chars

 

text

可变长度的字符串。最多 2GB 文本数据。

4 bytes + number of chars

 

nchar

固定长度的 Unicode 字符串。最多 4,000 个字符。

Defined width x 2

 

nvarchar

可变长度的 Unicode 字符串。最多 4,000 个字符。

 

nvarchar(max)

可变长度的 Unicode 字符串。最多 536,870,912 个字符。

 

ntext

可变长度的 Unicode 字符串。最多 2GB 文本数据。

 

bit

允许 0、1 或 NULL

 

binary(n)

固定长度的二进制字符串。最多 8,000 字节。

 

varbinary

可变长度的二进制字符串。最多 8,000 字节。

 

varbinary(max)

可变长度的二进制字符串。最多 2GB。

 

image

可变长度的二进制字符串。最多 2GB。

Number 类型:

数据类型

描述

存储

tinyint

允许从 0 到 255 的所有数字。

1 字节

smallint

允许介于 -32,768 与 32,767 的所有数字。

2 字节

int

允许介于 -2,147,483,648 与 2,147,483,647 的所有数字。

4 字节

bigint

允许介于 -9,223,372,036,854,775,808 与 9,223,372,036,854,775,807 之间的所有数字。

8 字节

decimal(p,s)

固定精度和比例的数字。

允许从 -10^38 +1 到 10^38 -1 之间的数字。

p 参数指示可以存储的最大位数(小数点左侧和右侧)。p 必须是 1 到 38 之间的值。默认是 18。

s 参数指示小数点右侧存储的最大位数。s 必须是 0 到 p 之间的值。默认是 0。

5-17 字节

numeric(p,s)

固定精度和比例的数字。

允许从 -10^38 +1 到 10^38 -1 之间的数字。

p 参数指示可以存储的最大位数(小数点左侧和右侧)。p 必须是 1 到 38 之间的值。默认是 18。

s 参数指示小数点右侧存储的最大位数。s 必须是 0 到 p 之间的值。默认是 0。

5-17 字节

smallmoney

介于 -214,748.3648 与 214,748.3647 之间的货币数据。

4 字节

money

介于 -922,337,203,685,477.5808 与 922,337,203,685,477.5807 之间的货币数据。

8 字节

float(n)

从 -1.79E + 308 到 1.79E + 308 的浮动精度数字数据。

n 参数指示该字段保存 4 字节还是 8 字节。float(24) 保存 4 字节,而 float(53) 保存 8 字节。n 的默认值是 53。

4 或 8 字节

real

从 -3.40E + 38 到 3.40E + 38 的浮动精度数字数据。

4 字节

Date 类型:

数据类型

描述

存储

datetime

从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 3.33 毫秒。

8 字节

datetime2

从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 100 纳秒。

6-8 字节

smalldatetime

从 1900 年 1 月 1 日 到 2079 年 6 月 6 日,精度为 1 分钟。

4 字节

date

仅存储日期。从 0001 年 1 月 1 日 到 9999 年 12 月 31 日。

3 bytes

time

仅存储时间。精度为 100 纳秒。

3-5 字节

datetimeoffset

与 datetime2 相同,外加时区偏移。

8-10 字节

timestamp

存储唯一的数字,每当创建或修改某行时,该数字会更新。timestamp 值基于内部时钟,不对应真实时间。每个表只能有一个 timestamp 变量。

 

其他数据类型:

数据类型

描述

sql_variant

存储最多 8,000 字节不同数据类型的数据,除了 text、ntext 以及 timestamp。

uniqueidentifier

存储全局唯一标识符 (GUID)。

xml

存储 XML 格式化数据。最多 2GB。

cursor

存储对用于数据库操作的指针的引用。

table

存储结果集,供稍后处理。

完善表的设计结构

1.     是否允许为空

2.     建立主键

3.     默认值

4.     标识列

向表中插入数据

建立表间关系

如何建立表间关系

1.    首先是需要创建几个表。表分为主表和外键表。主表就是提供数据的表,外键表是调用数据的表,外键表的引用的数据必须和主表相同。另外,在主表中必须有唯一标识的主键。因此需要设置唯一性约束。话不多说,直接上例子吧

2.    2

首先就是创建几个没有任何关系的表,但是注意,你在将要作为外键表的表上必须使用与将要作为主键表的数据类型相同。

将能唯一标识的那一行设置为主键,其他表类似接下来添加关系

删除数据库表

都懂得

总结

1.Sql.server 创建表的过程是设置数据列属性的过程,同时也是实施数据完整性(包括实体,完整型,引用完整性,和域完整性等,)

2.实体完整性要求对数据不能重复,每一行数据都由主键来唯一确定

3.域完整性实现了对输入到特定列的数值的限制

4.创建数据库需要确定表的列明,数据类型,是否为空,还需要确定主键,必须的默认值,标识列,和检查约束

5.如果建立了主表和从表的关系

从表相关项目的数据在主表中必须存在

主表中先关项的数据更改了,则从表对应的数据项也应当随之更改

在删除从前表之前,不能删除够删除主键

第8章SQL语句操作数据

SQL中的运算符

操作符

描述

+

加法 -添加任一侧上的操作符的值

-

减法 - 从左边减去右边操作数的操作

*

乘法 - 操作符两侧的值相乘

/

除 - 将左边除右边的操作数(取模)

%

模量 - 将左边用右手操作,并返回操作数的余数

SQL比较操作符:

假设变量的一个持有值为10,变量b持有20:

 

操作符

描述

=

检查如果两个操作数的值是相等或不相等,如果是的话,条件为真。

!=

检查如果两个操作数的值是否相等,如果值不相等,则条件为真。

<> 

检查如果两个操作数的值是否相等,如果值不相等,则条件为真。

检查值,如果左操作数大于右操作数的值,如果是的话,条件为真。

检查如果左操作数的值小于右操作数的值,如果是的话,条件为真。

>=

检查如果左操作数的值大于或等于右操作数的值,如果是的话,条件为真。

<=

检查如果左操作数的值小于或等于右操作数的值,如果是的话,条件为真。

!<

检查如果左操作数的值不小于右操作数的值,如果是的话,条件为真。

!>

检查如果左操作数的值是不大于右操作数的值,如果是的话,条件为真。

SQL逻辑运算符:

这是在SQL所有的逻辑运算符的列表。

 

运算符

描述

ALL

所有运算符用于比较的值到另一个值组中的所有值。

AND

AND运算符允许多个条件的存在,在一个SQL语句中的WHERE子句。

ANY

ANY运算符用于比较的值在列表中根据任何适用的条件。

BETWEEN

BETWEEN运算符用于搜索一组值的范围内的值,给定的最小值和最大值。

EXISTS

存在指定的表中符合特定条件的运算符用于搜索存在的一行记录。

IN

IN操作符用来比较的文字值已指定一个值的列表。

LIKE

LIKE运算符用于比较相似的值,使用通配符的值。

NOT

NOT运算符的含义相反的逻辑运算符,它被使用如 NOT EXISTS, NOT BETWEEN, NOT IN 等,

这是一个相反的运算符。

OR

使用OR运算符结合SQL语句的WHERE子句中的多个条件。

IS NULL

NULL操作符用来比较NULL的值。

UNIQUE

独特的操作符搜索指定的表中的每一行的唯一性(不重复)。

 

使用T-sql插入数据

使用insert插入数据

语法:

Insert【into】表名【(列名列表)】 values(值列表)

注意:

1.【into】是可选得,也可以不要

2.表名是必需的

3.表的列名是可选的

4.多个列表和多个值列表用逗号隔开

5.分号(;)是T-sql语句终止符,不是必需的

6.没插入一行整数据,不可能中插入半行或者及列数据。但允许某些列为空或使用默认值

数据值得数目必须与列数目每个数据值得数据类型,精度和小位数也必须相应的列匹配

8.     innsert 语句不能为标识列指定值,因为它的数字是自动增长得

9.     对于字符类型。日期类型的列我,当插入数据的时候,用但引号(‘’)将引起来

10.  尽管可以不指定列名,但是最好明确指定插入的列和对应的zh9i,以便能够将列和值清晰地对应起来

11.  若在设计表的时候指定某些列不允许为空,则必须插入数据,否则将报告错误信息

12.  插入的数据项,要求符合检查约束的要求

一行插入多行数据

通过insert select 语句向表中添加数据

语法:

INSERT  INTO  AdderssList

SELECT Sanme

FROM 表名

注意:

 

1.     查询的到的数据个数,顺序,数据类型等,必须与插入的项保持一致

2.     AddressList 表必须预先创建好,并且据有姓名,地址和电子邮件三列

通过SELECT INTO 语句将现有表中的数据添加到新表中

语法:

SELECT IDENTUTY(数据类型,标识种子,标识增长量)

INTO

FROM

通过union关键字和并数据进行插入

SUBION 语句用于将两个不同的数据或查询结果组成一个新的结果集

使用T-sql更新数据

语法:

UPADTE 表名 set 列名=更新值【where 更新条件 】

注意:

1.SET后面可以紧随多个“列名=更新值”,修改多个数据列的值,不限一个,使用逗号分隔。

2.WHERE 子句是可选的,用来限制更新数据的条件。

使用T-SQL删除数据

使用DELETE删除数据

语法:DELETE [FROM] 表名[WHERE <删除条件>]

 

 使用TRUNCAE TABLE 删除数据

TRUNCATE TABLE 用来删除表中的所有行,功能上它类似于没有WHERE子句的DELETE语句

TRUNCATE TABLE 不能用于有外键约束引用的表

导入和导出数据

导出数据

1.右击要导出的数据库,在弹出的菜单中选择“任务”-“导出数据”选项。

2.选择要从何处取得数据,选择SQLServer自身,并在下方选择要导出的数据库

3.在“目标”中选择“平面文件目标”选项,然后在“文件名”文本框中输入文件名,确认

4.选择复制一个或多个表或视图的数据,下一步

5. 选择表名并设置文本文件的格式

6.确定是否立即运行,下一步,至完成

 导入数据

1.首先准备数据

2.右击要导入的数据库,在菜单中选择“任务”-“导入数据”

3.数据源选择数据文件,选择路径

4.选择将数据源复制到目标远,单击“编辑映射”按钮,进行目标列的对应选择

5. 确认后,下一步,至结束

总结

1.     sql语音数据库能够认别的通用指令集

2.     在T-SQL 中 where 用来限制条件,其后紧跟条件表达式

3.     一次插入多行数据,可以使用insert select语句,select   into  语句或者union关键字来实现

4.     使用update 更新数据

5.     使用delete 删除数据

6.     数据库的导入/导出功能可以实际与文本,Excel等文件交换数据

第9章 数据查询基础

T-SQL查询基础

使用SELECT 语句进行查询

语法:SELECT <列名>

              FROM <表名>

              [WHERE <查询条件表达式>]         

              [ORDER BY <排序的列名>[ASC或DESC]]

1.     查询所有的数据行和列

 使用*表示

2.     查询部分行或列

需要使用where条件限制

3.     在查询中使用列的别名

AS后面加别名

4.     查询空值

采用“IS NULL”或“IS NOT NULL”来判断是否为空值

5.     在查询中使用常量列

将一些常来的默认值添加到查询输出中

6.     查询返回限制的行数

使用TOP 关键字来约束

还有百分比PERCENT关键字

 查询排序、、、 

如何使用ORDER BY

asc为升序排列,默认, DESC为降序 在查询中使用函数

SQL Aggregate 函数

SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。

有用的 Aggregate 函数:

AVG()- 返回平均值

COUNT()- 返回行数

FIRST()- 返回第一个记录的值

LAST()- 返回最后一个记录的值

MAX()- 返回最大值

MIN()- 返回最小值

SUM()- 返回总和


SQLScalar 函数

SQL Scalar 函数基于输入值,返回一个单一的值。

有用的 Scalar 函数:

UCASE()- 将某个字段转换为大写

LCASE()- 将某个字段转换为小写

MID()- 从某个文本字段提取字符,MySql 中使用

SubString(字段,1end) - 从某个文本字段提取字符

LEN()- 返回某个文本字段的长度

ROUND()- 对某个数值字段进行指定小数位数的四舍五入

NOW()- 返回当前的系统日期和时间

FORMAT()- 格式化某个字段的显示方式

 字符串函数

CHARINDEX:用来寻找一个指定的字符串在另一个字符串中起始位置

LEN:返回传递给它的字符串长度

UPPER:把传递给它的字符串转换为大写

LTRIM:清除字符左边的空格

RTRIM:清除字符串右边的空格

RIGHT:从字符串右边返回指定数目的字符

REPLACE:替换一个字符串中的字符

STUFF:在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串

 日期函数

GETDATE:取得当前的系统日期

DATEADD:将指定的数值添加到指定的日期部分后的日期

DATEDIFF:两个日期之间的指定日期部分的间隔

DATENAME:日期中指定日期部分的字符串形式

DATEPART:日期中指定日期部分的整数形式

 数学函数

RAND:返回从0到1之间的随机float值

ABS:取数值表达式的绝对值

CEILING:向上取整,取大于或等于指定数值、表达式的最小整数

FLOOR:向下取整,取大于或等于指定数值、表达式的最大整数

POWER:取数值表达式的幂值

ROUND:将数值表达式四舍五入为指定精度

SIGN:对于正数返回+1,对于负数返回—1,对于0则返回0

SQRT:取浮点表达式的平方根

 系统函数

CONVERT:用来转变数据类型

CURRENT_USER:返回当前用户的名字

DATALENGHT:返回用于指定表达式的字节数

HOST_NAME:返回当前用户所登录的计算机名字

SYSTEM_USER:返回当前所登录的用户名称

USER_NAME:从给定的用户ID返回用户名

总结

1.     查询将逐行筛选表中的数据。最好将符号要求的记录重新组合‘’记录集‘’记录集的结果类    似于表结构

2.     使用is null判断一行中的某列是否为空

3.     使用order by 进行查询记录集的排序,并且可以按照多个进行排序

4.     在查询中,可以使用常量,表达式,运算符,

5.     在查询中使用函数,能够像程序中哪呀处理数据

第10章 模糊查询和聚合函数

 模糊查询

 通配符

—:一个字符

%:任意长度的字符串

[]:括号中所指定范围内的一个字符

[^]:不在括号中所指定范围内的任意一个字符

 使用LIKE进行模糊查询

LIKE运算符用于匹配字符串或字符串的一部分

使用BETWEEN 在某个范围内进行查询

必须知道查找的初值和终值,并且初值要小于等于终值,初值和终值用AND关键字分开

使用IN在列举值内进行查询

使用带列举值的IN关键字来进行查询,将列举值放在圆括号里,用逗号分开

T-SQL中的聚合函数

SUM()函数

SUM()函数返回表达式中所欲数值的总和,空值将被忽略。只能用于数字类型的列,不能够汇总字符、日期等其他数据类型。

AVG()函数

AVG()函数返回表达式中所有数值的平均值,空值将被忽略,只能用于数字类型的列

MAX()函数和MIN()函数

MAX()函数返回表达式中的最大值,MIN()函数返回表达式中的最小值,忽略空值。只能用于数字型、字符型、及日期/时间类型的列

COUNT()函数

COUNT()函数返回提供的组或记录集中的计数。可以用于除去text、image、ntext以外任何类型的列。可以使用(*)作为COUNT的表达式。使用星号可以不必指定特定的列而计算所有的行数吗,当对所有的行进行计数时,则包括包含空值的行

总结

1.     通配符是一个类字符,它可以代替一个或多个真正的字符,查找信息时作为替代字符出现

2.     ‘’-‘’和‘’%‘’分别匹配一个字符和多个字符

3.     使用like ,between,in 关键字,能够进行模糊查询

4.     聚合函数能够对列进行计算,对于分析和统计非常有用

5.     常用的聚合函数有哦sum(),avg(),max()min()count()。

第11章连接查询和分组查询

分组查询

使用GROUP BY 进行分组查询

通常会结合聚合函数一起来使用

多列分组查询

使用GROUP BY关键字时,在SELECT列表中可以指定的列是有限制的:

1.     被分组的列

2.     为每个分组返回一个值的表达式,如聚合函数计算出的列

使用HAVING子句进行分组筛选

HAVING子句用来对分组后的数据进行筛选,将“组”看作“列”来限定条件

使用顺序:WHERE—GROUP BY— HAVING

多表连接查询

多表连接查询的分类

常用的连接查询方式:内连接,外连接

内连接查询

内连接查询通常会使用“=”或“<>”等比较运算符来判断两列数据值是否相等

1.     在WHERE 子句中指定连接条件

2.     在FROM子句中使用INNER JOIN... ON

INNER JOIN用来连接两个表

INNER 可以省略

ON 用来设置条件

AS指定表的“别名”

外连接查询

在外连接查询中参与连接的表有主从之分,以主表的每行数据匹配从表的数据列,将符合连接条件的数据直接返回到结果集中,对那些不符合连接条件的列,将被填上NULL值后再返回到结果集中

左外连接查询

左外连接查询的结果集包括LEFT JOIN 子句中指定的左表的所有行,而不仅是连接列所匹配的行。若左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列均为空值

使用LEFT JOIN..ON 或LEFTOUTER JOIN ..ON关键字进行表之间的关联

右外连接查询

使用RIGHT JOIN..ON 或RIGHTOUTER JOIN ..ON关键字进行表之间的关联

 

 

总结

1.     分组查询是针对表中不呕吐的组分类统计的,group by自居通常会结合聚合函数一起使用

2.     Havin 一句能够在分组的基础上,再次进行筛选

3.     多表之间的查询可以使用连接查询,连接查询又分为内连接查询和外里连接查询

4.     最常的 连接查询是内连接查询(inner join on),同常会在相关值间提取引用列的数据项


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值