(l)SQL基础语句
1、创建数据库
CREATE DATABASE database-name
2、删除数据库
drop database dbname
4、创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、删除新表 drop table tabname
6、增加一个列 Alter table tabname add column col type
7、添加主键 Alter table tabname add primary key(col)
删除主键: Alter table tabname drop primary key(col)
8、创建索引:create [unique] index idxname on tabname(col….)
9、创建视图:create view viewname as select statement
10、初始化表table1 TRUNCATE TABLE table1
11、删除视图:drop view viewname
SQL查询语句
SQL复制表
法一:select * into b from a where 1<>1
法二:select top 0 * into b from a
多表联查:
select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....
使用in方法
select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)
使用between
select * from table1 where time between time1 and time2
随机取出10条数据
select top 10 * from tablename order by newid()
删除重复记录
Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)
分类TOP N(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)
SELECT * FROM XSCJ a WHERE Sid IN(SELECT TOP 3 Sid FROM XSCJ b WHERE A.CLASSid=b.CLASSid AND A.KCID=B.KCid )
取表中n到m条纪录
select top n * from (select top m * from tablename order by columnname) a order by columnname desc
(2)SQL Server游标语句使用方法:
--声明一个游标
DECLARE MyCursor CURSOR
FOR SELECT TOP 5 FBookName,FBookCoding FROM TBookInfo//定义一个叫MyCursor的游标,存放for select 后的数据
--打开一个游标
OPEN MyCursor//即打开这个数据集
--循环一个游标
DECLARE @BookName nvarchar(2000),@BookCoding nvarchar(2000)
FETCH NEXT FROM MyCursor INTO @BookName,@BookCoding//移动游标指向到第一条数据,提取第一条数据存放在变量中
WHILE @@FETCH_STATUS =0//如果上一次操作成功则继续循环
BEGIN
print 'name'+@BookName
FETCH NEXT FROM MyCursor INTO @BookName,@BookCoding//继续提下一行
END
--关闭游标
CLOSE MyCursor
--释放资源
DEALLOCATE MyCursor
(3)索引
/*1.最简单的创建和删除索引*/
CREATE INDEX list ON Student(Sno)
--在学生表学号列创建索引lis
DROP INDEX list ON Student
--删除学生表索引
EXEC sp_helpindex Student
--查看索引
--student表里有两个本身的索引,Sno和Sname,主键默认为是唯一聚集索引(可改为非聚集),unique是唯一索引
/*2.唯一性索引,保证在索引列中的全部数据是唯一的,对聚簇索引和非聚簇索引都可以使用*/
CREATE UNIQUE INDEX list ON Student(Ssex)
--发现对象名称 'dbo.Student' 和索引名称 'list' 有重复的键,所以 CREATE UNIQUE INDEX 语句终止。重复的键值为 (男)。
CREATE UNIQUE INDEX list ON Student(Sno)
(4)创建视图
Create view viewname as
Select 学号,姓名,所属院系
From student
Where 课名=’软件工程’ and 所属院系=’计算机’
1.T-SQL语句创建视图:
use 用户 //我们使用的数据库
go
create view stu_course_grade //表明我们要创建视图并加上视图的名字
as //通过查询语句确定视图的主体内容
select student.sno,xingming,score.fengshu,course.kecheng
from student,score,course
where student.sno=score.sno and score.sno=course.sno
go
2.修改视图
use 用户 //使用的数据库
go
alter view stu_course_grade //表明要进行修改视图并加上视图的名字
as //固定有个as
select student.sno,xingming //新的视图的查询语句
from student
go
3.更新视图:
//通过视图向表中插入记录 use tech
go
insert into view_stu values('21','张三','男','1998') //其中insert into 后面加视图名字,然后加上固定的values 表明要对视图插入记录,后面是记录的具体数据
4.通过视图修改数据
use tech
go
update stu_course_grade
set grade=92
where sname='老王'and cname='数据结构'
go
5.删除视图
use tech
go
drop view stu_course_grade //直接在drop后加上视图的名字
go