当前位置:网站首页 > 数据科学与大数据 > 正文

数据库基础知识笔记(数据库基础知识笔记整理)



sql server:是微软公司的产品

oracle:是甲骨文公司的产品

DB2:数据核心又称DB2通用服务器

Mysql:是一种开发源代码的关系型数据库管理系统

6.2.1:实体和记录

实体:就是客观存在的事物

记录:每一行对应的实体,在数据库中,通常叫做记录

6.2.2:数据库和数据库表

数据表:不同类型组织在一起,形成了数据库表,也可以说表示实体的集合,用来存储数据。

数据库:并不是简单地存储这些实体的,还有实体的关系,这种关系要数据库来表示,关系是数据库的一部分

6.2.3:数据库管理系统和数据库系统

数据库管理系统:是系统软件,由一个相互关联的数据集合和一组访问数据构成。这个数据集合称为数据库,包含了很多有用信息,数据库管理系统是基本目标是提供一个有效的存储数据的环境,维护数据库。访问数据库信息。

数据库系统:是一个实际可运行的系统,可以对系统数据存储,维护,信用!

6.2.4:数据冗余和数据库完整性

数据冗余:数据重复现象

数据完整性:指数据库数据的准确性

新建数据库连接:文件----连接对象资源管理器

服务器下拉框选择已经连接的服务器

选择身份验证方式

6.3.2:新建数据库登录名

安全性—登录名----新建登录名

输入密码,登录名-指定数据库

赋予操作限权

6.5.1:创建数据库

数据库文件

事物日志文件

文件组

步骤:选择新建数据库---输入名字—设置参数

6.5.3:数据库的管理和维护

分离和附加数据库

分离:右击数据库---任务 ---分离

附加:数据库右击—附加----然后添加

备份和还原:

备份:任务---备份----填写数据

还原:数据库右击—还原---目标数据库---设置位置

收缩数据库:

属性—选项----自动收缩

7.1.1:数据的完整性

检验每行数据是否符合要求

检验每列数据是否符合要求

1:实体完整性:

实体完整性:要求每行数据都反应不同的实体,不能存在相同的数据行 通过索引,唯一约束,主键约束或标识列可以实现实体完整性

域完整性:域完整性指给指定列输入有效性。

引用完整性约束:在输入或删除时,引用完整性约束保持表之间的定义关系

自定义完整性约束:用户自定义完整性来定义的规则

7.1.2:主键和外键

主键:如果在存储了很多行时,如何判断表中没有重复的数据行,这时需要的列,这个列的值用来标识表中的每一行,用于强制表实体完整性,这样的列就是主键。

一个表只能一个主键,并且不允许为空

外键:外键就是用来和主键建立引用关系,相对主表,就是从表的列,这个值要求与主键想对应,外键用来引用完整性,一个表可以有多个外键。

7.2.1:在数据库中创建表

步骤:单机数据库的表节点—奖显示数据表

7.2.2:数据类型

二进制数据类型

用来储存非字符的数据

Binary。Varbinary。image

固定长度二进制

可变长度二进制

储存图像

文本数据类型

字符数据包括任意字母,符号或数字

Char,varchar,nchar,nvarchar,text,ntext

固定长度非unicode字符

可变长度非unicode字符

固定长度unicode字符

可变长度unicode字符

储存长文本信息

储存可变长度的文本

日期和时间数据类型

用于储存日期

Datetime

日期

数字数据类型

数字,正数,负数,分数

Int,smallint,tinyint,bigint,float,real

整数,浮点型

货币数据类型

储存货币值

Money

金钱

Bit数据类型

是/否

Bit

布尔类型

7.3.1:书否允许为空

数据库书否允许为空是一项约束,如果该列为空,则输入这行的时候,这一项可以不输入

7.3.2:建立主键

选择列---右击---然后设置主键(有个钥匙说明成功)

默认值:在不输入的情况下,指点的值!!

7.3.3标识列:

添加了标识列,就可以实现自增,要有种子和标识增量

7.5.1:如何建立标间的关系

在设计表的时候,可以添加关系(右键)

单击表和列最右侧,弹出建立关系,及主键对话框,

选择表,主键列对应的外键列,单击确定,并保存结构,这样就确立了关系

Check约束:用来控制输入的值得范围的,(如果输入不在范围就报错)

右击数据库表,右击删除(如果有建立的关系,一定要先删除从表的数据,在删主表的数据)

