C#——数据访问技术

1.数据库基础

数据库是按照数据结构来组织、存储和管理数据的仓库,是存储在一起的相关数据的集合。使用数据库可以减少数据的冗余度,节省数据的存储空间。其具有较高的数据独立性和易扩充性,实现了数据资源的充分共享。计算机系统中只能存储二进制的数据,而数据存在的形式却是多种多样的。数据库可以将多样化的数据转换成二进制的形式,使其能够被计算机识别。同时,可以将存储在数据库中的二进制数据以合理的方式转换为人们可以识别的逻辑数据。

SQL是一种数据库查询和程序设计语言,用于存储数据以及查询、更新和管理关系型数据库系统。SQL的含义是“结构化查询语言(Structured Query Language)”。

(1)数据库的创建

数据库主要用于存储数据及数据库对象(如表、索引)。

在Windows10操作系统的开始界面中找到SQL Server的SQL Server Management Studio,单击打开“连接到服务器”对话框,在该对话框中选择登录的服务器名称和身份验证方式,然后输入登录用户名和登录密码。

单击“连接”按钮,连接到指定的SQL Server服务器,然后展开服务器节点,选中“数据库”节点,右击,在弹出的快捷菜单中选择“新建数据库”命令。

打开“新建数据库”对话框,在该对话框中输入新建的数据库的名称,选择数据库所有者和存放路径,这里的数据库所有者一般为默认。

单击“确定”按钮,即可新建一个数据库。

(2)数据库的删除

只需要在要删除的数据库上右击,在弹出的快捷菜单中选择“删除”命令即可。

(3)数据表的创建

单击数据库名左侧的“+”,打开该数据库的子项目,在子项目中的“表”项上右击,在弹出的快捷菜单中选择“新建表”命令。

在SQL Server管理器中的右边显示一个新表,这里输入要创建的表中所需要的字段,并设置主键。

单击“保存”按钮,弹出“选择名称”对话框。输入要新建的数据表的名称,单击“确定”按钮,即可在数据库中添加一个数据表。

(4)删除数据表

如果要删除数据库中的某个数据表,只需要右击数据表,在弹出的快捷菜单中选择“删除”命令即可。

2.简单SQL语句的应用

(1)查询数据

通常使用Select语句查询数据,Select语句是从数据库中检索数据并查询,并将查询结果以表格的形式返回。

SELECT select_list

[INFO new_table]

FROM table_source

[WHERE search_condition]

[GROUP BY group_by_expression]

[HAVING search_condition]

[ORDER BY order_expression [ASC|DESC]]

其中,

①Select_list:指定由查询返回的列,它是一个逗号分分隔的表达式列表。每个表达式同时定义格式(数据类型和大小)和结果集列的数据来源。每个选择列表表达式通常是对从中获取数据的源表或视图的列的引用,但也可能是其他表达式,列入常量或T-SQL函数。在选择列表中使用“*”表达式指定返回源表中的所有列。

②INTO new_table_name:创建新表并将查询行从查询插入新表中。new_table_name指定新表的名称。

③FROM table_source:指定从其中检索行的表,这些来源可能包括基表、视图和链接表。From子句还可包含连接说明,该说明定义了SQL Server用来在表之间进行导航的特定路径。From子句还可以用在Delete和Update语句中,已定义要修改的表。

④WHERE search_condition:Where子句指定用于限制返回的行的搜索条件。Where子句还用在Delete和Update语句中以定义目标表中要修改的行。

⑤GROUP BY group_by_expression:Group By子句根据group_by_list列中的值将结果集分成组。例如,student表在“性别”中有两个值。Group By Ship Via子句将结果集分成两组,每组对应于ShipVia的一个值。

⑥HAVING search_condition:Having子句是指定组或聚合的搜索条件。逻辑上讲,Having子句从中间结果集对行进行筛选,这些中间结果集是用Select语句中的From、Where或Group By子句创建。Having子句通常与Group By子句一起使用,尽管Having子句前面不必有Group By子句。

⑦ORDER BY order_expression [ASC|DESC]:Order by子句定义结果集中的行排列的顺序。order_list指定组成排序列表的结果集的列。ASC和DESC关键字用于指定行是按升序还是降序排序。Order By之所以重要,是因为关系理论规定除非已经指定Order By,否则不能假设结果集中的行带有任何序列。如果结果集行的顺序对于Select语句来说很重要,那么在该语句中就必须使用Order By子句。

 例:数据库db_CSharp的数据表tb_test中存储了一些商品的信息,使用Select语句查询数据表tb_test中商品的新旧程度为“二手”的数据

代码如下

select * from tb_test where 新旧程度=’二手’

如果想要在数据库中查找空值,那么其条件必须为where 字段名=’’ or字段名=null

(2)添加数据

使用Insert语句向数据表中添加数据,语法如下:

INSERT[INTO]

{table_name WITH(<table_hint_limited>[…n])

|view_name

|rowswt_function_limited

}

{[(column)list]

{VALUES

      ({DEFAULT|NULL|expression}[,..n])

      |derived_table

      |execute_statement

}

}

|DEFAULT VALUES

其中,

①[INTO]:一个可选的关键字可以将它用在INSERT和目标表之间。

②table_name:将要接收数据的表或table变量的名称

③view_name:视图的名称及可选的别名。通过view_name来引用的视图必须使可更新的

④(column_list):要在其中插入数据的一列或多列的列表。必须用圆括号将clumn_list括起来,并且用逗号进行分隔

⑤VALUES:引入要插入的数值的列表,对于column_list(如果已经指定)中或者表中的每个列,都必须有一个数据值。必须用圆括号将值的列表括起来。如果VALUES列表中耳朵值、表中的值与表中列的顺序不相同,或者未包含表中所有列的值,那么必须使用column_list明确地指定存储每个传入值的列

⑥DEFAULT:前置SQL Server装载为列定义的默认值。如果杜宇某列并不存在默认值,并且该列允许NULL,那么就插入NULL。

⑦expression:一个常量、变量或表达式。表达式不能包含Select或Execute语句

⑧derived_table:任何有效的Select语句,它将返回装载到表中的数据行

需要注意以下几点:

a.插入项的顺序和数据类型必须与表或视图中列的顺序和数据类型相对应。

b.如果表中某列定义为不允许NULL,则插入数据时,该列必须存在合法值。

c.如果某列是字符型或日期型数据类型,则插入的数据应该加上单引号。

例子:使用Insert语句,向数据表tb_test中添加一条新的商品信息,代码如下:

insert into tb_test(商品名称,商品价格,商品类型,商品产地,新旧程度) values(‘洗衣机’,890,‘家电’,’进口’,’全新’)

(3)更新数据

使用Update语句更新数据,可以修改一个列或者几个列中的值,但一次只能修改一个表。

语法如下:

UPDATE

{table_name WITH(<table_hint_limited>[,…n])

|view_name

|rowset_function_limited

}

SET

{column_name={expression|DEFAULT|NULL}

|@variable=expression

|@variable=column=expression}[,...n]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值