黑马程序员----SQL 语句学习

百般思念 提交于 2020-03-20 07:43:07

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

 

  1. 数据库概念

1.1  catalog(分类),不同类的数据应该放到不同的数据库中

a、偏于对各个Catalog进行个性化管理

b、避免命名冲突

c、安全性更高

1.2  Table(表)

           不同类型的资料放到不同的格子中,将这种区域叫做表。不同的表根据方的数据不同进行空间的优化,找起来也方便。

a、主键(PrimaryKey)就是数据行的唯一标识。不会重复的列才能当主键。一个表可以没有主键,但是会非常难以处理,因此没有特殊里有表都要设定主键。

主键有两种选用策略:业务主键和逻辑主键。业务主键是使用有业务意义的字段做主键,比如身份证号、银行账号等;逻辑主键是使用没有任何业务意义的字段做主键,完全给程序看的,业务人员不会看的数据。因为很难保证业务主键不会重复,不会变化,因此推荐用逻辑主键。

b、表间关联、外键:当表中出现字段重复时,可以把原先比较重复的表,化简为两个表来表示。一个表中的主键是另外一个表的外键。外键就是关联两个表的键.

1.3在数据库中的数据类型与在C#中的区别

bit相当于C#中的bool类型,

char(10)10个字符

int 32位

bigint 64位

nvarchar(max)无限长的字符串

varchar(50)表示不含有中文信息的字段

nvarchar(50)表示可能含有中文信息的字段

varchar与char的区别: varchar会用空格填充

varchar用于存放长度不定的字符串

1.4 SQL语句入门:

1)         sql语句中字符串用单引号

2)         sql语句大小写不敏感的,

注意:不敏感指的是SQL关键字,字符串值还是大小写敏感

   1.4.1主键选择

⑴ SQLServer中两种常用的主键数据类型:int(或bigint)+标识列(又称自动增长字段);uniqueidentifier(又称Guid、UUID)

⑵用标识列实现字段自增可以避免并发问题,不要开发人员控制自增。用标识列的字段在Insert的时候不用指定主键的值。将字段的(是标识)的值改为’是’,一个表只能有一个标识列。

(3)Guid算法是一种可以产生唯一标示的高效算法,它使用网卡MAC、地址、纳秒级时间、芯片ID码等算出来的,这样保证每次生成的GUID永远不会重复,无论是同一个计算机上还是不同的计算机。SQLServer中生成GUID的函数newid(), .NET中生成的Guid的方法:Guid.NewGuid(),返回是Guid类型。

(4)int自增字段的优点:占用空间小、无需开发人员干预、易读;缺点:效率低,数据导入导出的时候得很痛苦。

Guid的优点:效率高、数据导入导出很方便;缺点占用空间大、不易读。

一般业界主流倾向于使用Guid。

1.4.2插入数据INSERT

insert  into  tables (id,name,age)values(new id(),tom,18)//guid做主键,可以自动生成

insert  into  tables (name,age)values(tom,18)//id是自动生成

insert  into  tables  values(tom,18)//id是自动生成

可以省略表名后的列名,但是不推荐使用。

1.4.3数据更新UPDATE

update tables set 列名1=value1,列名2=value2…

update tables set age=age+1 //用本身字段更新也可以

update Person1 set NickName=N’青年人’//有汉字时前加N

where Age>=20

update Person1 set NickName=N’青年人’//有汉字时前加N

where Age=20(等于判断要用一个“=”);

update Person1 set NickName=N’青年人’//有汉字时前加N

where Age<>20 (“<>”不等于)

update Person1 set NickName=N’青年人’//有汉字时前加N

where Age=20 or(and,not) Age=30//或,并且判断

1.4.4数据删除DELETE

delete from tables

delete只是删除数据,表还在,和drop table不同。

delete 也可以带where子句来删除一部分数据:

delete from table where age>20

(未完待续)

 

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

详细请查看:http://net.itheima.com/

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!