C# 数据操作系列 - 1. SQL基础操作

简介:

C# 数据操作系列 - 1. SQL基础操作

0.前言
前篇介绍了一些数据库的基本概念和以及一些常见的数据库,让我们对数据库有了一个初步的认识。这一篇我们将继续为C#数据操作的基础填上一个空白-SQL语句。

SQL(Structured Query Language,结构化查询语言)是一种特定的编程语言,用于管理数据库系统,操作数据甚至编写一些程序。

当然,一方面因为时间问题,一方面因为各大数据库的区别(当然了,还有就是个人对SQL研究并不是那么深)所以这一篇就从SQL的基本操作入手,带领大家一起看看SQL的世界。

  1. SQL的分类
    在SQL的世界里,被分割为两个部分:DML(Data Manipulation Language 数据操纵语言)、DDL(Database Definition Language 数据定义语言)。当然,也有很多其他的分法,这里参照了机械工业出版社出版的《计算机科学丛书- 数据库系统概念》。

1.1 DML
数据操纵语言,用户可以凭此来访问或者操纵那些被结构化存储起来的数据。DML提供了以下功能:

对存储在数据库的数据进行检索(select)
在数据库中添加新的数据(insert)
修改数据库中的数据(update)
删除数据库中的某些数据(delete)
简单的概括起来就是增删改查,对于开发而言这是一项枯燥乏味的工作,当然也是每个程序必不可少的工作。如果你见到这个词:crud,不要诧异,这是开发对增删改查的一种缩写(create,read,update,delete)。

在技术的演变过程中,为了更快更好的增删改查,有一些大牛开发出了一系列的ORM框架,比如C#里最出名的EntityFramework、与Hibernate同源的NHibernate等等。

1.2 DDL
数据定义语言,用户可以用来创建数据库、修改数据库属性、删除数据库,新建表、视图,修改表、视图,删除表、视图等。与DML不同的是,DDL操作的对象从数据转变成了承载数据的实体或者与操作数据的实体。

还有与DML不同的一点是,DDL更多的会使用 create、alter、drop等关键字(分别用来 创建、修改、销毁)。

1.3 方言
如今的城市人们来自五湖四海,有的人用普通话,有的人还是一口流利的家乡话。与之相同的就是在数据库这个江湖里,各大门派都在标准SQL里添加了自己的东西,让SQL成了一个操持着五湖四海的方言的大家族。比如说微软的Transcat-SQL和PL/SQL。

  1. 一些简单操作
    这里先简单介绍一下通用SQL下的操作:

2.1 创建数据库
create database test;
这是一个简单的创建数据库的SQL语句,这是标准SQL的一部分。效果就是创建一个名字为test的数据库,字符集等属性是系统的默认值。

当然,在SQL Server里可以通过以下方式指定字符集:

create database 数据库名 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; -- 使用gbk
CREATE DATABASE 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; -- 使用utf8
这是在开发过程中最常用的创建数据库方式。

2.2 创建表
数据表是数据库里最重要的一个实体,我们大概演示一下如何通过sql语句创建一个表:

create table demo
(

[key] int identity primary key ,
[name] varchar(20)

)
go
SQL 创建表的格式如下:

create table <表名>
(

[属性名] <类型>  [params...配置]

)
如果有第二个属性,则在第一个之后添加一个逗号,然后继续按照格式声明。

其中 属性名和类型是必须的,配置则可有可无。

常见配置项:

identity 表示该列是个自增列,一般是起始1,增长步长为1
primary key 表示该列是主键列,只能有一个主键
not null 表示该字段非空,如果是空值进来则会报错
unique 表示该字段的值不能出现重复
而数据类型则因为数据库不同会有一些细微的差别,所以这里就不错过多介绍了。

2.3 查询
一个简单的查询:

select * from demo;
表示查询该表的所有数组。

然后更进一步,可以限制查询条件:

select * from demo where <条件>;
注意一下这里的条件里的等值判断用的是一个等号,而不像开发语言里用的是双等号。

这时候发现我们用不了那么多的字段,然后筛选出要显示的字段:

select <字段01>,<字段02>,<字段03> from [表名] where <条件>
这里简单介绍一下查询,当然还有很多没有一一介绍,在后续的章节会把这部分补齐的。

2.4 添加数据
在查询之前,我们得先保证数据表里有数据,所以我们看看如何插入数据吧。

