备忘sql语句

 /*
SQL语言分类
主要有以下分类:

1.数据定义语言(Date Definition Language,DDL):

       create table 可以创建表、alter table 可以对表结构进行修改、drop table 删除某个表。

2.数据查询语言:select用户检索数据库数据。

3.数据操纵语言(Date Manipulation Language,DML):insert、update、delete。

4.数据控制语言(Date Control Language,DCL):

         grant 用于给用户或者角色授予权限、  revoke 收回用户或者角色所具有的权限。

5.事务控制语言(Transactional Control Language,TCL):

          commit 用于确认已经进行的数据库改变、

          rollback 用于取消已经进行的数据库改变、

          savepoint 用于设置保存点,以取消部分数据库改变。

 

SQL语句的编写规则:

     SQL关键字、对象名、列明,不区分大小写;但SQL语句引用字符值和日期值,必须要注意大小写

*/

 

--创建删除数据库
create database test;
drop database test;

--创建表
use Fm_Data;
create table OldTable
(
 id int identity(1,1) not null primary key,
 name varchar(100) not null,
);
go

 

--删除表
drop table OldTable;

 

--增删改查
insert into NewTable(name,birthday) values('jack','2010-10-10');
update NewTable set name='mike' where id =1;
delete from NewTable where id = 1;
select * from NewTable;

 

--使用旧表创建新表
select * into NewTable from OldTable;

 

--给现有表增加列
alter table test add  birthday datetime not null;

 

--修改表主键
alter table test add Constraint PK_test_id primary key(id)
alter table test drop PK_test_id;

 

--创建删除索引
create index idxname on test(name);
drop index test.idxname; 

 

--创建删除视图
create view view_test  as select * from test;
drop view view_test;

 

--高级查询
select * from OldTable left join NewTable on OldTable.id = NewTable.id;
select * from OldTable right join NewTable on OldTable.id = NewTable.id;
select * from OldTable inner join NewTable on OldTable.id = NewTable.id;

 

--子查询
select * from OldTable where id in (select id from NewTable)

 

--sql分页
1.
select top @pageSize * from NewTable where id not in
(select top @pageSize*(@pageIndex-1) id from NewTable)
2./*仅限sql server 2005 游标存储过程分页性能较差*/
select * from (
 select row_number() over(order by id ) as RowNumber,id from NewTable as a
) a where RowNumber between (@pageIndex-1)*@pageSize+1 and @pageIndex*@pageSize
order by id

 

--几个高级查询词
/*
将单个结果集返回, 不包含会重复的行
*/
select name from OldTable
union
select name from NewTable

/*
在结果中包含所有的行
*/
select name from OldTable
union all
select name from NewTable

 

--存储过程
create proc proc_name(@id int,@name varchar(100))
as
select * from NewTable where id = @id;
/*测试下*/
declare @id int;
set @id=1;
declare @name varchar(100);
set @name = 'ass';
exec proc_name @id,@name
/*删除存储过程*/
drop proc proc_name

 

--备份数据库
use master
backup database Fm_Data
to disk = 'E:/DBbackup/mydb.bak'--注意:路径的文件夹是必须已经创建的

 

--还原数据库
use master
restore database Fm_Data
from disk ='E:/DBbackup/mydb.bak'
with replace

 

--日程安排提前五分钟提醒
select * from 日程安排 where datediff('minute',开始时间,getdate())>5

 

--删除重复记录
delete from NewTable where id in(
 select max(id) from NewTable group by name having count(id) >1
)

 

--列出数据库里所有的表名
select name from sysobjects where type='U'

 

--列出表里的所有的字段
select name from syscolumns where  id = object_id('NewTable')

 

--初始化表
truncate table NewTable

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值