数据需要一套指令集,能够识别指令,执行相应的操作并微程序提供数据。

Sql语言:是针对数据库的一门语言,他可以创建数据库,数据表,可以进行增 删 改 插,可以创建视图,存储过程

DML 用来插入,修改,删除,数据库,(关键词:insert,update,delete)

DDL:用来建立数据库,数据库对象和定义其列,以create完成指令,如create table(建表)

DQL用来查询数据库的,如SELECt(查询关键词)

DCL用来控制数据库组件许可

+

-

*

/

取商

%

取余

=

赋值运算符,等于

=

比较运算符

>

大于

<

小于

>=

大于等于

<=

小于等于

<>

不等于

And

并且

Or

或者

Not

逻辑运算符    不是

语法:insert 【into】 表名   (列名)   values(列值)

Insert select(必须先创建表)

语法:insert into 新表名(列名) select 列名(旧表中的列)1,2,3 from 旧表

Select into (会自动创建表)

Select 旧表的列1,列2,列3   into 新表   from 旧表

插入标识列: select identity(数据类型,种子,增长量) as 别名 into   新表   from 旧表

通过Union 插入多条数据

Insert 表名(列名)

Select 列值   union

Select 列值   union

Select 列值   union

最后一个不要union

Update 表名   set   列名=值   [where 条件]

1:使用DELETE删除数据

语法:DELETE 【from】 表名   【where 条件】

2:使用truncate + table +表名 彻底删除

数据在接收查询请求时,可以理解为逐行判断,判断是否符合查询条件,如果符合,就抽取出来,形成一个类似于表的结构,这就是记录集

9.1.2:使用select查询

语法:select 列名(或者*全部) from 表名 where +条件 order by +列名(asc/desc)

查询所有:select * from 表名  

查询部分列:select 列名1,列名2,from 表名    where +条件

在查询中取别名:select 列 as +别名    列的别名

在查询中取别名:select 表 as +别名    表的别名

查询空值:select 列名   from 表 where 列名(另一个) is null

查询中使用常量:select   姓名=Sname ,地址=address as 学校 from 表名

查询返回的行数:select top 5 name,address from 表 where sex=0

9.2.1:如何使用order by

Order by+列名 desc /asc

Charindex

查找指定字符串其始位置

Select charindex (‘值’,字符串,1)返回数字

Len

返回字符串长度

Select len (字符串)

Ltrim

清除左空格

Select trim (字符串)

Ritrim

清除右空格

