Database相关笔记----T-SQL/PL-SQL/MySQL/Sql Server等

记一些T-SQL/PL-SQL和Sql Server/MySql以及Linq相关的笔记,备查

 ------------------------------- 割  -------------------------------

Sql Server msdn文档: https://docs.microsoft.com/zh-cn/sql/relational-databases/system-compatibility-views/sys-sysindexes-transact-sql?redirectedfrom=MSDN&view=sql-server-ver15

mysql 文档:https://dev.mysql.com/doc/

  ------------------------------- 割  -------------------------------

Q:获取指定数据库的所有表信息:

MySql:

SELECT
    * 
FROM
    information_schema.TABLES 
WHERE
    table_schema = 'qingcoredb' 

Sql-Server:

SELECT 
    *
FROM 
  [qingcoredb].INFORMATION_SCHEMA.TABLES WHERE
  TABLE_TYPE = 'BASE TABLE'

Q:获取指定表的所有字段信息:

MySql:

SELECT 
   TABLE_SCHEMA ,
   TABLE_NAME,
   COLUMN_NAME,
   DATA_TYPE ,
   COLUMN_COMMENT 
 FROM
   `information_schema`.`COLUMNS` 
 WHERE `TABLE_SCHEMA` = 'qingcoredb' 
   AND `TABLE_NAME` = 'account' ;

sql-server:

SELECT
    *
FROM  
    [qingcoredb].INFORMATION_SCHEMA.COLUMNS
WHERE 
    TABLE_NAME = N'account'

Q:指定字段添加默认值:

 ALTER TABLE account MODIFY IsActived INT(1) DEFAULT 1; 

Q:数据库Upsert/更新或插入:

EF/EF Core:

  EF:

    AddOrUpdate 函数

  EF Core:

    截至版本EF Core 2.2 暂未支持Upsert功能,和实现方法

    参考链接

MySql:

REPLACE INTO SelfTableName( )VALUES( );

Sql Server:

  wait

@@IDENTITY:返回为跨所有作用域的当前会话中的某个表生成的最新标识值。
SCOPE_IDENTITY:返回为当前会话和当前作用域中的某个表生成的最新标识值。
IDENT_CURRENT:返回为某个会话和用域中的指定表生成的最新标识值。

原文地址:https://www.cnblogs.com/linqing/p/10328843.html