当前位置: 首页 > article >正文

SqlServer Sql学习随笔

环境

SqlServer+SSMS+C#

查询

--查询来自数据库[MyTestDb]的[dbo]的表[testTable]前1000条数据

--dbo 代表 数据库所有者(Database Owner),在 SQL Server 里,它是一个模式(Schema)。
--**模式(Schema)**是数据库中的一个逻辑分组,用来组织和管理数据库对象(表、视图、存储过程等)。
--默认情况下,所有表都会属于 dbo,除非你显式指定其他模式。

--[]是可选的,如果你有一个列名叫 user,那么 SELECT user FROM testTable 可能会报错,因为 USER 是
--SQL 关键字。此时,你需要用方括号 [] 或双引号 "" 进行转义
--SELECT [user] FROM testTable;
--如果你有一个表名 test Table(中间有空格),必须用方括号括起来
--SELECT * FROM [test Table];

--可以使用select * 来查询所有的列

SELECT TOP (1000) [uSerID]
      ,[username]
      ,[userAge]
  FROM [MyTestDb].[dbo].[testTable]

插入

--插入表的(列名,列名,列名)values()
insert into [testTable](userID,userName,UserAge) values('106','lb','36')

删除

--这将删除该表的全部数据
delete from testTable

更改

--更新 表名 设置 某列
update testTable set userAge='18'

选择语句

--先from,然后where最后select
select * from testTable where userAge='37'
select * from testTable where userName='zs' and userAge='18'

使用C#连接

使用控制台连接数据库

using System;
using System.Data;
using System.Data.SqlClient;

namespace TestConnectSqlServer
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            // ADO.NET 中用于连接 SQL Server 的类,
            SqlConnection sqlConnection = new SqlConnection();

            //设置连接字符串,指定要连接的 SQL Server 实例和数据库
            //Server=(local):连接到本地 SQL Server 实例(默认实例)。
            //Database=MyTestDB:指定要操作的数据库为 MyTestDB。
            //Trusted_Connection=True:使用 Windows 身份验证(当前 Windows 用户登录)。
            sqlConnection.ConnectionString = "Server=(local);Database=MyTestDB;Trusted_Connection=True;";

            //显示打开与数据库的连接
            sqlConnection.Open();

            //创建sql命令对象
            SqlCommand sqlCommand = new SqlCommand();

            //指定命令使用的连接对象
            sqlCommand.Connection = sqlConnection;

            //设置要执行的sql查询
            sqlCommand.CommandText = "select * from [dbo].[testTable]";

            //SqlDataAdapter 对象,用于从数据库中获取数据并填充到 DataSet 中。
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);

            //SelectCommand 属性指定用于查询数据的 SQL 命令
            sqlDataAdapter.SelectCommand = sqlCommand;

            //DataSet 对象,用于存储从数据库中获取的数据。
            //DataSet 是一个可以包含多个表的容器,而 Tables 属性是一个集合
            DataSet ds = new DataSet();

            // Fill 方法将查询结果填充到 DataSet 中。这句显示执行sql
            sqlDataAdapter.Fill(ds);

            //关闭与 SQL Server 的连接。
            sqlConnection.Close();
            //使用 SqlDataAdapter.Fill(ds) 方法填充 DataSet 时,查询结果会被存储到 DataSet 的第一个表(Tables[0])中
            DataTable dt = ds.Tables[0];
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                Console.WriteLine(dt.Rows[i]["userID"].ToString() + dt.Rows[i]["UserName"].ToString() +
                                  dt.Rows[i]["userage"].ToString());
            }
        }
    }
}
using System;
using System.Data;
using System.Data.SqlClient;

