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

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是执行快捷键

相关文章:

  • 同为科技智能PDU保障智驾数据处理快速稳定响应
  • 【Rust】包和模块管理,以及作用域等问题——Rust语言基础15
  • [DeepRetrieval] 用DeepSeek-R1-Zero的思路教会模型怎么用搜索引擎找文本
  • python爬虫概述
  • SAP 附件增删改查与文件服务器交互应用
  • [蓝桥杯 2023 省 B] 飞机降落(不会dfs的看过来)
  • SpringBoot入门-(2) Spring IOC机制【附实例代码】
  • 目标检测20年(一)
  • IIS+ASP程序500错误排查及解决方法
  • 分布式的消息流平台之Pulsar
  • 【Jupyter】notebook无法显示tqdm进度条
  • python pytorch tensorflow transforms 模型培训脚本
  • dijkstra算法——47. 参加科学大会
  • VulnHub-matrix-breakout-2-morpheus通关攻略
  • 2025年人工智能、数字媒体技术与社会计算国际学术会议
  • Python字符串格式化全面指南:f-string与常用方法详解
  • pyqt 按钮自动布局方案
  • Hadoop•常用命令
  • LS-NET-006-思科MDS 9148S 查看内存
  • Python:多态,静态方法和类方法
  • 敲定!今年将制定金融法、金融稳定法
  • 一周文化讲座|“不一样的社会观察”
  • 政企研合力,科学监测分析服务消费
  • 技术派|“会飞的手榴弹”:微型无人机将深刻改变单兵作战方式
  • 中国铝业首季“开门红”:净利润超35亿元,同比增加近六成
  • 央行副行长陆磊:国际化程度有效提升是上海国际金融中心建设的一个主要方向