-
[综合] 数据库开发及ADO.NET(10)——检索- select col,col2[,*] from Table where ...
1、执行如下代码创建测试数据表: CREATETABLET_Employee(FNumberVARCHAR(20),FNameVARCHAR(20),FAgeINT,FSalaryNUMERIC(10,2),PRIMARYKEY(FNumber)); INSERTINTOT_Employee(FNu...
43
热度 -
[综合] 数据库开发及ADO.NET(11)——数据汇总(聚合函数)
1、SQL聚合函数: MAX(最大值) MIN(最小值) AVG(平均值) SUM(和) COUNT(数量) 2、大于25岁的员工的最高工资: SELECTMAX(FSalary)FROMT_EmployeeWHEREFAge>25 3、最低工资和最高工资: SELECTMIN(FSala...
30
热度 -
[综合] 数据库开发及ADO.NET(12)——数据排序
1、ORDERBY子句位于SELECT语句的末尾,它允许指定按照一个列或者多个列进行排序,还可以指定排序方式是升序(从小到大排列,ASC)还是降序(从大到小排列,DESC)。 2、按照年龄升序排序所有员工信息的列表:SELECT*FROMT_EmployeeORDERBYFAgeASC 3、按照年龄...
76
热度 -
[综合] 数据库开发及ADO.NET(14)——空值处理
1、数据库中,一个列如果没有指定值,那么值就为null,这个null和C#中的null表示“没有”不同,数据库中的null表示“不知道”,而不是表示没有。 2、因此selectnull+1结果是null,因为“不知道”加1的结果还是“不知道”。 3、SELECT*FROMT_EmployeeWHE...
75
热度 -
[综合] 数据库开发及ADO.NET(15)——多值匹配
1、要删除多条记录怎么办?in表示一个集合。 (1)DeleteT_EmployeewhereFIdin(21,22) (2)SELECTFAge,FNumber,FNameFROMT_EmployeeWHEREFAgeIN(23,25,28) 2、范围值: (1)SELECT*FROMT_Empl...
62
热度 -
[综合] 数据库开发及ADO.NET(17)——去掉数据重复
1、执行如下的SQL语句,Alter和Insert单独执行。 ALTERTABLET_EmployeeADDFSubCompanyVARCHAR(20);ALTERTABLET_EmployeeADDFDepartmentVARCHAR(20);UPDATET_EmployeeSETFSubComp...
122
热度 -
[综合] 数据库开发及ADO.NET(18)——联合结果集Union、Union all
一、联合结果集 1、执行以下的代码: CREATETABLET_TempEmployee(FIdCardNumberVARCHAR(20),FNameVARCHAR(20),FAgeINT,PRIMARYKEY(FIdCardNumber)); INSERTINTOT_TempEmployee(FI...
99
热度 -
[综合] 数据库开发及ADO.NET(19)——数字函数:分页的时候用。字符串函数
一、数字函数:分页的时候用 1、执行以下代码: CREATETABLET_Person(FIdNumberVARCHAR(20), FNameVARCHAR(20),FBirthDayDATETIME, FRegDayDATETIME,FWeightNUMERIC(10,2));INSERTINTO...
113
热度 -
[综合] 数据库开发及ADO.NET(20)——日期函数
1、GETDATE():取得当前日期时间。 2、DATEADD(datepart,number,date),计算增加以后的日期。参数datepart为计量单位,可选值见以下列出;参数number为增量,当number为负数时,是在计算减少以后的日期;参数date为待计算的日期。DATEADD(DAY...
99
热度 -
[综合] 数据库开发及ADO.NET(22)——索引Index
1、全表扫描:对数据进行检索(select)效率最差的是全表扫描,就是一条条的找。 2、如果没有目录,查汉语字典就要一页页的翻,而有了目录只要查询目录即可。为了提高检索的速度,可以为经常进行检索的列添加索引,相当于创建目录。 3、创建索引的方式,在表设计器中点击右键,选择“索引/键”→添加→在列中选...
103
热度 -
[综合] 数据库开发及ADO.NET(23)——表连接Join
1、有客户表(T_Customers)和订单表(T_Orders)两个表,客户表字段为:Id、Name、Age,订单表字段为:Id、BillNo、CustomerId,订单表通过CustomerId关联客户表。测试数据如下:(在做表与表的连接查询时,大表在前,小表在后) CREATETABLE[T_...
44
热度 -
[综合] 数据库开发及ADO.NET(24)——子查询、ROW_NUMBER()
1、将一个查询语句做为一个结果集供其他SQL语句使用,就像使用普通的表一样,被当作结果集的查询语句被称为子查询。所有可以使用表的地方几乎都可以使用子查询来代替。 SELECT*FROM(SELECT*FROMT2whereFAge<30) 2、执行以下的SQL: CREATETABLET_R...
75
热度 -
[综合] 数据库开发及ADO.NET(29)——事务-为什么需要事务
一、为什么需要事务 1、如,借钱问题: 假定钱从A转到B,至少需要两步: A的资金减少; 然后B的资金相应增加。 数据: CREATETABLEbank (uNameCHAR(10),--姓名uMoneyMONEY--当前余额 ) GO ALTERTABLEbankADDCONSTRAINTCK_n...
76
热度 -
[综合] 数据库开发及ADO.NET(31)——触发器
1、触发器是一种特殊类型的存储过程,它不同于前面介绍过的一般的存储过程。 2、一般的存储过程通过存储过程名称被直接调用,而触发器主要是通过事件进行触发而被执行。 3、触发器是一个功能强大的工具,在表中数据发生变化时自动强制执行。触发器可以用于SQLServer约束、默认值和规则的完整性检查,还可以完...
80
热度 -
[综合] 数据库开发及ADO.NET(34)——ADO.Net基础、可能遇到的错误
一、ADO.Net基础 1、直接在项目中内嵌mdf文件的方式使用SQLServer数据库(新建→数据→基于服务的数据库)。mdf文件随着项目走,用起来方便,和在数据库服务器上创建数据库没什么区别,运行的时候会自动附加(Attach)。 2、双击mdf文件会在“服务器资源管理器”中打开,管理方式和在M...
89
热度 -
[综合] 数据库开发及ADO.NET(37)——SQL注入漏洞攻击、查询参数、App.Config
一、SQL注入漏洞攻击 1、登录判断:select*fromT_UserswhereUserName=...andPassword=...,将参数拼到SQL语句中。 2、构造恶意的Password:'or'1'='1 if(reader.Read()) {Console.WriteLine("登录成...
50
热度 -
[综合] 数据库开发及ADO.NET(40)——DataSet的更新
1、可以: 更新行row["Name"]="lrj"、 删除行datatable.Rows.Remove()、 新增行datatable.NewRow()。 这一切都是修改的内存中的DataSet,没有修改数据库。 2、可以调用SqlDataAdapter的Update方法将对DataSet的...
24
热度 -
[综合] 数据库开发及ADO.NET(41)——可空数据类型
1、C#中值类型(int、Guid、bool等)是不可以为空的,inti=null是错误的,因此int、bool等这些类型不能表示数据库中的“Null”。因此C#提供了“可空类型”这种语法,只要在类型后加?就构成了可空的数据类型,比如int?、bool?,这样int?i=null就可以了。解决数据库...
69
热度 -
[综合] 数据库开发及ADO.NET(42)——弱类型DataSet的缺点、VS自动生成强类型DataSet、强类型强在哪、更新DataSet
一、弱类型DataSet的缺点 1、只能通过列名引用,dataset.Tables[0].Rows[0][“Age”],如果写错了列名编译时不会发现错误,因此开发时必须要记着列名。 2、intage=Convert.ToInt32(dataset.Rows[0][“Age”]),取到的字段的值是ob...
82
热度 -
[综合] 数据库开发及ADO.NET(43)——增加新的SQL语句、TypedDataSet、强类型DataSet其他(面试:如何优化访问数据库的效率)
一、增加新的SQL语句 1、设计器的Adapter中点右键,选择“添加查询”→“使用SQL语句”,就可以添加多种类型的SQL语句。如果是“SELECT(返回行)”则SQL语句的列必须是对应DataSet类的父集合,生成两个方法:FillBy*和GetBy*,方法名根据查询语句的意义定,比如FillB...
32
热度