namespace TestConnectSqlServer
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            // ADO.NET 中用于连接 SQL Server 的类,
            SqlConnection sqlConnection = new SqlConnection();

          
            sqlConnection.ConnectionString = "Server=(local);Database=MyTestDB;Trusted_Connection=True;";

            //显示打开与数据库的连接
            sqlConnection.Open();

            //创建sql命令对象
            SqlCommand sqlCmd_insert = new SqlCommand();

            //指定命令使用的连接对象
            sqlCmd_insert.Connection = sqlConnection;

            string insertSql =
                @"INSERT INTO [dbo].[testTable] ([userId],[userName],[userAge]) VALUES ('909','李白','999');";
            sqlCmd_insert.CommandText = insertSql;
            var line = sqlCmd_insert.ExecuteNonQuery();
            Console.WriteLine(line);
            sqlConnection.Close();
        }
    }
}
  public class SqlHelper
    {
        public DataTable Select(string sql)
        {
            // ADO.NET 中用于连接 SQL Server 的类,
            SqlConnection sqlConnection = new SqlConnection();

            sqlConnection.ConnectionString = "Server=(local);Database=MyTestDB;Trusted_Connection=True;";

            //显示打开与数据库的连接
            sqlConnection.Open();

            //创建sql命令对象
            SqlCommand sqlCommand = new SqlCommand();

            //指定命令使用的连接对象
            sqlCommand.Connection = sqlConnection;

            //设置要执行的sql查询
            sqlCommand.CommandText = "select * from [dbo].[testTable]";

            //SqlDataAdapter 对象,用于从数据库中获取数据并填充到 DataSet 中。
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);

            //SelectCommand 属性指定用于查询数据的 SQL 命令
            sqlDataAdapter.SelectCommand = sqlCommand;

            //DataSet 对象,用于存储从数据库中获取的数据。
            //DataSet 是一个可以包含多个表的容器,而 Tables 属性是一个集合
            DataSet ds = new DataSet();

            // Fill 方法将查询结果填充到 DataSet 中。这句显示执行sql
            sqlDataAdapter.Fill(ds);

            //关闭与 SQL Server 的连接。
            sqlConnection.Close();
            //使用 SqlDataAdapter.Fill(ds) 方法填充 DataSet 时,查询结果会被存储到 DataSet 的第一个表(Tables[0])中
            DataTable dt = ds.Tables[0];
            return dt;
        }

        public int EditData(string sql)
        {
            SqlConnection sqlConnection = new SqlConnection();

            sqlConnection.ConnectionString = "Server=(local);Database=MyTestDB;Trusted_Connection=True;";

            //显示打开与数据库的连接
            sqlConnection.Open();

            //创建sql命令对象
            SqlCommand sqlCommand = new SqlCommand();

            //指定命令使用的连接对象
            sqlCommand.Connection = sqlConnection;

            sqlCommand.CommandText = sql;

            int line = -1;
            try
            {
                line = sqlCommand.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
            finally
            {
                sqlConnection.Close();
            }

            return line;
        }

        public void ForeachData(DataTable dt)
        {
            foreach (DataRow row in dt.Rows)
            {
                Console.WriteLine(
                    $"userID:{row["userID"]},userPassword:{row["userPassword"]},userName:{row["userName"]},userAge:{row["userAge"]},userGender:{row["userGender"]}");
            }
        }
    }

其他

1.如果遇到不应该的报错,如提示你的表对象名无效,这可能是缓存异常(Ctrl+shift+r)清理下缓存即可

2.可以选择一些行,这将只执行被选择的语句,不选则全部执行

3.F5是执行快捷键


http://www.kler.cn/a/592734.html

相关文章:

  • Apache Tomcat漏洞公开发布仅30小时后即遭利用
  • SQL Server数据库简介及应用
  • RNN及其变体
  • Deepseek r1 本地部署
  • 一键批量DWG_DXF文件互转——CAD c#插件实现(dwg转dxf dxf转dwg)
  • 物联网为什么用MQTT不用 HTTP 或 UDP?
  • 关于QMetaObject::invokeMethod的作用和用法
  • 2025火狐插件被禁用解决方案 could not be verified for use in Firefox and has been disabled
  • php 高性能,高并发,有哪些框架,扩展,推荐一下,或者技术的实现有哪些
  • Weblogic未授权远程命令执行漏洞复现
  • 【内付相关主题会议进行参考】智能技术应用前沿:算法、感知与控制的学术支点与产业衔接
  • 配置固定ip绕过ip限制
  • 动平衡仿真程序设计
  • JVM 的类加载机制原理
  • Flask应用调试模式下外网访问的技巧
  • 类和对象C++
  • keepalived应用
  • 2025年【安全员-C证】新版试题及安全员-C证理论考试
  • HTTP请求方法详解:GET、POST、PUT在微信小程序中的应用
  • milvus实战-基于Ollama+bge-large-zh搭建嵌入模型,fastAPI提供http服务将PDF文件写入milvus向量库