博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库重点复习(sql基础语句,游标,索引,视图)
阅读量:5159 次
发布时间:2019-06-13

本文共 3171 字,大约阅读时间需要 10 分钟。

(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

 

转载于:https://www.cnblogs.com/programme-maker/p/10867593.html

你可能感兴趣的文章
AFO以后的机房游记
查看>>
qtableview 右键菜单弹出及获取数据
查看>>
巧用UserAgent来解决浏览器的各种问题
查看>>
log4net 开启内部调试
查看>>
Java多线程学习笔记(二)
查看>>
地图源改变之后mxd文件打开很慢的问题
查看>>
51Nod - 1013 3的幂的和
查看>>
Leetcode 492. 构造矩形
查看>>
一、浏览器生成消息(1)
查看>>
POJ1753——Flip Game
查看>>
最短路径算法之一——Floyd算法
查看>>
WIN32 窗口封装类实现
查看>>
号外!GNOME 3.22 正式发布喽!!!
查看>>
[USACO2003][poj2018]Best Cow Fences(数形结合+单调队列维护)
查看>>
JS调用后台方法大全
查看>>
一种脱离VC编程软件的方法学习C/C++编程(搭建EditPlus实现在文本编辑框中执行.c文件...
查看>>
[科普文] 关于浏览器内核的一些小知识,明明白白选浏览器!
查看>>
软硬件之共生之道——一千零一夜的启发
查看>>
(一一二)图文混排中特殊文字的点击与事件处理
查看>>
iPhone开发经典语录集锦 (转)
查看>>