数据库SQL最全最简单讲解

一、什么是SQL

SQL 是用于访问和处理数据库的标准的计算机语言。
SQL 可与数据库程序协同工作,比如 MS AccessDB2InformixMS SQL ServerOracleSybase 以及其他数据库系统。但是由于各种各样的数据库出现,导致很多不同版本的 SQL 语言,为了与 ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的关键词(比如 SELECTUPDATEDELETEINSERTWHERE 等等),这些就是我们要学习的SQL基础。

二、SQL连接

SQL连接

ADO.NET提供了多种方式来连接和操作数据库,例如使用SqlConnection(针对SQL Server),OleDbConnection(针对OLE DB),OdbcConnection(针对ODBC),MySqlConnection(针对MySQL),等等。以下是使用SqlConnection连接SQL Server数据库的基本步骤:

使用之前需要添加类库,引用命名空间 using System.Data.SqlClient;

string connectionString = @"Server=你的服务器地址;Database=你的数据库名称;User Id=你的用户名;Password=你的密码;";

using (SqlConnection connection = new SqlConnection(connectionString))

{

    try

    {

        connection.Open(); // 打开连接

        Console.WriteLine("数据库连接成功!");

        // 在这里执行你的数据库操作,例如查询、插入等

    }

    catch (Exception ex)

    {

        Console.WriteLine("数据库连接失败:" + ex.Message);

    }

}

三、SQL基础语言学习

1.创建表  Crete Table

string createTableSQL = @"

                      IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[你的表名]') AND type in (N'U’))

                      BEGIN

                               CREATE TABLE [dbo].[你的表名] (

                               [Id] INT PRIMARY KEY IDENTITY(1,1),

                               [Name] NVARCHAR(50),

                               [Age] INT

                               );

                      END";

using (SqlCommand command = new SqlCommand(createTableSQL, connection))

   {

                    command.ExecuteNonQuery();

                    Console.WriteLine("表已成功创建。");

   }

2.INSERT – 插入数据

using (SqlConnection connection = new SqlConnection(connectionString))

{

    connection.Open();

    // 创建参数化SQL语句

    string sql = "INSERT INTO TableName (Column1, Column2) VALUES (@Value1, @Value2)";

    // 创建参数对象并设置参数值

    SqlCommand command = new SqlCommand(sql, connection);

    command.Parameters.AddWithValue("@Value1", value1);

    command.Parameters.AddWithValue("@Value2", value2);

    // 执行SQL语句

    command.ExecuteNonQuery();

}

3. SELECT – 查询数据

  string sql = "SELECT COUNT(*) FROM table_name";

 SQLiteCommand command = new SQLiteCommand(sql, conn);

                    SQLiteDataReader reader = command.ExecuteReader();

4.INSERT – 插入数据

 string sql = "INSERT INTO 你的表名 (1, 2, 3) VALUES (@Value1, @Value2, @Value3)";

 using (SqlCommand command = new SqlCommand(sql, connection))

                {

                    command.Parameters.AddWithValue("@Value1", "1");

                    command.Parameters.AddWithValue("@Value2", "2");

                    command.Parameters.AddWithValue("@Value3", "3");

                    int result = command.ExecuteNonQuery();

                }

5.DISTINCT – 去除重复值

string sql = "SELECT DISTINCT column1, column2 FROM table_name"; // 或者使用其他去重方法如GROUP BY

            using (SqlCommand cmd = new SqlCommand(sql, con))

            {

                using (SqlDataReader reader = cmd.ExecuteReader())

                {

                    while (reader.Read())

                    {

                        Console.WriteLine($"{reader[0]}, {reader[1]}"); // 输出或处理结果

                    }

                }

            }

6.AND & OR 运算符

 string sql = "string query = "SELECT * FROM 表名称 WHERE 列 运算符 值 AND 列 运算符 值";

 string sql = "string query = "SELECT * FROM 表名称 WHERE 列 运算符 值 OR 列 运算符 值";

7. ORDER BY  排序

string sql = "SELECT * FROM 表名称 ORDER BY 1,2 DESC”

8. UPDATE – 更新数据

string sql = "UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

9. DELETE – 删除数据

string sql = "DELETE FROM 表名称 WHERE 列名称 =

10. TRUNCATE TABLE – 清除表数据

string sql = "TRUNCATE TABLE 表名称

11. DROP TABLE – 删除表

string sql = "DROP TABLE 表名称";

三、SQL高级语言学习

1. LIKE – 查找类似值

string sql = "SELECT 列名/(*) FROM 表名称 WHERE 列名称 LIKE ";

2. IN – 锁定多个值

 string sql = "SELECT 列名/(*) FROM 表名称 WHERE 列名称 IN (1,2,3)";

3. BETWEEN – 选取区间数据

string sql = "SELECT 列名/(*) FROM 表名称 WHERE 列名称 BETWEEN 1 AND 2”

4. AS – 别名

通过使用 SQL,可以为列名称和表名称指定别名(Alias),别名使查询程序更易阅读和书写。

string sql = "SELECT 列名称/(*) FROM 表名称 AS 别名

5. JOIN – 多表关联  

 JOIN 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

 string sql = "select 列名

                      from A

                      INNER|LEFT|RIGHT|FULL JOIN B

                      ON A主键列 = B外键列

JOIN: 如果表中有至少一个匹配,则返回行

INNER JOIN: 内部连接,返回两表中匹配的行

LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行

6. UNION – 合并结果集    操作符用于合并两个或多个 SELECT 语句的结果集。

string sql = "SELECT 列名 FROM A UNION SELECT 列名 FROM B";

7. NOT NULL – 非空      NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。

 string sql = "CREATE TABLE ( int NOT NULL )";

8. VIEW – 视图          视图总是显示最近的数据。每当用户查询视图时,数据库引擎通过使用 SQL 语句来重建数据

string sql = "CREATE OR REPLACE VIEW 视图名 AS SELECT 列名 FROM 表名 WHERE 查询条件

四、SQL常规函数学习

1.AVG – 平均值

string sql = “SELECT AVG(列名) FROM 表名";

2.  COUNT – 汇总行数

 string sql = "select count(*) from persons";

3. MAX – 最大值

string sql = "SELECT MAX(列名) FROM 表名

4.  MIN – 最小值

string sql = "SELECT MIN(列名) FROM 表名

5.  SUM – 求和

string sql = "SELECT SUM(列名) FROM 表名

6.  GROUP BY – 分组

string sql = "SELECT 列名A, 统计函数(列名B) FROM 表名 WHERE 查询条件 GROUP BY 列名A

7.HAVING – 句尾连接        SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。

  string sql = “SELECT 列名A, 统计函数(列名B) FROM table_name WHERE 查询条件 GROUP BY 列名A HAVING 统计函数(列名B) 查询条件";

8.  UCASE/UPPER – 大写

 string sql = "select upper(列名) from 表名";

9. LCASE/LOWER – 小写

string sql = "select lower(列名) from 表名

10.  LEN/LENGTH – 获取长度

string sql = "select length(列名) from 表名

11.  ROUND – 数值取舍

string sql = "select round(列名,精度) from 表名

12.  NOW/SYSDATE – 当前时间

string sql = "select sysdate from 表名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值