SqlServer入门学习

--distinct(去除重复数据)
select distinct Time from HightTable
--Between
select * from HightTable where ID BETWEEN 1 and 2
--or
select * from HightTable where ID=1 or ID=2
--and和or结合
select * from HightTable where (ID=1 or ID =2) and ID=1
--order by和排序(降序)
select * from HightTable order by ID desc
--top全部
select top 2 * from HightTable
--top字段
select top 2 ID from HightTable
--like左模糊(匹配坐标左边的字符)
select * from HightTable where type like 'N%'
--like右模糊(匹配坐标右边的字符)
select * from HightTable where type like '%N'
--like全匹配
select * from HightTable where type like '%N%'
--_匹配(_字符之后是某个字符的匹配)
select * from HightTable where type like '_N'
--_多个匹配
select * from HightTable where type like 'N_N_N'
--[]通配符(左通配'[]%',右通配'%[]',全通配,'%[]%',反通配'%[!N]%')
select * from HightTable where type like '%[N]%'
--in
select * from HightTable where ID in(1,2)
--表关联条件查询
select a.id,b.id,b.Type from TestTime a,HightTable b where a.ID=10 and b.ID=1
--inner join 内连接
select * from HightTable h inner join TestTime t on h.ID = t.ID where h.ID<> null
--left join 左连接
select * from HightTable h left join TestTime t on h.ID = t.ID where h.ID = 1
--right join 右连接
select * from HightTable h right join TestTime t on h.ID = t.ID where h.ID=1
--full join 只要其中一个表中存在匹配,就返回行
select * from HightTable h full join TestTime t on h.ID = t.ID where h.ID=1
--union 合并两个或多个 SELECT 语句的结果集(不存在重复的值)
select * from HightTable union select * from HightTable where ID=1
--union all(可以重复)
select * from HightTable union all select * from HightTable where ID=1
--select into(用于复制表和数据,复制一些字段)
select Type,Time into HightTabless from HightTable
--select into(用于复制表和数据,复制整张表)
select * into HightTables from HightTable
--连接其他表创新新表和数据
select Type,Time into HightTablet from HightTable right join TestTime on HightTable.ID = TestTime.ID

--创建数据库
create database backbase
--删除数据库
drop database EFDemo
--创建表 UNIQUE--约束唯一标识数据库表中的每条记录,PRIMARY KEY自增,跟unique不能来个同用
create table table_back(
id int NOT NULL UNIQUE ,
lastname varchar(100),
cityname varchar(100)
)
--删除表
--drop table HightTable
--FOREIGN KEY外键约束
create table table_back1(
id int NOT NULL UNIQUE ,
lastname varchar(100),
cityname varchar(100),
Id_P int FOREIGN KEY REFERENCES table_back1(id)
)
--删除外键
ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders
--Check限制值范围
create table table_back2(
id int NOT NULL UNIQUE ,
lastname varchar(100),
cityname varchar(100),
Id_P int FOREIGN KEY REFERENCES table_back1(id),
check(id>0)--or(check id>0 and lastname='xiaomi'),表已存在创建check约束则为(Add check(id>0))
)
--删除check约束
alter table table_back2
drop CONSTRAINT checkname
--default 向表中插入默认值
--OrderDate date DEFAULT GETDATE(),City varchar(255) DEFAULT 'Sandnes'
--删除默认值设置
--ALTER TABLE table_back2
--ALTER COLUMN City DROP DEFAULT
--CREATE INDEX 语句用于在表中创建索引(可以多列索引)
create index index_name on highttable(id)
--唯一索引
create unique index index_name1 on highttable(id)
drop index index_name on highttable
--TRUNCATE TABLE 删除表格数据但不删除表格本身结构
TRUNCATE TABLE highttable
--alter table
alter table highttable add colunm_name int
--drop column 删除表中的列
alter table highttable drop column colunm_name
--alter column 修改表中的列
alter table highttable alter column colunm_name varchar(30)
--Auto-increment 会在新记录插入表中时生成一个唯一的数字
--CREATE VIEW 创建视图
CREATE VIEW [view_name] AS
SELECT ID,Value
FROM HightTable
--now 返回当前的日期和时间
--CURDATE() 返回当前的日期
--CURTIME() 返回当前的时间
--DATE() 提取日期或日期/时间表达式的日期部分
--EXTRACT() 返回日期/时间按的单独部分
--DATE_ADD() 给日期添加指定的时间间隔
--DATE_SUB() 从日期减去指定的时间间隔
--DATEDIFF() 返回两个日期之间的天数
--DATE_FORMAT() 用不同的格式显示日期/时间
--GETDATE() 返回当前日期和时间
--DATEPART() 返回日期/时间的单独部分
--DATEADD() 在日期中添加或减去指定的时间间隔
--DATEDIFF() 返回两个日期之间的时间
--CONVERT() 用不同的格式显示日期/时间
--DATE - 格式 YYYY-MM-DD
--DATETIME - 格式: YYYY-MM-DD HH:MM:SS
--SMALLDATETIME - 格式: YYYY-MM-DD HH:MM:SS
--TIMESTAMP - 格式: 唯一的数字
--is null
select * from HightTable where Value is null
--is not null
select * from HightTable where Value is not null
--function 函数
--AVG 返回某列的平均值
SELECT AVG(column_name) FROM table_name
--COUNT(column_name) 返回某列的行数(不包括 NULL 值)
select COUNT(column_name) from HightTable
--COUNT(*) 返回被选行数
select COUNT(*) from HightTable
--First 返回在指定的域中第一个记录的值
--Last 返回指定域中最后一个记录的值
--MAX(column) 返回某列的最高值
select MAX(value) from HightTable
--min(column) 返回某列的最低值
select MIN(value) from HightTable
--sum 返回某列的总和
select SUM(value) from HightTable
--var(column) 返回总体样本方差的估计值
--VARP(column 返回总体方差的估计值
--UCASE(c) 将某个域转换为大写
select UCASE(type) from HightTable
--LCASE(C) 将摸个域转换成小写
select lcase(type) highttable
--MID(c,start[,end]) 从某个文本域提取字符
--LEN(c) 返回某个文本域的长度
select LEN(value) from HightTable
--INSTR(c,char) 返回在某个文本域中指定字符的数值位置
select instr(2,'dasd') from HightTable
--LEFT(c,number_of_char) 返回某个被请求的文本域的左侧部分
select LEFT('dasdasdas',3)
--right(c,number_of_char) 返回某个被请求的文本域的右侧部分
--round(c,decimals) 对某个数值域进行指定小数位数的四舍五入
select ROUND(2.122,2)
--MOD(X,Y)返回除法操作的余数
select mod(3,6)
--now() 返回当前的系统日期
select now() from HightTable
--format(c,format) 返回某个域的显示方式(可用convert代替)
select format(value,format) from HightTable
--datediff(d,date1,date2) 用于执行日期计算
select DATEDIFF(MONTH,'2015-01-12',getdate())
--group by 根据一个或多个列对结果集进行分组
select id,sum(Value) from HightTable group by id
--Having 合计函数,无法与where一起使用,必须有group by
select id from HightTable group by ID having SUM(sumValue)>10 order by ID desc
--排序(降序)
select * from HightTable order by ID desc
--排序(升序)
select * from HightTable order by ID asc

--时间模糊查询

SELECT * FROM table WHERE Convert(varchar,createdate,120) LIKE '2016-04%'

希望对大家有用!

原文地址:https://www.cnblogs.com/boosasliulin/p/5213440.html