sql基本知识备份

版权声明:技术成长的艰难岁月,沧桑的是容颜,不变的是真心,虽然我不是特别喜欢Code ! https://blog.csdn.net/qq_25037705/article/details/81324395

基本操作


  1. 创建表
--创建新表
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])
);
  1. 查询表
--查询整个表
    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%'; 
  1. 删除数据
--删除表
     DROP TABLE [dbo].[table_name];
--删除符合条件的数据
    DELETE FROM CUSTOMERS WHERE ID = 6;
  1. 插入数据
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);
  1. 更新数据
--指定条件
    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'字符串作为给定的起始字符和长度分别为24'IJK'作为指定的目标字符串。

    Select STUFF('ABCDEFGH', 2,4,'IJK') 


--字符数据将作为给定数字数据的输出。

--例
--以下查询将给定187.37187.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) 

猜你喜欢

转载自blog.csdn.net/qq_25037705/article/details/81324395