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

SQLServer与ADO.Net(一)

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

1、什么是数据库?

l  数据库Database:数据的仓库

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

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

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

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

 

2、我们怎么存储数据?

l  学校的档案室

l  计算机文件

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

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

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

 

3、数据库概述

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

 

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

      

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

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

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

 

8、数据库范式

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

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

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

 

9、常用数据类型

      

 

10、系统数据库

     

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

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培训、期待与您交流! ----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值