标签:检验 种子 trim 下拉 输入 日志 外链 忘记 tar
实体:就是客观存在的事物
记录:每一行对应的实体,在数据库中,通常叫做记录
数据表:不同类型组织在一起,形成了数据库表,也可以说表示实体的集合,用来存储数据。
数据库:并不是简单地存储这些实体的,还有实体的关系,这种关系要数据库来表示,关系是数据库的一部分
数据库管理系统:是系统软件,由一个相互关联的数据集合和一组访问数据构成。这个数据集合称为数据库,包含了很多有用信息,数据库管理系统是基本目标是提供一个有效的存储数据的环境,维护数据库。访问数据库信息。
数据库系统:是一个实际可运行的系统,可以对系统数据存储,维护,信用!
数据冗余:数据重复现象
数据完整性:指数据库数据的准确性
新建数据库连接:文件----连接对象资源管理器
服务器下拉框选择已经连接的服务器
选择身份验证方式
安全性—登录名----新建登录名
输入密码,登录名-指定数据库
赋予操作限权
数据库文件
事物日志文件
文件组
步骤:选择新建数据库---输入名字—设置参数
分离和附加数据库
分离:右击数据库---任务 ---分离
附加:数据库右击—附加----然后添加
备份和还原:
备份:任务---备份----填写数据
还原:数据库右击—还原---目标数据库---设置位置
属性—选项----自动收缩
检验每行数据是否符合要求
检验每列数据是否符合要求
实体完整性:要求每行数据都反应不同的实体,不能存在相同的数据行 通过索引,唯一约束,主键约束或标识列可以实现实体完整性
域完整性:域完整性指给指定列输入有效性。
引用完整性约束:在输入或删除时,引用完整性约束保持表之间的定义关系
自定义完整性约束:用户自定义完整性来定义的规则
主键:如果在存储了很多行时,如何判断表中没有重复的数据行,这时需要的列,这个列的值用来标识表中的每一行,用于强制表实体完整性,这样的列就是主键。
一个表只能一个主键,并且不允许为空
外键:外键就是用来和主键建立引用关系,相对主表,就是从表的列,这个值要求与主键想对应,外键用来引用完整性,一个表可以有多个外键。
步骤:单机数据库的表节点—奖显示数据表
二进制数据类型 |
用来储存非字符的数据 |
Binary。Varbinary。image |
固定长度二进制 可变长度二进制 储存图像 |
文本数据类型 |
字符数据包括任意字母,符号或数字 |
Char,varchar,nchar,nvarchar,text,ntext |
固定长度非unicode字符 可变长度非unicode字符 固定长度unicode字符 可变长度unicode字符 储存长文本信息 储存可变长度的文本
|
日期和时间数据类型 |
用于储存日期 |
Datetime |
日期 |
数字数据类型 |
数字,正数,负数,分数 |
Int,smallint,tinyint,bigint,float,real |
整数,浮点型 |
货币数据类型 |
储存货币值 |
Money |
金钱 |
Bit数据类型 |
是/否 |
Bit |
布尔类型 |
数据库书否允许为空是一项约束,如果该列为空,则输入这行的时候,这一项可以不输入
选择列---右击---然后设置主键(有个钥匙说明成功)
默认值:在不输入的情况下,指点的值!!
添加了标识列,就可以实现自增,要有种子和标识增量
在设计表的时候,可以添加关系(右键)
单击表和列最右侧,弹出建立关系,及主键对话框,
选择表,主键列对应的外键列,单击确定,并保存结构,这样就确立了关系
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 条件]
语法:DELETE 【from】 表名 【where 条件】
数据在接收查询请求时,可以理解为逐行判断,判断是否符合查询条件,如果符合,就抽取出来,形成一个类似于表的结构,这就是记录集
语法: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
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
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(列名) 返回一个值,返回的是此列名的所有值的和
AVG(列名) 返回的是此列的所有的值的平均值
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显示
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数据提供程序核心对象之一,它的作用是建立应用程序与数据库的连接
属性 |
说明 |
ConnectionString |
设置/获取应用程序连接数据库的连接字符串 |
方法 |
说明 |
Void open() |
使用connectionString属性打开数据库连接 |
Viod Close() |
关闭数据库连接 |
建立数据库与应用程序建立联系三步走:
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对象需要调用Commend对象的ExcuteReader() 方法,返回值是一个DataReader对象,可以调用Reader()方法读取一行记录
步骤:
例:(string)dataReader[“StudentName”];
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();
步骤:
标签:检验 种子 trim 下拉 输入 日志 外链 忘记 tar
原文地址:http://www.cnblogs.com/bdqnwangchao/p/7598422.html