版权声明:技术成长的艰难岁月,沧桑的是容颜,不变的是真心,虽然我不是特别喜欢Code ! https://blog.csdn.net/qq_25037705/article/details/81324395
基本操作
- 创建表
--创建新表
CREATE TABLE [CUSTOMERS] (
[ID] INT NOT NULL,
[NAME] VARCHAR(20) NOT NULL,
[AGE] INT NOT NULL,
[ADDRESS] CHAR(25),
[SALARY] DECIMAL(18, 2),
PRIMARY KEY([ID])
);
- 查询表
--查询整个表
SELECT * FROM [dbo].[CUSTOMERS];
--查询指定列
SELECT ID, NAME, SALARY
FROM CUSTOMERS
WHERE SALARY > 2000;
--查询符合条件的指定列
SELECT ID, NAME, SALARY
FROM CUSTOMERS
WHERE NAME = 'Hardik';
--模糊查询整个表
SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';
- 删除数据
--删除表
DROP TABLE [dbo].[table_name];
--删除符合条件的数据
DELETE FROM CUSTOMERS WHERE ID = 6;
- 插入数据
INSERT INTO [CUSTOMERS]([ID], [NAME], [AGE], [ADDRESS], [SALARY])
VALUES(1, 'Ramesh', 32, 'Ahmedabad', 2000.00);
INSERT INTO [CUSTOMERS]([ID], [NAME], [AGE], [ADDRESS], [SALARY])
VALUES(2, 'Khilan', 25, 'Delhi', 1500.00);
INSERT INTO [CUSTOMERS]([ID], [NAME], [AGE], [ADDRESS], [SALARY])
VALUES(3, 'kaushik', 23, 'Kota', 2000.00);
INSERT INTO [CUSTOMERS]([ID], [NAME], [AGE], [ADDRESS], [SALARY])
VALUES(4, 'Chaitali', 25, 'Mumbai', 6500.00);
INSERT INTO [CUSTOMERS]([ID], [NAME], [AGE], [ADDRESS], [SALARY])
VALUES(5, 'Hardik', 27, 'Bhopal', 8500.00);
INSERT INTO [CUSTOMERS]([ID], [NAME], [AGE], [ADDRESS], [SALARY])
VALUES(6, 'Komal', 22, 'MP', 4500.00);
INSERT INTO [CUSTOMERS] VALUES(7, 'Muffy', 24, 'Indore', 10000.00);
- 更新数据
--指定条件
UPDATE [CUSTOMERS] SET [ADDRESS]='Pune' WHERE [ID]=6;
--无指定条件
UPDATE [CUSTOMERS] SET [ADDRESS]='Pune', [SALARY]=3000.00;
事务
--开始事务
BEGIN TRAN
--创建事务节点
SAVE TRANSACTION SAVEPOINT_NAME
--SAVEPOINT命令可以使事务回滚到某个点节点,而不回滚整个事务。
--Savepoint created
--回滚事务
ROLLBACK TRAN
--回滚事务到指定节点
ROLLBACK SAVEPOINT_NAME
索引
--创建索引
CREATE INDEX index_name ON table_name
--单例索引
CREATE INDEX singlecolumnindex
ON customers (ID)
--唯一索引
CREATE UNIQUE INDEX uniqueindex
on customers (NAME)
--复合索引
CREATE INDEX compositeindex
on customers (NAME, ID)
--删除索引
DROP INDEX tablename.index_name
--什么时候避免索引?
--虽然索引旨在提高数据库的性能,但有时应避免使用它们。以下几种情况应重新考虑是否使用索引
--不应在小表上使用索引。
--经常进行大批量更新或插入操作的表不应设置索引。
--不应在可能含大量NULL值的列上使用索引。
--频繁操作的列不应设置索引。
函数
--函数
--输出给定参数的ASCII码值。
Select ASCII ('word')
--输出给定的ASCII码或整数代表的字符。
Select CHAR(97)
--Unicode字符将作为给定整数的输出。
Select NCHAR(300)
--给定搜索表达式的起始位置将作为给定字符串表达式中的输出。
Select CHARINDEX('G', 'KING')
--给定字符串的左边部分,直到指定的字符数作为给定字符串的输出。
Select LEFT('WORLD', 4)
--下面的查询将给出'DIA'字符串3个给定字符串'INDIA'的字符数。
Select RIGHT('INDIA', 3)
--以下查询将给出分别对于给定字符串“WORLD”提供(1,3),(3,3)和(2,3)作为开始和长度值的“WOR”,“DIA”,“ING” ,'INDIA'和'KING'。
Select SUBSTRING ('WORLD', 1,3)
Select SUBSTRING ('INDIA', 3,3)
Select SUBSTRING ('KING', 2,3)
--以下查询将为5提供“HELLO”字符串表达式。
Select LEN('HELLO')
--小写字符串将作为给定字符串数据的输出。
--以下查询将为'SQL Server'字符数据提供'sql server'。
Select LOWER('SQLServer')
--大写字符串将作为给定字符串数据的输出。
--例
--以下查询将为“Sql Server”字符数据提供“SQL SERVER”。
Select UPPER('SqlServer')
--字符串表达式将在删除前导空白后作为给定字符串数据的输出。
--例
--以下查询将为“WORLD”字符数据提供“WORLD”。
Select LTRIM(' WORLD')
--字符串表达式将在删除尾部空格后作为给定字符串数据的输出。
--例
--下面的查询将给出'INDIA'字符数据的'INDIA'。
Select RTRIM('INDIA ')
--在用指定字符替换指定字符的所有出现后,字符串表达式将作为给定字符串数据的输出。
--例
--以下查询将为'INDIA'字符串数据提供'KNDKA'字符串。
Select REPLACE('INDIA', 'I', 'K')
--重复字符串表达式将作为指定次数的给定字符串数据的输出。
--例
--以下查询将为“WORLD”字符串数据提供“WORLDWORLD”字符串。
Select REPLICATE('WORLD', 8)
--反向字符串表达式将作为给定字符串数据的输出。
--例
--下面的查询将给出'WORLD'字符串数据的'DLROW'字符串。
Select REVERSE('WORLD')
--返回四字符(SOUNDEX)代码,以评估两个给定字符串的相似性。
--例
--下面的查询将为'Smith','Smyth'字符串给出'S530'。
Select SOUNDEX('Smith'), SOUNDEX('Sm8th')
--整数值将作为给定的两个表达式的输出。
--例
--以下查询将给出4个“Smith”,“Smyth”表达式。
Select Difference('Smith','Smyth')
--注 -如果输出值为0,表示给定2个表达式之间的相似度较弱或没有相似性。
--字符串来作为的空格指定数量的输出。
--例
--下面的查询将给出'I LOVE INDIA'。
Select 'I'+space(10)+'LOVE'+space(1)+'INDIA'
--字符串表达式将作为给定字符串数据的输出,在从起始字符替换为指定字符的指定长度之后。
--例
--下面的查询将给出'ABCDEFGH'字符串数据的'AIJKFGH'字符串作为给定的起始字符和长度分别为2和4,'IJK'作为指定的目标字符串。
Select STUFF('ABCDEFGH', 2,4,'IJK')
--字符数据将作为给定数字数据的输出。
--例
--以下查询将给定187.37的187.37,基于指定的长度为6和十进制为2。
Select STR(187.369,6,2)
--整数值将作为给定表达式的第一个字符的输出。
--例
--以下查询将为82提供“RAMA”表达式。
Select UNICODE('RAMA')
--给定字符串将作为输出与指定的分隔符。
--例
--以下查询将为给定的“RAMA”字符串指定“RAMA”,因为我们指定双引号作为分隔符。
Select QUOTENAME('RAMA,ii','"')
--需要从指定的“I”位置的给定表达式开始第一个出现的位置。
--例
--下面的查询将给出'INDIA'的1。
Select PATINDEX('I%','INDIA')
--给定表达式将作为具有指定格式的输出。
--例
--下面的查询将给出'星期一,2015年11月16日'的getdate函数按照指定的格式,'D'表示星期名称。
SELECT FORMAT ( getdate(), 'd')
--单个字符串将作为输出,连接给定的参数值后。
--例
--以下查询将给出给定参数的'A,B,C'。
Select CONCAT('A',',','B',',','C')
时间函数
SELECT getdate() as currentdatetime
Select datepart(day, getdate()) as currentdate
SELECT dateadd(day, 10, getdate()) as after10daysdatetimefromcurrentdatetime
Select datediff(hour, 2015-11-16, 2015-11-11) as
differencehoursbetween20151116and20151111
SELECT CONVERT(VARCHAR(19),GETDATE())
SELECT CONVERT(VARCHAR(10),GETDATE(),10)
SELECT CONVERT(VARCHAR(10),GETDATE(),110)
数值函数
Select ABS(-22)
Select ACOS(0)
Select ASIN(0)
Select ATAN(0)
Select ATN2(0, -1)
SELECT salary from customers where salary between 2000 and 8500
Select MIN(salary)from CUSTOMERS
Select MAX(salary)from CUSTOMERS
Select SQRT(4)
Select PI()
Select CEILING(123.25)
Select FLOOR(123.25)
Select LOG(1)