2023年6月21日发(作者:)

⿊马程序员SQL学习Microsoft SQL Server:CREATE DATABASE 数据库名称 /*创建数据库*/USE 数据库名称 /*选择要使⽤的数据库*/SELECT NAME FROM SES /*查看数据库管理系统中所有的数据库名称*/SELECT NAME FROM S WHERE TYPE='U' /*查看选择的数据库中所有的数据表名称*/DROP DATABASE 数据库名称 /*删除数据库*/DROP TABLE 表名称 /*删除表*/ALTER TABLE 表名称 ADD 表字段 varchar(20) /*增加表的字段*/ALTER TABLE 表名称 DROP COLUMN 字段 /*删除表的字段*/INSERT INTO 表名称 (字段1,字段2)values(值1,值2) /*在表中插⼊数据*/SELECT NEWID() /*产⽣GUID值。主键选择int类型⾃动增长或者uniqueidentifier(GUID)unique:唯⼀的。 identifier:标识符。 */

DELETE FROM 表名称 /*删除表中所有的数据*/DELETE FROM 表名称 WHERE 字段=条件值 /*删除表中指定的数据/SELECT ISNULL(字段,默认值) FROM 表名称 /*空值处理。ISNULL()--给空值设默认值*//*创建数据表。 为经常要进⾏查询的字段添加索引可以提升性能,会降低插⼊、更新、删除该字段的性能*/CREATE TABLE 表名称(ID int primary key identity(1,1),姓名 varchar(10),年龄 int)CREATE VIEW 视图名称 AS SELECT * FROM 表名称 /*创建查询视图*/CREATE PROCEDURE 存储过程名称 /*创建存储过程*/@字段1 nvarchar(50),@字段2 nvarchar(50),@字段3 nvarchar(50)ASINSERT INTO TB_COURSE VALUES(@字段1, @字段2, @字段3);/*和存储过程关联的增、删、改SQL语句*//*查询表中数据*/

/*COUNT()--总数、MAX()--最⼤值、MIN()--最⼩值、AVG()--平均值、SUM()--求和、ABS()--求绝对值 *//*CEILING()--舍⼊到最⼤整数(3.33舍⼊后为4)、 FLOOR()--舍⼊到最⼩整数(3.99舍⼊后为3)、ROUND()--四舍五⼊*/SELECT * FROM 表名称

SELECT TOP 2 字段1,字段2 FROM 表名称

SELECT 字段 AS 别名 ,年龄 AS 别名 FROM 表名称SELECT COUNT(*) AS 别名 FROM 表名称SELECT MAX(年龄) AS 别名 FROM 表名称SELECT MIN(年龄) AS 别名 FROM 表名称SELECT 1+1,GETDATE(), NEWID()/*更新数据 > 、<、=、!=、< > or(或者) 、and(并且)、 not(⾮) */UPDATE 表名称 SET 字段=更新值 WHERE 字段2=条件值

UPDATE 表名称 SET 字段1=更新值,字段2=更新值/*递增排序 ASC(AScending) 、递减排序 DESC(descending)、按字段排序ORDER BY*/SELECT * FROM 表名称 ORDER BY 年龄 ASC,⼯资 DESC/*按年龄递增排序,年龄相同的按⼯资递减排序*/SELECT 姓名,年龄 FROM 表名称 WHERE 年龄>23 ORDER BY 年龄 ASC/*通配符过滤、空值检测:is null。_(⼀个下划线代表匹配1个字符)、%(匹配任意多个字符)*/SELECT * FROM 表名称 WHERE 姓名 LIKE '%明_'SELECT * FROM 表名称 WHERE 年龄 IS NULL/*多值匹配, in(26,23)等同于年龄=26 or 年龄=23*/SELECT 姓名,年龄 FROM 表 WHERE 年龄 IN (26,23)/*数据分组。按群组排序GROUP BY,HAVING:对分组后的数据进⾏过滤。*/SELECT 年龄,COUNT(*) AS 总⼈数 FROM 表名称 GROUP BY 年龄SELECT 年龄,COUNT(*) AS 总⼈数,MAX(薪⽔) AS 最⾼薪⽔ FROM 表名称 GROUP BY 年龄/*相同年龄分为⼀组,显⽰每个组总⼈数、组中薪⽔最⾼的⼈*/SELECT 年龄,COUNT(*) AS 总⼈数 FROM 表名称 WHERE 年龄 IS NOT NULL GROUP BY 年龄SELECT 年龄,COUNT(*) AS 总⼈数 FROM 表名称 GROUP BY 年龄 HAVING 年龄<26/*去除数据重复。DISTINCT(清除完全相同的⼀⾏数据重复) */SELECT DISTINCT 字段 FROM 表名称

