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