Select ritrim (字符串

Right

重右边截取字符串

Select right(字符串,3)(3表示截取长度)

Replace

替换一个字符串的字符

Selct replace (字符串,替换额字符,替换为那个字符)

Stuff

在字符串中删除一定长度,在该文置插入另一个

Select stuff(之前的很字符串,替换的坐标,替换的长度,替换为什么)

Getedate()

取得当前系统时间

Select getdate()

Dateadd()

Datediff

将制定的值添加到日期的指定日期后面

Select date (mm,4,日期

返回:)相当于月份增加4,最后返回日期

Datename

两个日期指定位置的差

Select datediff(mm,日期一,当前日期)

dateprat

日期以字符串的形式显示

Select datename(dw,日期。返回日期的形式(dw,表示周))

日期中指定的部分显示出来

Select datepart (day,日期),返回 日

Rand

返回0~1的随机数

Select rand()

Abs

取绝对值

Select abs(数值)

Celing

向上取整

Floor

向下取整

Power

去表达式的幂值

Select power(5,2) 五的二次方

Round

将表达式四舍五入

Sign

正数取1,负数取-1,0取0

Select sign (-23)返回-1

Sqrt

取浮点的平方根

Select sort(9) 返回3

_

输入一个字符

A like ‘C_’   cs/cd 都符合

%

输入任意长度

B like ‘o%’   const/coke 都符合

[ ]

括号中表示范围值

C like ‘9wo[1-2]’ 9wo1/9wo2 f符合

[^ ]

不在 括号里面

D like ‘9w0[^1-2]’ 9w03/9wo7符合

[01]

表示值是0或者1

C like ‘[01]’,

例:select * from student where sname like ‘张%’    表示后面任意

例:select * from student where sname like ‘%张%’   只要有张字符就合法

Select * from student where sex like ‘[01]’,     表示性别可以选择0 或者 1

In来进行匹配

Select * from student where gradeId   in (“0” , ”1”), 表示gradeId的值是0或则1都符合条件

Select * from scroe where score (not) between   60 and 80

使用in在列举值中查询

例:select sname as 学生姓名,from student where address in (’北京’,’上海’,’广州’) order by address

(group by)用于对列进行分组,前面必须先select 后面有列(此列),才能使用 group by 加此列

Having也是相当于where条件关键词:但having用于使用了聚合函数的表达式进行加条件    having +用于聚合函数使用的表达式(条件)

Sum函数

SUM(列名) 返回一个值,返回的是此列名的所有值的和

AVG()函数

AVG(列名) 返回的是此列的所有的值的平均值  

MAX() 和 MIN()函数

max返回此列所有值得最大值,min返回此列所有值得最小值

分组查询就是把列进行不同值得分组,然后在分组的基础上分开查询! 分组查询一般结合着聚合函数一起使用!

例子(语法):select couseID ,(第二个分组列) AVG(Score) as 别名 from 表名 group by couseID,(第二个分组列)

注意:如果是多分列的话,直接在couseID后面和group by 后面的cousrID加列就行了

如果使用了group by 关键词查询,在select 后面指定的列是有限的,允许:

要分组的列

值得表达式 :如聚合函数

Having和where条件类似,不过having条件只能用于group by 分组过后进行加条件

顺序:(where     group by       having)

内连接查询

内连接查询一般用于两个表有朱外键关系的表,(更具表中的共同的列匹配)

语法1:select 列,列 from 表名,表名   where 表.列名=表.列名(两个列有朱外键关系)

语法2:select 列,列 from 表名 inner join 表名   on表.列名=表.列名(两个列有朱外键关系)

(如果是多个表,直接在列后面加,或者在后面加inner join on 条件)

外连接查询

外连接查询至少返回表中的所有记录,根据匹配的有选择的返回另一章表的记录

(一般,如果主表中有的记录可能没有,也会以null的形式返回,一主表为中心,返回主表那么多条数据)

左外链接:

语法:select 列,列 from 表名 left join 表名   on表.列名=表.列名(两个列有朱外键关系)

右外链接:

语法:select 列,列 from 表名 right join 表名   on表.列名=表.列名(两个列有朱外键关系)

(一般以from后面的表为主表)外连接查询,以主表为中心,返回主表那么多条数据你,即使有的数据可能没有,以null显示

如果要给列的值另去别名(例如要把性别为0或1变成男或女)

u Case   when   列 =值   then ‘别名值’ when   列 =值   then ‘别名值’ end

ADO.Framwork组件:NET.Framework数据库提供 程序专门的数据处理及快速地只进,只能访问数据设计的组件.使用它可以连接数据源,执行命令和检索结果,直接对数据源进行操作,.

DataSet:是专门为独立任何数据源的数据访问而设计的.使用它,可以不必直接和数据源打交道,大批量的独立操作,也可以将数据绑定在空件上.

ADO.Framwork数据提供包含量访问各种数据库的对象,它是和数据类型有关的,目前有四种类型的数据提供程序:

导入命名空间:Using    system.Data.SqlClient   才能使用数据库相关的东西

Connetion

建立数据源的连接功能

Commend

对数据库执行命令(比如sql语句)

DataReader

从数据源中读取只进且只读的数据源

DateAdpter

用数据源填充DateSet并解析更新

导入命名空间:using System   Data.sqlclient

Connection对象::是NET.Framwork数据提供程序核心对象之一,它的作用是建立应用程序与数据库的连接

Connection对象的常用属性和方法

属性

说明

ConnectionString

设置/获取应用程序连接数据库的连接字符串

方法

说明

Void open()

使用connectionString属性打开数据库连接

Viod Close()

关闭数据库连接

建立数据库与应用程序建立联系三步走:

  1. 定义连接字符串(不同的数据库连接,格式不同)
  2. Data Source =服务名;Initial CataLog=数据库; user id =用户名; pwd=密码
  3. 创建Connection对象    使用定义好的字符串创建Connection对象.
  4. 打开与数据库的连接:调用Connection对象的Open() 方法打开数据库连接.   Connection.open();

Try-catch-finally:

Try:一般把容易出现问题的代码的语句放在try结构里面.

Catch:可以补货异常,在catch(exaption e) ------输出e.message

Finally:一定会执行的代码,一般把关闭数据库连接的代码放在里面

例子:SqlCommend commend=new   sqlcommend(string sql, sqlconnection conn);

Commend对象的主要属性和方法

属性

说明

Connection

Commend对象使用数据库连接

CommandText

执行sql语句

方法

说明

IntExcuteNonQuery()

执行不返回的语句,如增,删,改

sqlDataReader ExcuteReader()

执行sql语句,返回dataReader对象,用于查询

Object ExcuteScalar()

返回单个值,,如执行count(*),返回首行的第一列

创建:SringBuffer stb=new StringBuffer();

例子:     Stb.Append(“hello”)---------stb.Append(“world”)

可以节省空间,应为在后面用AppendLine追加字符串的时候不会从新创建空间

String Buffer常用的属性和方法

属性

说明

Capacity

获取或设置可包含在当前对象所分配的内存中的最大字符个数

Lenth

获取当前对象长度

方法

说明

String Budffer AppendFroma(string fromat,object arg0,object arg1)

添加特点格式的字符串

StringBuffer Insert (int index,string Value

在指定的位置插入指定的字符串

String Buffer Append (string value)

在尾部追加字符串

Remove (int startInedx,int length)

移除指定字符串

To.String()

Z转化为字符串格式的字符

Commend对象:ExcuteReader()方法,返回的是dataReader对象,通过DataReader就可以从据库读取多条数据了.

ADO.NET的DataReader对象可以从数据库中检索,只读,只进的数据流,每次从数据源中提取一条记录!

SqlDataReader reader =c ommend.ExcuteReader();

DataReader对象的主要属性和方法

属性

说明

HasRows

判断是否读到记录,reader.HasRows这个会返回一个布尔类型的值

FieldCount

当前的行数

方法

说明

Bool Read()

Reader.reader() 读取数据库中的记录,返回true/false

Void Colse()

关闭DataReader对象

DataReader对象的用法

创建一个DataReader对象需要调用Commend对象的ExcuteReader() 方法,返回值是一个DataReader对象,可以调用Reader()方法读取一行记录

步骤:

  1. 创建Commend对象
  2. 调用Commend的对象ExecuteReader方法返回一个DataReader对象.假设已创建一个Commend对象,名为commend,
  3. 调用Datareader的Reader()方法逐行读取结果集的记录,若能读取到数据,则返回true,否则返回false----- dataReader.Reader();
  4. 读取当前行的某一列的数据.    象数组一样,用方括号一样来读取一列的值,如(Type) Reader[“StudentName”];

例:(string)dataReader[“StudentName”];

  1. 关闭DataReader对象,调用它的Close()方法.

DataReader.Close()

Return comm.ExcuteReader(CommendBEhavior.CloseConnection)

如果在()里面加了CommendBEhavior.CloseConnection如果关闭了这个reader.Close() ,    conn.Close()也将关闭了

EXcuteNonQuery() 此方法是用来进行增,删,改 用comm. EXcuteNonQuery()方法,

15.3:commend对象的ExcuteNonQuery()方法用于执行指定的sql语句,如update,dalete,它返回的是受影响的记录行数,现在使用Commend对象的ExcuteNonquery();

步骤:

  1. 创建Connection对象Conn.
  2. 编写要执行的sql语句.
  3. 创建Commend对象
  4. 执行ExcuteNonquery() 注意:完成操作后不要忘记忘记关闭了conn对象.
  5. 根据ExcuteNonquery() 方法的返回值进行后续的处理,如果返回值小于或等于0,说明没有记录影响!!
到此这篇数据库基础知识笔记(数据库基础知识笔记整理)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 微服务配置中心选型(微服务 配置中心 数据库)2025-09-11 21:00:04
  • iotdb数据库备份(iot数据库选型)2025-09-11 21:00:04
  • 数据库视频讲解(数据库技术视频)2025-09-11 21:00:04
  • oracle数据库安装视频教程(oracle10g数据库安装步骤)2025-09-11 21:00:04
  • 达梦数据库端口默认(达梦数据库开放端口)2025-09-11 21:00:04
  • 数据库视频教程哪个好(数据库视频课程)2025-09-11 21:00:04
  • 外文原文数据库(外文数据库wos)2025-09-11 21:00:04
  • 数据特征处理(数据特征分析的定义)2025-09-11 21:00:04
  • 前端数据埋点实现(前端数据埋点实现方法)2025-09-11 21:00:04
  • druid数据库连接池官网(druid连接池的使用)2025-09-11 21:00:04
  • 全屏图片