/*联合结果集。UNION(将不同数据表的查询结果联合,结果集的字段个数必须相同)*//*使⽤UNION默认去除完全重复的数据,使⽤UNION ALL 可以保留完全重复的数据 。如果不需要去除重复数据,推荐使⽤UNION ALL。可以提升查询性能*/SELECT 姓名,年龄 FROM 表1 UNION SELECT 姓名,年龄 FROM 表2 UNION SELECT 姓名,年龄 FROM 表3SELECT 姓名,年龄 FROM 表1 UNION SELECT '年龄的总和', SUM(年龄) FROM 表1 ORDER BY 年龄 DESC/*建⽴表的外键关联*/CREATE TABLE Province(proID int primary key,proName varchar(50) not null)CREATE TABLE City(cityID int not null,cityName varchar(50) primary key,proID int foreign key references province(proID))/*表连接。join--建⽴表连接*/SELECT 表1.字段,表2.字段/*步骤3:选择要查询的字段*/FROM 表1 JOIN 表2 /*步骤1:建⽴表连接关系*/ON 表=表/*步骤2:设置连接条件*/SELECT * FROM 表1 JOIN 表2 ON 表=表--窗⼝函数ROW_NUMBER(),限制结果集⾏数SELECT ROW_NUMBER() OVER(ORDER BY 年龄) AS⾏号,ID,姓名,年龄 FROM 表名称SELECT * FROM(SELECT ROW_NUMBER() OVER(ORDER BY 年龄 DESC) AS ⾏号,ID,姓名,年龄 FROM 表名称) AS T WHERE T.⾏号<=3SELECT * FROM(SELECT ROW_NUMBER() OVER (ORDER BY ID) AS ⾏号, ID, USERNAME, PWD FROM 表名称) AS T

WHERE T .⾏号 >= 1+(@Page-1) * 10 AND T .⾏号 <= @Page * 10 --分页显⽰

2023年6月21日发(作者:)

⿊马程序员SQL学习Microsoft SQL Server:CREATE DATABASE 数据库名称 /*创建数据库*/USE 数据库名称 /*选择要使⽤的数据库*/SELECT NAME FROM SES /*查看数据库管理系统中所有的数据库名称*/SELECT NAME FROM S WHERE TYPE='U' /*查看选择的数据库中所有的数据表名称*/DROP DATABASE 数据库名称 /*删除数据库*/DROP TABLE 表名称 /*删除表*/ALTER TABLE 表名称 ADD 表字段 varchar(20) /*增加表的字段*/ALTER TABLE 表名称 DROP COLUMN 字段 /*删除表的字段*/INSERT INTO 表名称 (字段1,字段2)values(值1,值2) /*在表中插⼊数据*/SELECT NEWID() /*产⽣GUID值。主键选择int类型⾃动增长或者uniqueidentifier(GUID)unique:唯⼀的。 identifier:标识符。 */

DELETE FROM 表名称 /*删除表中所有的数据*/DELETE FROM 表名称 WHERE 字段=条件值 /*删除表中指定的数据/SELECT ISNULL(字段,默认值) FROM 表名称 /*空值处理。ISNULL()--给空值设默认值*//*创建数据表。 为经常要进⾏查询的字段添加索引可以提升性能,会降低插⼊、更新、删除该字段的性能*/CREATE TABLE 表名称(ID int primary key identity(1,1),姓名 varchar(10),年龄 int)CREATE VIEW 视图名称 AS SELECT * FROM 表名称 /*创建查询视图*/CREATE PROCEDURE 存储过程名称 /*创建存储过程*/@字段1 nvarchar(50),@字段2 nvarchar(50),@字段3 nvarchar(50)ASINSERT INTO TB_COURSE VALUES(@字段1, @字段2, @字段3);/*和存储过程关联的增、删、改SQL语句*//*查询表中数据*/

/*COUNT()--总数、MAX()--最⼤值、MIN()--最⼩值、AVG()--平均值、SUM()--求和、ABS()--求绝对值 *//*CEILING()--舍⼊到最⼤整数(3.33舍⼊后为4)、 FLOOR()--舍⼊到最⼩整数(3.99舍⼊后为3)、ROUND()--四舍五⼊*/SELECT * FROM 表名称

