您的位置:首页 > 职场人生

黑马程序员-自学笔记-SQL Server与ADO.Net(一)

2013-10-13 14:07 281 查看

SQLServer与ADO.Net(一)

----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------

1、什么是数据库?

l 数据库Database:数据的仓库

l 仓库里有排货架(表),货物会分类存放。比如牙膏、牙刷会放到一个排货架上,面包会单独放在一个排货架上。

l 仓库又分很多种粮仓、武器仓库。

l 仓库中还会有仓库管理员(DBA)对货物进行管理

l 从仓库中拿货物需要凭证,取货和进货的人(程序员)

2、我们怎么存储数据?

l 学校的档案室

l 计算机文件

l 数据库(其实也是文件),DBMS

l 对于数据不仅仅是需要存储,更重要的是将数据进行存储以后怎么才能方便快捷的查询、修改。

l 数据库特点:海量存储、查找速度快、并发性问题控制、安全性、数据完整性。

3、数据库概述

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

l 不同品牌的DBMS有自己的不同的特点:MYSQL(速度很快,适合对数据要求并不是十分严谨的地方)、MSSQLServer(与.net结合很好)、DB2(大型)、Oracle(大型)、Access(文件)、 SQLite(及其轻量级数据库)、Sybase等。对于开发人员来讲,大同小异

l SQL(语言)<>SQLServer<>MSSQLServer。最常见的错误。

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

4、使用Management Studio连接数据库

l Windows身份验证与SQL Server身份验证

l 数据库、表、记录、字段、关系映射(对象可以存数据、表也能存数据)

启用Sql Server身份验证

-> Windows身份验证进入

-> 在对象资源管理器中右键实例名

-> 选择属性

-> 找到安全性,修改服务器身份验证(需要重新启动服务)

-> 然后在对象资源管理器中找到“安全性”

-> 找到登录名sa,右键属性(sa有个向下的红色箭头,表示用户被禁用)

-> 找到状态,启用,权限授予

-> 找到常规,设定密码(可以设置“强制实施密码策略”,表示密码必须复杂)

5、数据库中的概念

l 数据库DataBase,不同类的数据应该放到不同的数据库中

• 便于对各个数据类别的进行个性化管理

• 避免命名冲突

• 安全性更高

l Table(表):关系数据库中的关系指的就是表。不同的货物要放到各自的货物架,将这种区域叫做“表”(Table)。不同的表根据放的数据不同进行空间的优化,找起来也方便。

l 列(Column)、字段(Field)



6、主键(PrimaryKey)



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

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

7、表间关联、外键(ForeignKey)



l 表关联后对于数据的修改会有约束(一般指删除)

l 有外键的就是外键表(相对于外键指向的表而言)

l 谁被引用谁就是主的 ,主键表改,其他就要改

8、数据库范式

l 第一范式:表中数据原子性(不可再分)

l 第二范式:要有主键(只描述一件事情)

l 第三范式:关系表间数据不重复

9、常用数据类型



10、系统数据库



11、SQL语句入门(脚本、命令)

l SQL 全名是结构化查询语言(StructuredQuery Language),是关系数据库管理系统的标准语言

l SQL语句是和DBMS“交谈”专用的语句,不同DBMS都认SQL语法。

l SQL语句中字符串用单引号

l SQL语句是大小写不敏感的,不敏感指的是SQL关键字,字符串值还是大小写敏感的

l 建库、删除数据库、创建表、删除表不仅可以手工完成,还可以执行SQL语句完成,在自动化部署、数据导入中用的很多

l 简单的Insert语句。

l (*) SQL主要分DDL(数据定义语言,建表、建库等语句。)、DML(数据操作语言)和DCL (数据库控制语言) 。Create Table、Drop Table、Alter Table等属于DDL,Select、Insert、Update、Delete等属于DML, GRANT 授权、REVOKE 取消授权属于DCL

12、使用sql语句创建数据库和表

l 新建查询

l 选择数据库

• use 数据库名

• 注释使用“--”

l 键入T-SQL语句创建数据库

l 点击对勾检查语法

l 点击惊叹号执行T-SQL语句(选中执行)

13、数据库(Database)的创建与删除

l create database 数据库名

• 默认系统保存数据文件与日志文件

• 逻辑名、文件名、大小、增长

l drop database 数据库名

• 在使用的数据库不能删除自己

• use master

l go语句表示T-SQL块结束

l 如果命名与系统冲突使用[]括起

14、创建表(Table)

l use 数据库

l create table 表名

• 字段名、类型、约束(各个字段逗号分隔)

l 自动增长使用

• identity(1,1)

l 主键使用

• primary key

l 非空使用

• not null

15、数据插入与查看

l 插入数据

• insert into 表名(列名) values(值)

• bit类型赋值为0与1

l 查看数据

• select * from 表名

l 列名可省略,但不推荐

l 不是所有字段都要赋值(除了非空约束)

附:随机练习代码:

--use 数据库名,表示使用哪一个数据库进行操作
--一般在建数据库的时候默认使用master
use master
go

--1、创建数据库
create database
数据库名称
--这种做法使用系统默认的方式
--对于名称、路径、大小、增长等均是默认的

--自定义数据库
create database
School
on --数据文件的内容
(
name='School',
--设定数据文件的逻辑名
filename='D:\School.mdf',
--数据文件全路径名
size=3mb,
--数据文件的初始大小
maxsize=1024mb,
--数据文件的最大值
filegrowth=1mb
--文件增长量
)
log on
--日志文件的内容
(
name='School_Log',
--设定日志文件的逻辑名
filename='D:\School_Log.ldf',
--日志文件全路径名
size=1mb,
--日志文件的初始大小
maxsize=2048mb,
--日志文件的最大值
filegrowth=10%
--文件增长量
)
go
--go语句不是T-SQL语句的内容,它是SQLServer命令行批处理指令
--表示将上面的数据当做一个逻辑块来进行处理

--删除数据库(慎用)
drop database
School

use School
go
--2、创建表
create table
T_Student
(
--字段名字段类型约束
FId
intidentity(1,1)
primary key,
--identity(1,1) 表示数据以开始,并且每次增长
--primary key 表示该字段为主键
FName
nvarchar(10)
not null,
FAge
int,
FAddress
nvarchar(100)
)

--建表方式
create table
T_Student1
(
--字段的定义以及默认值的定义
FId
intidentity(1,1),

FName
nvarchar(10)
not null,
FAge
int,
FAddress
nvarchar(100),
--约束的定义
primary
key(FId)
)

--3、插入数据
--insert into 表名(列名)values(值)
insert into
T_Student(FName,FAge,FAddress)values('张三',18,'北京胡同儿')
insert into
T_Student(FName,FAge,FAddress)values('李四',20,'北京胡同儿')

--查看表中数据
Select *
from T_Student

----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: