Declare @DayOne DateTime
--按天,今天
SET @DayOne = DATEADD (dd, DATEDIFF (dd, 0, getdate ()), 0)
--按周,周的第一天
SET @DayOne = DATEADD (wk, DATEDIFF (wk, 0, getdate ()), 0)
--按月,月的第一天
SET @DayOne = DATEADD (mm, DATEDIFF (mm, 0, getdate ()), 0)
--连接删除:
Delete a
From tableA a
Left Join TableB b
On a.XXX = b.XXX
Where a.YYY='yyy'
--连接更新:
UPDATE a
SET a.password = 1
FROM sys_user a
--分页查询
SELECT *
FROM (
SELECT ROW_NUMBER () OVER (ORDER BY a.CardCode) AS rownum,
a.CompanyID,
a.CustomerID,
a.CustomerName
FROM vwCRM_Bas_CardCustomerInfo a
WHERE a.Tel = '33' AND a.CustomerName = '包子'
) AS data
WHERE data.rownum BETWEEN '1' AND '10';
--字符串处理
right(str,length) 取右边length长度的子字符串
ltrim() 函数从字符串左侧删除空格或其他预定义字符, 还可以将数字转换成字符。
--由'hk0000000182' --> 0000000183
declare @LogID varchar(20)
declare @maxNum int
set @LogID = 'hk0000000182'
Select @maxNum = right(@LogID,10)
select @maxNum
select right('0000000000'+ltrim(@maxNum+1),10)
--注意以下两句的区别
select right('00000' + ltrim( '003'+ 3), 5) Sequence --> 00006
select right('00000' + ( '003'+ 3), 5) Sequence --> 6
--根据行号生成序号 : 00001, 00002 等
Right('00000' + ltrim(ROW_NUMBER() OVER (ORDER BY WaveBillNo)), 5) Sequence,
拼接列值
Select ID + ',' From UserInfo FOR XML PATH('')
建表例1:(自增,多主键,默认值)
CREATE TABLE CSM_OTH_VipBabyInfo
(
CompanyID INT IDENTITY (1, 1),
NewVipID VARCHAR (20),
OldVipID VARCHAR (20),
ModifyDTM DATETIME DEFAULT getdate () NOT NULL,
CONSTRAINT pk PRIMARY KEY (CompanyID, NewVipID, OldVipID)
)
建表例2:
IF OBJECT_ID ('SD_Inv_BillSign', 'U') IS NULL
BEGIN
CREATE TABLE SD_Inv_BillSign
(
[SignID] INT IDENTITY (1, 1) NOT NULL,
[SignTime] DATETIME DEFAULT GetDate () NOT NULL,
[CompanyID] VARCHAR (99) NOT NULL,
[BillNo] VARCHAR (99) NOT NULL,
[BillTypeID] VARCHAR (99) NOT NULL,
[ShopID] VARCHAR (99) NULL,
[StockID] VARCHAR (99) NULL,
[BoxCount] INT NULL,
[Operator] VARCHAR (99) NULL,
[PersonnelID] VARCHAR (99) NULL,
[Remark] NVARCHAR (2000) NULL
);
--添加聚集索引
CREATE CLUSTERED INDEX IDX_SD_Inv_BillSign_SignTime
ON SD_Inv_BillSign (SignTime);
--添加非聚集索引
CREATE NONCLUSTERED INDEX IDX_SD_Inv_BillSign_BillNo
ON SD_Inv_BillSign (CompanyID, BillNo, BillTypeID);
--添加主键
ALTER TABLE SD_Inv_BillSign ADD CONSTRAINT PK_SD_Inv_BillSign PRIMARY KEY (SignID);
END
GO
带输入输出的存储过程的执行示例:
declare @RetVal int
exec spCSM_ChangeVipCard 'hk','a',@RetVal output
select @RetVal
DECLARE @MaxBatchNo INT = 0;
EXEC spCRM_GetMaxNum @ComCode = @CompanyID, @MaxNum = @MaxBatchNo output
SELECT @MaxBatchNo
1.inner join on 内部连接 两表都满足的组合
2.full outer 全连 两表相同的组合在一起,A表有,B表没有的数据(显示为null),同样B表有,A表没有的显示为(null)
3.A表 left join B表 左连,以A表为基础,A表的全部数据,B表有的组合。没有的为null
4.A表 right join B表 右连,以B表为基础,B表的全部数据,A表的有的组合。没有的为null
5.cross join : 笛卡尔积
DML(data manipulation language):数据操作语言
包括命令:SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。
DDL(data definition language):数据定义语言
通常是数据库管理系统的一部分,用于定义数据库的所有特性和属性,尤其是行布局、列定义、键列(有时是选键方法)、文件位置和存储策略。
包括命令:DROP,CREATE,ALTER,GRANT,REVOKE, TRUNCATE
SQL Server 支持临时表。临时表就是那些名称以井号 (#) 开头的表。如果当用户断开连接时没有除去临时表,SQL Server 将自动除去临时表。临时表不存储在当前数据库内,而是存储在系统数据库 tempdb 内。
临时表有两种类型:
本地临时表
以一个井号 (#) 开头的那些表名。只有在创建本地临时表的连接上才能看到这些表。
全局临时表
以两个井号 (##) 开头的那些表名。在所有连接上都能看到全局临时表。如果在创建全局临时表的连接断开前没有显式地除去这些表,那么只要所有其它任务停止引用它们,这些表即被除去。当创建全局临时表的连接断开后,新的任务不能再引用它们。当前的语句一执行完,任务与表之间的关联即被除去;因此通常情况下,只要创建全局临时表的连接断开,全局临时表即被除去。
分享到:
相关推荐
11. **函数和表达式**:SQL支持多种内置函数,如`DATE_FORMAT`(日期格式化)、`CONCAT`(字符串连接)、`IFNULL`(如果值为NULL则替换)等,以及数学和逻辑表达式。 12. **别名**:使用`AS`关键字可以为列或表设定...
1. **SQL Server基础知识**: - 数据库概念:SQL Server是关系型数据库管理系统(RDBMS),存储和管理结构化的数据。 - 数据库对象:如表、视图、索引、存储过程、触发器等,是数据库中的基本组件。 - T-SQL...
- 数据类型:SQL支持多种数据类型,如整数(INT)、实数(FLOAT或REAL)、字符串(VARCHAR或CHAR)、日期时间(DATE、TIME、DATETIME)等。 - 表的创建与删除:CREATE TABLE语句用于创建新表,DROP TABLE语句用于...
在SQL(Structured Query Language)中,日期类型和常用的函数、空值处理、分页语句以及多表关联是数据库操作的基础且重要的知识点。下面将详细阐述这些内容。 1. **日期类型** SQL中的日期时间类型包括DATE、TIME...
8. **函数与运算符**:SQL包含各种内置函数,如字符串函数、日期/时间函数、数学函数等,以及各种运算符,如算术运算符、字符串运算符和位运算符。 9. **视图(View)**:视图是虚拟表,由一个或多个查询结果组成,...
1. **SQL基础**:了解SQL的基本语法,包括数据类型(如整型、字符串、日期/时间等)、数据操作(INSERT、UPDATE、DELETE)以及数据查询(SELECT语句)。理解如何创建、修改和删除表,以及如何定义主键和外键来建立表...
2. 数据类型:SQL支持多种数据类型,如数值型(INT、DECIMAL)、字符串型(VARCHAR、CHAR)、日期时间型(DATE、DATETIME)等,用于存储不同类型的值。 3. 数据库操作:创建(CREATE DATABASE/CREATE TABLE)、删除...
SQL支持多种数据类型,包括数值型(如INT、FLOAT)、字符串型(VARCHAR、CHAR)、日期/时间型(DATE、TIME、DATETIME)以及布尔型(BOOLEAN)。理解数据类型对于创建表和处理数据至关重要。 二、数据库操作 1. 创建...
为了进一步提升效率,我们可以考虑在创建表时设计更合理的数据结构,如使用XML或JSON类型存储多值字段(如`reader`),这样在查询时可以减少字符串操作,提高效率。 总结来说,面对海量数据,SQL的分页处理需要结合...
3. **数据类型**:介绍SQL中的基本数据类型,如整型(INTEGER)、浮点型(FLOAT)、字符串(VARCHAR)、日期/时间类型(DATE/TIME)等。 4. **查询语句**:详述SELECT语句的使用,包括选择列(SELECT)、从表中选择...
NESTRING函数在Oracle中用于字符串处理,可能用于将字符数组转换为单个字符串,或者在特定分隔符下拆分字符串。 这些是PL/SQL和Oracle教程中的基础概念,对于软件开发人员来说,理解和掌握这些内容是至关重要的,...
这些知识点构成了SQL高级进阶学习的完整体系,覆盖了数据查询、数据处理、多表操作、字符串和数值处理、日期时间函数、报表和数据仓库分析、以及分层查询等多个领域,为数据库管理和数据分析提供了全面的工具和方法...
3. **数据类型**:了解SQL支持的各种数据类型,如整数、浮点数、字符串、日期/时间等,是编写有效查询的基础。 4. **查询语句SELECT**:这是SQL中最常用的语句,用于从数据库中检索数据。学习如何使用SELECT语句...
SQL提供了许多内置函数,如字符串处理、日期时间操作等: ```sql SELECT UPPER(column1), DATE_ADD(date_column, INTERVAL 1 DAY) FROM table_name; ``` 10. **视图创建** 视图是虚拟表,基于一个或多个表的...
9. **动态SQL**:使用EXEC或sp_executesql执行字符串形式的SQL命令,这在构建灵活的查询和处理不确定结构时非常有用。 10. **性能优化**:学习如何通过索引、查询优化器、查询提示和统计信息来提升查询性能,以及...
总的来说,这些文件覆盖了SQL中的多个关键概念,包括存储过程、分页、字符串处理、联合查询、多表统计、日期比较、层级数据处理和性能优化等。这些都是数据库开发和管理中的核心技能,对于任何数据库管理员或SQL...
- `SELECT`:这是SQL中最基础的语句,用于从表中检索数据。例如,`SELECT * FROM table_name;` 可以获取表中的所有列。 - `WHERE`:用于设定查询条件,如 `SELECT * FROM table_name WHERE column_name = value;` ...
11.5 计算字符在字符串中出现的次数 11.6 去除最高分、最低分 11.6.1 去除所有最低、最高值 11.6.2 只去除一个最低、最高值 11.7 与日期相关的应用 11.7.1 计算销售确认日和制单日之间相差的天数 11.7...
13. **数据类型**:SQL有多种数据类型,如整型(INTEGER)、浮点型(FLOAT)、字符串(VARCHAR)、日期/时间(DATE/TIME)、二进制(BLOB)等,用于存储不同类型的值。 14. **安全性**:SQL提供了权限管理,如GRANT...
Squirrel是一个静态类型的SQL构造库,它允许开发者以一种类型安全的方式构建SQL查询,避免了字符串拼接导致的潜在错误。Go-sqrl在Squirrel的基础上,通过优化内部实现,提升了查询构建和执行的速度,这对于大数据...