SELECT TOP 2 字段1,字段2 FROM 表名称

SELECT 字段 AS 别名 ,年龄 AS 别名 FROM 表名称SELECT COUNT(*) AS 别名 FROM 表名称SELECT MAX(年龄) AS 别名 FROM 表名称SELECT MIN(年龄) AS 别名 FROM 表名称SELECT 1+1,GETDATE(), NEWID()/*更新数据 > 、<、=、!=、< > or(或者) 、and(并且)、 not(⾮) */UPDATE 表名称 SET 字段=更新值 WHERE 字段2=条件值

UPDATE 表名称 SET 字段1=更新值,字段2=更新值/*递增排序 ASC(AScending) 、递减排序 DESC(descending)、按字段排序ORDER BY*/SELECT * FROM 表名称 ORDER BY 年龄 ASC,⼯资 DESC/*按年龄递增排序,年龄相同的按⼯资递减排序*/SELECT 姓名,年龄 FROM 表名称 WHERE 年龄>23 ORDER BY 年龄 ASC/*通配符过滤、空值检测:is null。_(⼀个下划线代表匹配1个字符)、%(匹配任意多个字符)*/SELECT * FROM 表名称 WHERE 姓名 LIKE '%明_'SELECT * FROM 表名称 WHERE 年龄 IS NULL/*多值匹配, in(26,23)等同于年龄=26 or 年龄=23*/SELECT 姓名,年龄 FROM 表 WHERE 年龄 IN (26,23)/*数据分组。按群组排序GROUP BY,HAVING:对分组后的数据进⾏过滤。*/SELECT 年龄,COUNT(*) AS 总⼈数 FROM 表名称 GROUP BY 年龄SELECT 年龄,COUNT(*) AS 总⼈数,MAX(薪⽔) AS 最⾼薪⽔ FROM 表名称 GROUP BY 年龄/*相同年龄分为⼀组,显⽰每个组总⼈数、组中薪⽔最⾼的⼈*/SELECT 年龄,COUNT(*) AS 总⼈数 FROM 表名称 WHERE 年龄 IS NOT NULL GROUP BY 年龄SELECT 年龄,COUNT(*) AS 总⼈数 FROM 表名称 GROUP BY 年龄 HAVING 年龄<26/*去除数据重复。DISTINCT(清除完全相同的⼀⾏数据重复) */SELECT DISTINCT 字段 FROM 表名称

/*联合结果集。UNION(将不同数据表的查询结果联合,结果集的字段个数必须相同)*//*使⽤UNION默认去除完全重复的数据,使⽤UNION ALL 可以保留完全重复的数据 。如果不需要去除重复数据,推荐使⽤UNION ALL。可以提升查询性能*/SELECT 姓名,年龄 FROM 表1 UNION SELECT 姓名,年龄 FROM 表2 UNION SELECT 姓名,年龄 FROM 表3SELECT 姓名,年龄 FROM 表1 UNION SELECT '年龄的总和', SUM(年龄) FROM 表1 ORDER BY 年龄 DESC/*建⽴表的外键关联*/CREATE TABLE Province(proID int primary key,proName varchar(50) not null)CREATE TABLE City(cityID int not null,cityName varchar(50) primary key,proID int foreign key references province(proID))/*表连接。join--建⽴表连接*/SELECT 表1.字段,表2.字段/*步骤3:选择要查询的字段*/FROM 表1 JOIN 表2 /*步骤1:建⽴表连接关系*/ON 表=表/*步骤2:设置连接条件*/SELECT * FROM 表1 JOIN 表2 ON 表=表--窗⼝函数ROW_NUMBER(),限制结果集⾏数SELECT ROW_NUMBER() OVER(ORDER BY 年龄) AS⾏号,ID,姓名,年龄 FROM 表名称SELECT * FROM(SELECT ROW_NUMBER() OVER(ORDER BY 年龄 DESC) AS ⾏号,ID,姓名,年龄 FROM 表名称) AS T WHERE T.⾏号<=3SELECT * FROM(SELECT ROW_NUMBER() OVER (ORDER BY ID) AS ⾏号, ID, USERNAME, PWD FROM 表名称) AS T

WHERE T .⾏号 >= 1+(@Page-1) * 10 AND T .⾏号 <= @Page * 10 --分页显⽰