插入单条记录:

insert into 表名 values('值1','值2','值3')
在表名后面跟括号,括号内写入要插入值的字段,然后values关键字后面用括号包裹起来的一组值便是要插入的值。插入值要与字段名一一对应。

如果要插入多条记录呢?

insert into 表名 values('值1','值2','值3'),('值1','值2','值3')
如果需要插入多条的话,将数据用括号包裹起来,然后依次跟在values后面。

2.5 修改数据
当我们发现插入的数据有问题的时候或者因为业务的进行,数据库表里的数据需要更新,这时候我们可以参照以下方式写自己的sql:

update [表名]
set <字段1> = <值1>
如果需要更新多个字段,可以在更新字段后面添加一个逗号,然后跟在后面,简单实例:

update AdditionalService
set storeid = 1 , name = '23'
目前所以的更新都是全表更新,当然我们一样可以使用 where来限制。

2.6 删除数据
删除数据的关键字是delete,所以删除的写法是:

delete [表名]
where <条件>
如果不设置where 条件,则删除的是全表数据。

2.7 删除表
删除表的操作:

drop table [表名]
这个操作会把表结构和表里的数据都删除。

3.总结
这一篇大概介绍了SQL的基本用法,开发过程中的SQL基本够用了。后续会随着文章内容逐步填补未介绍的部分。

原文地址https://www.cnblogs.com/c7jie/p/12862161.html

相关文章
|
19天前
|
SQL 存储 关系型数据库
一文搞懂SQL优化——如何高效添加数据
**SQL优化关键点:** 1. **批量插入**提高效率,一次性建议不超过500条。 2. **手动事务**减少开销,多条插入语句用一个事务。 3. **主键顺序插入**避免页分裂,提升性能。 4. **使用`LOAD DATA INFILE`**大批量导入快速。 5. **避免主键乱序**,减少不必要的磁盘操作。 6. **选择合适主键类型**,避免UUID或长主键导致的性能问题。 7. **避免主键修改**,保持索引稳定。 这些技巧能优化数据库操作,提升系统性能。
215 4
一文搞懂SQL优化——如何高效添加数据
|
1月前
|
SQL 数据库 C#
C# .NET面试系列十一:数据库SQL查询(附建表语句)
#### 第1题 用一条 SQL 语句 查询出每门课都大于80 分的学生姓名 建表语句: ```sql create table tableA ( name varchar(10), kecheng varchar(10), fenshu int(11) ) DEFAULT CHARSET = 'utf8'; ``` 插入数据 ```sql insert into tableA values ('张三', '语文', 81); insert into tableA values ('张三', '数学', 75); insert into tableA values ('李四',
61 2
C# .NET面试系列十一:数据库SQL查询(附建表语句)
|
1月前
|
开发框架 .NET C#
C#数据去重的这几种方式,你知道几种?
C#数据去重的这几种方式,你知道几种?
|
1月前
|
SQL 数据可视化 数据处理
使用SQL和Python处理Excel文件数据
使用SQL和Python处理Excel文件数据
52 0
|
25天前
|
SQL C# 数据库
C# 读取多条数据记录导出到 Word 标签模板
C# 读取多条数据记录导出到 Word 标签模板
|
25天前
|
安全 数据处理 C#
C# Post数据或文件到指定的服务器进行接收
C# Post数据或文件到指定的服务器进行接收
|
29天前
|
SQL 安全 数据库
第三章用sql语句操作数据
第三章用sql语句操作数据
10 0
|
1月前
|
SQL 数据库 数据库管理
SQL中如何添加数据:基础指南
SQL中如何添加数据:基础指南
24 2
|
1月前
|
数据采集 存储 C#
抓取Instagram数据:Fizzler库带您进入C#程序的世界
在当今数字化的世界中,数据是无价之宝。社交媒体平台如Instagram成为了用户分享照片、视频和故事的热门场所。作为开发人员,我们可以利用爬虫技术来抓取这些平台上的数据,进行分析、挖掘和应用。本文将介绍如何使用C#编写一个简单的Instagram爬虫程序,使用Fizzler库来解析HTML页面,同时利用代理IP技术提高采集效率。
抓取Instagram数据:Fizzler库带您进入C#程序的世界
|
2月前
|
SQL 数据库 数据安全/隐私保护
sql注入碰到加密数据怎么办
sql注入碰到加密数据怎么办
19 1