-- 使用 select语句进行查询《按查询的列名显示,有条件限制就只显示条件部分》
语法:
select 列名 from 表名 【where 查询的条件表达式】 【order by 列名 】
 *** 其中where 条件是可选的,若不限制,则查询返回所有行的数据项。
 *** order by 是用来排序的




-- 基本查询的不同情况:
** 查询所有的数据行和列《*代表所有的列》
select * from 表名


** 查询部分行或列《查询部分的行需要使用where来进行条件限制》
select 列名,列名,列名,.....
from 表名
where 条件表达式《列名=‘条件’》
用来查询是条件的信息不显示:
select 列名,列名,列名,....
from 表名
where 条件表达式《列名<>'条件'》《<>是查询不是这个条件的信息》




** 在查询中使用列的别名:
-- AS 子句可以用来改变结果集中列的名称,页可以为组合或者计算出的列指定名称。
select 列名 as 自定义名称,列名 as 自定义名称,.....
from 表名
where 条件表达式《列名<>'条件'》




-- 使用计算、合并得到新列的命名。《合并了的列值也在一起显示,列的类型要相同》
select 列名+'.'+列名 as 自定义名称
from 表名


另一种方法:使用“=”来命名
select 自定义名称=列名+‘.’+列名
from 表名


** 查询空值:
采用 SQL 语句 ‘is null’或‘ is not null ’ 来判断是否为空。
select 列名 from 表名 where 列名 is null


** 在查询中使用常量列:
select 自定义名称=列名,自定义列名=名称,【'统一显示的值' as 统一显示值的列名】这是查询结果多出来的一列
from 表名


** 查询返回限制的行数:
-- 限制行数使用 top 关键字来约束。
select top 值 列名,列名,....
from 表名 
where 条件表达式《列名=‘条件’》


-- 按百分比提取记录,使用 percent 关键字来约束限制:
例:显示20%。
select top 20 percent 列名,列名
from 表名 where 条件表达式《列名=‘条件’》







-- 查询排序:
如何使用 order by :升序(ASC)、降序(DESC) 默认是ASC
语法:
ORDER BY _column1, _column2 DESC; 《_column1升序,_column2降序 》
 
ORDER BY _column1 DESC, _column2 ;  《_column1降序,_column2升序 》




-- 增加列
alter table 表名 add 列名 数据类型
例: alter table Card add XingLie varchar(50)


-- 修改列的类型
alter table 表名 alter column 列名 类型
例: alter table Card alter column XIngLie char(10)


--修改列的名称
exec sp_rename '表名1.列名1','列名2'《把表名1中的列名1改为列名2》
例: exec sp_rename 'Card.Er','LieXing'


-- 删除列名
alter table 表名 drop column 列名
例: alter table Card drop column LieXing


函数:


-- 在查询中使用函数:4类函数(字符串函数、日期函数、数字函数、系统函数)


*** 字符串函数:字符串函数用于对字符串数据进行处理,并返回一个字符串或数字。
语法:
charindex 用来寻找一个指定的字符串在另一个字符串中的起始位置
例: select charindex('name','my name is Tom',1) 返回:4


len 返回传递给它的字符串长度
例: select len('SQL Server 课程') 返回:2


upper 把传递给它的字符串转换为大写
例: select upper('sql server 课程') 返回:SQL SERVER 课程


ltrim 清除字符左边的空格
例: select ltrim('唐竟') 返回:唐竟   (后面的空格保留)


rtrim 清除字符右边的空格
例: select rtrim('唐竟') 返回:唐竟(前面的空格保留)


right 从字符串右边返回指定数目的字符
例: select right('买卖媞。吐尔松',3) 返回:吐尔松


replace 替换一个字符串中的字符 <里面有三个参数>
例: select replace('莫乐可切,杨可','可','兰')   返回:莫乐兰切.杨兰


stuff 在一个字符串中,删除指定长度的字符,并在改位置插入一个新的字符串
例: select stuff(ABCDEFG,2,3,我的音乐我的世界) 返回:A我的音乐我的世界EFG


*** 日期函数: 日期函数用于操作日期值,我们不能直接对日期运用数字函数。
语法:
getdate 取得当前的系统日期
例: select getdate() 返回:今天的日期


dateadd 将指定的数值添加到指定的日期部分后的日期
例: select dateadd(mm,4,'2016-01-01') 返回:以前的日期格式返回05/01/2009
select dateadd(week,1,getdate()) 返回: 当前日期加一周后的日期
-- yy(year):表示年份
-- mm(month):表示月份
-- dd(day)表示天数
-- ww、wk(week): 周


-- hh(hour):时
-- mi、n(minute):分
-- ss、s(second):秒


datediff 两个日期之间的指定日期部分的间隔
例: select datediff(mm,'2016-01-01','2016-05-01') 返回:4


datename 日期指定日期部分的字符串形式
例: select datename(dw,'01/01/2000') 返回:SAturday 或星期六


datepart 日期中指定日期部分的整数形式
例: select datepart(day,'01/15/2000') 返回:15




*** 数字函数:数字函数用于对数字型数据进行处理,并返回处理结果。
语法:
rand 返回从0到1之间的随机float值
例:select rand()


ABS 取数值表达式的绝对值
例:select ABS(-6) <1.一个正数的绝对值是它本身
2.一个负数的绝对值是它相反的数 >


ceiling 向上取整,取大于或等于指定数值、表达式的最小整数
例: select ceiling(43.5) 返回:44


floor 向上取整,到小于或等于指定表达式的最大整数
例: select floor(43.5) 返回:43


power 取数值表达式的幂值《两个参数》
例: select power(5,2) 返回:25《2个5等于25》


round 将数值表达式四舍五入为指定精度《两个参数》
例: select round(43.5432,1) 返回:43.5《43.5432四舍五入后,保留一位小数》


sign 对于正数返回 +1,对于负数返回 -1 ,对于0则返回0.
例: select sign(-43) 返回:-1

sqrt 取浮点表达式的平方根
例: select sqrt(9) 返回:3



*** 系统函数:获取有关 SQL Server 中对象和设置的系统信息

convert 用来转变数据类型
例:select convert(verchar(4),'你好') 返回:你好 《varchar类型汉字占两个字节,数字字母占一个字节》
《nvarchar类型汉字数字字母都占一个字节》
current_user 返回当前用户的名字
例: select current_user


datalength 返回用于指定表达式的字节数
例: select datalength('中国A联盟') 返回:9 《汉字占两个字节,数字字母占一个字节》


host_name 返回当前用户所登录的计算机名字
例: select host_name() 返回:当前用户所登录的计算机名字

system_user 返回当前所登录的用户名称
例: select system_user 返回:数据库所登录的用户名称


user_name 从给定的用户ID返回用户名
例:select user_name(1)