设为首页 加入收藏

TOP

浅谈SQL基本概念及其用法(一)
2014-11-24 02:59:32 来源: 作者: 【 】 浏览:4
Tags:浅谈 SQL 基本 概念 及其 用法

这两天学习了SQL与ADO.NET,简单总结下……

一、数据库概述:

1、DBMS(DataBaseManagementSystem,数据库管理系统)和数据库。平时谈到“数据库”可能有两种含义:MSSQLServer、Oracle等某种DBMS;存放一堆数据表的一个分类(Catalog)

2、数据库的构成-管理软件/服务/数据文件(表,视图...)

3、不同品牌的DBMS有自己的不同的特点:MYSQL、MSSQLServer、DB2、Oracle、Access、Sybase等。对于开发人员来讲,大同小异

4、SQL的全称是:Structured Query Language(结构化查询语言)SQL<>SQLServer<>MSSQLServer。最常见的错误。

5、除了Access、SQLServerCE等文件型数据库之外,大部分数据库都需要数据库服务器才能运行。学习\开发时是连接本机的数据库,上线运行时是数据库运行在单独的服务器。

二、数据库开中的概念:

1、Catalog(分类)(又叫数据库DataBase,表空间TableSpace),不同类的数据应该放到不同的数据库中

1)便于对各个Catalog进行个性化管理

2)避免命名冲突3安全性更高

2、Table(表):书都放到书架上,碗都放到橱柜中,不同类型的资料放到不同的“格子”中,将这种区域叫做“表”(Table)。不同的表根据放的数据不同进行空间的优化,找起来也方便。

3、列(Column)、字段(Field)要概念

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

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

三、数据库的管理:

1、需要安装SQLServer2005或者SQLServer2008,若要使用SQLServer管理工具进行开发还要安装SQL Server Management Studio,还可以使用VisualStudio进行管理

2、使用免费的SQLServerExpress版本,Express版本的服务器名称. \SQLEXPRESS,对于开发人员来讲和其他版本没有区别。

3、SQLServer的两种验证方式:用户名验证和Windows验证,开发时用Windows验证就行。

4、开发人员关注点在开发上,而不是配置/备份等之上,那是DBA做的事情。

创建数据库,创建表,设置主键

5、SQLServer2008中:编辑200行;SQLServer2005中:打开表。

6、常用字段类型:bit(可选值0、1)、datetime、int、varchar、nvarchar(可能含有中文用nvarchar)

7、Nvarchar(50)、Nvarchar(MAX)

8、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。

7、一个SQL查询例子:(条件查询)

表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。

select(case when A>B then A else B end),(case when B>C then B else C end ) from T

五、主键的选择:(Globally Unique Identifier(叫全球唯一标识符))

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。

六、新增(插入)数据:Inert into Table(col,col2...)values(data1,data2...)

1、Insert语句可以省略表名后的列名,但是不推荐

2、如果插入的行中有些字段的值不确定,那么Insert的时候不指定那些列即可。

3、给可以给字段默认值,如果Guid类型主键的默认值设定为newid()就会自动生成,很少这么干

4、主键:

insert into Person3(Name,Age) values('lily',38);

insert into Person4(Id,Name,Age) values(newid(),'tom',30);

例如:分析以下几句,看懂了你就会用insert into了。

1)INSERT INTO Book (b_title,b_cid,b_Content,b_author,b_isdel,b_addtime)

VALUES ('传智播客',5, '严谨负责', '家宝',0,getdate())

2)INSERT INTO Book

VALUES (1, '传智播客', '严谨负责', '家宝',0,getdate())

3)INSERT INTO Boo

首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇SQL查询横表变竖表简析 下一篇SQL Server 2008 维护计划执行失..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C语言结构体怎么直接 (2025-12-24 17:19:44)
·为什么指针作为c语言 (2025-12-24 17:19:41)
·如何较为深入的理解c (2025-12-24 17:19:38)
·Announcing October (2025-12-24 15:18:16)
·MySQL有什么推荐的学 (2025-12-24 15:18:13)