数据库sql整体整理

时间:2023-03-10 01:40:48
数据库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(''as int)+12 --类型转换
print cast(123 as varchar(20))+''
print convert(int,'')+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 --唯一列