【数据库】数据库操作语句总结--库、表、视图、变量创查改删

这篇博客详细介绍了数据库的管理操作,包括创建和删除数据库、修改表结构、从其他表创建新表,以及各种查询技术如投影、连接、分组和排序。还涉及到了索引的创建、查看和删除,以及T-SQL中的流程控制语句如IF...ELSE、BEGIN...END等。此外,讨论了子查询、UNION和EXCEPT操作,以及视图的创建和管理。
摘要由CSDN通过智能技术生成

数据库

数据库

创建

create database database_name

删除

drop database database_name

修改

alter database database_name
ADD FILE (name = '',filename = 'path',size = ,maxsize = ,filegrowth = )
add log()

创建

create table tbname(col type [not null] [primary key],//创建primary key 约束,还有unique约束等其他
                   col2 type [not null] ...)

删除

drop table tbname

由其他表创建新表

select colname into table1 from table2

修改表

alter table table1 
ADD remark type
drop primary key(col)
//ADD 增加表中的列
//drop 删除约束或者列

插入

insert into table_name|view_name|... col_name values(),(),();

更新

update table_name set col_name = '' where ...
//不使用where时,将更新所有值

查询

投影查询

select select_list1,select_list2 
from table_name
where ... //查询条件
gruop by ...//分组表达式
having ... //分组统计条件
order by ...// 排序
指定列
select col_name as '列名' from table_name where search_condition
//使用as修改列的名称
全部列
select * from table_name where search_condition
去重
select distinct col_name from ...
条件查询
where ...
// IN (范围)
// like (替代符)

连接查询

(多表)等值连接
select tbname.col_name ,tbname2.col_name,tbname3.col_name
from tbname,tbname2,tbname3
where tbname.Ano = tbname.Ano2 and tbname2.Bno = tbname3.Bno

Join连接

select * from table_name1 join table_name2 on table_name1.Ano = table_name2.Ano
where search_condition
// inner join 默认内连接,满足条件返回
// left outer join  左表保留数据+满足条件
// right outer join  右表保留数据+满足条件
// full outer join  两个表保留数据+满足条件
// 外连接只对连个表进行
// cross join 查询所有可能的组合

分组

eg:
select cno ,MAX(grade),MIN(grade),AVG(grade)
from score
where not grade IS null
group by cno
HAVING condtion

//通常和聚合函数一起使用
//having 对分组结果按条件再筛选

执行顺序:
wheregroup by、聚合函数、having

排序

select col_name 
from table_name
where search_condition
order by col DESC 降序| ASC 升序

子查询

select a.col,
from tableA a
where bcol IN (
select bcol from b where bno = 
)
// 在where和having中嵌套另一个查询

select a.col,
from tableA a
where bcol > ALL | SOME | ANY (
select bcol from b where bno = 
)
//比较

select a.col,
from tableA a
where exists(
select bcol from b where bno = 
)
//存在

UNION

将多表合并成一个数据集

select a.col,
from tableA a
where exists(
select bcol from b where bno = 
)

UNION 

select a.col,
from tableA a
where bcol > ALL | SOME | ANY (
select bcol from b where bno = 
)

EXCEPT INTERSECT 返回非重复值

EXCEPT 从左查询中返回有查询没查到的所有非重复值

INTERSECT 左右两边的两个查询都返回所有非重复值

TOP

接在select后表示 返回前几行数据

视图

创建

create view view_name
AS
select col from table_name where ...
WITH CHECK OPTION // 指出在视图上进行的修改都要符合select所指定的准则

查询\修改

和表一样

update view set conditon
where search_condition

删除

delete from view_name
where search_condition

索引

创建

//非聚集
create INDEX index_name on table_name(col_name)
//聚集,要在创建之前确保删除现有的聚集索引
create UNIQUE CLUSTERED INDEX index_name ON table_name(col_name)

查看

EXEC sp_helpindex tableName

重建

alter index index_name on table_name rebuild
with (PAD_INDEX = ON,FILEFACTOR = 80)
//将填充因子filefactor改为80

删除

drop index table_or_view_name.index_name

变量

局部变量&&全局变量

eg:
declare @spe char(12)
set @spe = '计算机'
select stno,stname,stsex
from student
where speciality = @spe

//全局是  @@

begin…end

IF…else等

if 条件
A    //T-SQL语句
ELSE 
B    //T-sql语句

变量需要先用declare定义出变量类型,

再用SET给变量赋值,

再用if while设置条件,

最后在begin-end中编写select语句

break

退出本层循环,当循环体中有多层循环嵌套时使用break只能退出其所在的层

continue

结束本次循环,重新转入循环开始条件的判断

goto语句

跳转到目标语句goto lp

return

无条件退出,之后的语句不被执行

waitfor

等到条件后执行

begin…end

IF…else等

if 条件
A    //T-SQL语句
ELSE 
B    //T-sql语句

变量需要先用declare定义出变量类型,

再用SET给变量赋值,

再用if while设置条件,

最后在begin-end中编写select语句

break

退出本层循环,当循环体中有多层循环嵌套时使用break只能退出其所在的层

continue

结束本次循环,重新转入循环开始条件的判断

goto语句

跳转到目标语句goto lp

return

无条件退出,之后的语句不被执行

waitfor

等到条件后执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值