黑马程序员——SQL基础学习笔记

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

  以下是学习SQL的笔记,整理出来费了不少时间,因为之前是用笔写在本子上的,后面的笔记得用word来记了,方便整理啊!文中所写的SQL语句实例都是在看视频时和练习中敲的,字段、表名等都可以在SQL Server Management Studio Express中查看到。

概念:
DBMS(数据库管理系统):MSSQLServer、Oracle、Access、DB2等。
DB(数据库):存放一堆数据表的一个分类(Catalog)。
1.Catalog(分类)(又叫数据库DataBase、表空间TableSpace),不同类的数据应该放到不同的数据库中:
 (1)便于对各个Catalog进行个性化管理
 (2)避免命名冲突
 (3)安全性更高
2.Table(表):不同类型的资料放到不同的“格子”中,将这种区域叫做“表”(Table)。
                             不同的表根据放的数据不同进行空间的优化,找起来也方便。
3.列(Column)、字段(Field)
4.主键(PrimaryKey):
 (1)主键就是数据行的唯一标识。不会重复的列才能当主键。
 (2)主键有两种选用策略:业务主键和逻辑主键。
  业务主键是使用有业务意义的字段做主键,比如身份证号、银行账号等;逻辑主键是使用没有任何业务意义的字段做主键,完全给程序看的,业务人员不会看的数据。因为很难保证业务主键不会重复(身份证号重复)、不会变化(帐号升位),所以推荐用逻辑主键。

SQLServer的管理:
1.SQLServer的两种验证方式:用户名验证和Windows验证,开发时用Windows验证就行。
2.创建数据库,创建表,设置主键
3.常用字段类型:bit(可选值0、1)、datetime、int、varchar、nvarchar(可能含有中文用nvarchar)、Nvarchar(50)、Nvarchar(MAX)
4.varchar、nvarchar 和char(n)的区别: char(n)不足长度n的部分用空格填充。Var:Variable,可变的。

SQL语句入门:
1.SQL语句是和DBMS“交谈”专用的语句,不同DBMS都认Sql语法。
2.SQL语句中字符串用单引号(' ')。
3.SQL语句是大小写不敏感的,不敏感是指SQL关键字,字符串的值还是大小写敏感的。
4.创建表和删除表不仅可以手工完成,还可以执行SQL语句完成,在自动化部署、数据导入中用的很多。
 Create Table T_Person(Id int NOT NULL,Name nvarchar(50),Age int NULL)、Drop Table T_Person1。
5.简单的Insert语句:
 INSERT INTO T_Person(Id,Name,Age) VALUES(1,'Jim',20);
6.(*)SQL主要分DDL(数据定义语言),和DML(数据操作语言)两类。Create Table、Drop Table、Alter Table等属于DDL,Select、Insert、Update、Delete等属于DML。

主键选择:
1.SQLServer中两种常用的主键数据类型:int(或bigint)+标识列(又称自动增长字段);uniqueidentifier(又称Guid、UUID)
2.用标识列实现字段自增可以避免并发等问题,不要开发人员控制自增。用标识列的字段在Insert的时候不用指定主键的值。将字段的“是标识列”设置为“是”,一个表只能有一个标识列。
3.Guid算法是一种可以产生唯一标识的高效算法,它使用网卡MAC、地址、纳秒级时间、芯片ID码等算出来的,这样保证每次生成的GUID永远不会重复,无论是同一个计算机上还是不同的计算机。在公元3400年以前产生的GUID与任何其他产生过的GUID都不相同。SQLServer中生成GUID的函数newid(),.Net中生成Guid的方法:Guid.NewGuid(),返回是Guid类型。
4.(*)Int自增字段的优点:占用空间小、无需开发人员干预、易读;缺点:效率低,数据导入导出的时候很痛苦。
5.(*)Guid的优点:效率高、数据导入导出方便;缺点:占用空间大、不易读。
6. 业界主流倾向于使用Guid。

数据插入:
1.Insert语句可以省略表名后的列名,但是不推荐。
2.如果插入的行中有些字段的值不确定,那么Insert的时候不指定那些列即可。
3.可以给字段默认值,如果Guid类型主键的默认值设定为newid(),就会自动生成,但很少这样做。

数据更新:
1.更新一个列:UPDATE T_Person

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值