zoukankan      html  css  js  c++  java
  • 数据库重点复习(sql基础语句,游标,索引,视图)

    (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

     

  • 相关阅读:
    nginx负载均衡
    saltstack高效运维
    nginx入门与实战
    web service基础知识
    centos tomcat解压版安装
    centos yum 安装jdk1.7
    centos7安装opencv3.4.1(同样适用于最新版本4.2.0)
    正向代理与反向代理,正向代理与反向代理的应用
    MySQL日期 字符串 时间戳互转
    idea svn提交时,performing vcs refresh时间很长的解决办法
  • 原文地址:https://www.cnblogs.com/programme-maker/p/10867593.html
Copyright © 2011-2022 走看看