数据库的链接

Sql自连接
自联接用于将表连接到自身(同一个表)。 它对于查询分层数据或比较同一个表中的行很有用。
自联接使用内连接或左连接子句。 由于使用自联接的查询引用同一个表,因此表别名用于为查询中的表
分配不同的名称。
请注意,如果不使用表别名的情况下在查询多次应用同一个表,则会出现报错
以下是将表 T 连接到自身的语法:
SELECT
select_list
FROM
T t1
[INNER | LEFT] JOIN T t2 ON
join_predicate;
SQL
上面查询语句中两次引用表 T 。表别名 t1 和 t2 用于为 T 表分配不同的名称。
staffs 表存储员工信息,如身份证,名字,姓氏和电子邮件。 它还有一个名为 manager_id 的列,用于指定直接管理者。 例如,员工 Mireya 向管理员者 Fabiola 汇报工作,因为 Mireya 的 manager_id列中的值是 Fabiola 。
Fabiola 没有经理,因为它的 manager_id 列是一个 NULL 值。
要获取工作汇报关系,请使用自联接,如以下查询中所示:
SELECT
e.first_name + ’ ’ + e.last_name employee,
m.first_name + ’ ’ + m.last_name manager
FROM
sales.staffs e
INNER JOIN sales.staffs m ON m.staff_id = e.manager_id
ORDER BY
manager;
在这个例子中,两次引用了 staffs 表:一个是员工的 e ,另一个是管理者的 m
连接谓词使用 e.manager_id 和 m.staff_id 列中的值匹配 employee 和 manager 关系。
由于 INNER JOIN 效应, employee 列没有 Fabiola Jackson 。 如果用 LEFT JOIN 子句替换 INNER
JOIN 子句,
Sql全外连接
FULL OUTER JOIN当左表或右表中存在匹配项时,该命令将返回所有行。
以下SQL语句选择所有客户和所有订单:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

注:FULL OUTER JOIN关键字返回左表(Customers)所有行,以及所有来自右表(Orders)的行。如
果“Customers”中的某些行在“Orders”中没有匹配项,或者在“Orders”中的某些行在“Customers”中没有
匹配项,则这些行也将被列出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,整合FreeSql ORM快速制作数据库后台维护页面需要使用到BootstrapBlazor和FreeSql库。具体步骤如下: 1.使用nuget.org进行BootstrapBlazor组件安装,命令如下: ``` dotnet add package BootstrapBlazor ``` 2.使用nuget.org进行FreeSql库安装,命令如下: ``` dotnet add package FreeSql.Provider.Sqlite ``` 3.使用nuget.org进行Newtonsoft.Json安装,命令如下: ``` dotnet add package Newtonsoft.Json ``` 4.在Startup.cs文件中添加以下代码,配置FreeSql服务: ```csharp services.AddFreeSql<SqliteProvider>(op => op .UseConnectionString(FreeSql.DataType.Sqlite, Configuration.GetConnectionString("sqlite")) .UseAutoSyncStructure(true) .UseNoneCommandParameter(true) .UseMonitorCommand(cmd => Console.WriteLine(cmd.CommandText)) .UseLazyLoading(true)); ``` 其中,UseConnectionString方法用于指定数据库连接字符串,UseAutoSyncStructure方法用于自动同步实体结构到数据库,UseNoneCommandParameter方法用于禁用命令参数化,UseMonitorCommand方法用于监控执行的SQL语句,UseLazyLoading方法用于启用延迟加载。 5.在appsettings.json文件中添加以下代码,配置Sqlite连接字符串: ```json "ConnectionStrings": { "sqlite": "Data Source=blog.db" } ``` 其中,"sqlite"为连接字符串的名称,"Data Source=blog.db"为Sqlite数据库文件路径。 6.在需要使用FreeSql服务的类中,通过构造函数注入IFreeSql接口,即可使用FreeSql服务: ```csharp public class BlogService { private readonly IFreeSql _freeSql; public BlogService(IFreeSql freeSql) { _freeSql = freeSql; } public List<Blog> GetBlogs() { return _freeSql.Select<Blog>().ToList(); } } ``` 以上就是使用BootstrapBlazor和FreeSql库进行数据库链接的方法。如果您需要使用其他数据库,只需要更改UseConnectionString方法中的数据库类型即可。如果您需要使用其他ORM框架,也可以参考以上代码进行配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值