数据库sql整体整理

create database 数据库

/*
数据库的服务、数据库文件、
*/
--修改表添加列
create table biao
(
name varchar(50)
)
alter table biao add sex varchar(20) --往表里增加一列
alter table biao drop column sex  --在表里删除一列
select*from biao
insert into biao values(王文姿,)
insert into biao values(王啊沙发,)

--下划线_代表一个字位符,在大范围中使用。。 模糊查询
select *from biao where name like 王__  --两个下划线 会显示‘王文姿‘
select *from biao where name like 王___  --三个下划线 会显示‘王啊沙发‘

--聚合函数
--count(*)  sum() avg() max() min()  一般是对某一列数字列进行操作

--日期时间函数
select DATEADD(DAY,5,1999-08-31)--在原来的基础上加5天
select DATEADD(week,5,1999-08-31)--在原来的基础上加5周
select DATEDIFF(WEEKDAY,2015-04-23,2015-05-01) --两天之间相差几天(weekday),相差几周(week)
print datename(weekday,2015-4-23) --返回今天星期几--
print datename(week,2015-4-23) --返回这是今年的第多少个周
print datepart(weekday,2015-4-23) --返回这是今年的第多少个周 返回int类型的 datepart
print getdate()--获取当前系统时间
print isdate(1999-111-213)--判断一个值是否为正确的日期时间 1:正确 0:错误
print sysdatetime() --获取更为详细的时间


--截取字符串,以及类型转换
select LEFT(abcdefg,2) --从左边开始截取,截取两位
select right(abcdefg,2) --从右边开始截取,截取两位
select  LOWER(abcD) --转换为小写
select  upper(abcD) --转换为大写
select  len(abcD)  --获取字符串的长度int类型
select LTRIM(      dsfsd  ssdf   s                ) --去左空格
select RTRIM(      dsfsd  ssdf   s                ) --去右空格
select Substring(abccceecfddd,5,2) --索引从1开始,  截取字符串
select REPLACE(遂非文过哦,,爱上放大)  --替换字符串
select REPLICATE(啊沙发,10) --以指定的次数打印前面的内容
print STR(123.456,5,1)  --将123.456转换为5位的字符串,小数点也占一位,最后保留1位小数
select SPACE(100) --打印100个空格
print asfaf+打发 --拼接
print reverse (abcde ) --翻转
print patindex(%啊的沙发%,123啊的沙发123) --显示‘啊的沙发‘在哪个位置
print stuff(abcdefghijklmnopqrst,4,2,zzzz) --在索引为4这个位置删除两个值然后插入ZZZZ


--类型转换函数
print cast(123as int)+12  --类型转换
print cast(123 as varchar(20))+123
print convert(int,123)+123


--数学函数
select ABS(-13) --取绝对值
select ceiling(1.23) --取上限,天花板
select FLOOR(1.9) --地板
select PI()--取π
select RAND(10) --取随机数,随机出一个种子出来 一定会随机出0~1之间的数
select RouND(1.234567,3) --四舍五入到第3位
print sqrt(2) --取平方根
print square(4) --取平方
select sname,出生日期为+cast(YEAR(sbirthday)as varchar(20))++cast(MONTH(Sbirthday)as varchar(20))++cast(DAY(Sbirthday)as varchar(20))+ from student

--子查询:
--1.当放在where后作为筛选条件的,就是查询出一列数据当做参数来使用
--2.若放在from后面,加括号的号,可以查询出一个结果集,当做一个临时表来使用
--3.如果放在select和from中间的话,可以根据原来要显示的列数据,进行子查询查询出一个对应的值来改变显示结果。


--连接查询


横向连接:join on  
inner 内连接:只把相关的连接
left 左连接: 在内连接基础上把左表显示全
right 右连接:  在内连接基础上把右表显示全

纵向连接: union  
1.列数要对应
2.数据类型要对应



--存储过程
定义变量:declare @bianliang 数据类型
变量赋值:set @bianliang=123
          select 语句赋值


运算符:
数学运算符: + - * / %
比较运算符: > < >= <= != <> !> !<
逻辑运算符:and or ! not



流程语句:
if else while 

存储过程格式
create proc 存储过程名
--输入参数
--输出参数
as
     流程语句
go

exec 存储过程名



---视图:一个虚拟的表,实际视图中放的就是一个查询语句

create view 视图名
as
    查询语句
go

--触发器:是一个特殊的存储过程,他是通过增删改的动作来引发。
create trigger 触发器名
on
instead of|after/for 动作  update/insert/delete
as
    存储过程内容
go


--事务:为了让一个流程完整的执行
begin tran
if @@ERROR>0
begin
rollback tran
end
else
commit tran

--约束:
    主键
    外键
    唯一列
    check
    check(degree<=100and degree>=0)  --在定义表的时候写,紧跟在定义的degree后面
    not null
    identity(1,1) --自增长
    unique --唯一列

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。