一、

  1. 模式的定义和删除  ---创建了一个模式,就创建了一个数据库命名空间,一个框架。cascade、restrict

    • create schema<模式名> authorization 《用户名》
    • 如果没有指定模式名,则模式名默认为用户名。
    • 可以在创建模式的时同时创建视图、基本表。
  2. 基本表的定义和删除        ---表级完整性约束条件,当完整性约束条件涉及到该表的多个属性列时
    • create table <表名>
    • <列名> <数据类型> 【完整性约束条件】
    • 注意:的那个完整性约束条件涉及到表的多个属性列时,必须定义为表级完整性约束条件。
    • 注意: 当想指定多个列为主键时,不能在每个列后面平日primarykey,而要在最后加上如primary key(wid,sdate)的语句

  3. 删除表或者模式:

      drop    cascade 彻底删除,包括该模式中包含的表、视图、及引用等等

            restrict  限制删除,该表或模式,不能有视图、表、引用等时才可。

4. 修改基本表

    alter table <表名>

      add <新列名> <数据类型>【完整性约束条件】--用于增加新列和新的完整性约束条件

      drop < 完整性约束条件>----------------------删除指定的完整性约束条件、也可以删除表中的某个属性,如性别、年龄等。

      alter column <列名><数据类型>  -------------修改原列的定义,包括列名、数据类型。

  5. 模式与表的关系--  一个模式对应多个表,一个表仅属于一个模式

      定义表时如何定义所属模式?

      • 法1. 表名中给出模式名,如“S-T”.Student
      • 2.   创建模式时创建表            

6. 索引的建立与删除

    建立 

    create cluster\unique index 索引名------cluster 聚簇索引,unique 每个索引值对应一个数据记录

    on  表名 (列名) ASC/DESC--默认ASC

    删除 drop index 索引名

二、数据库查询

(一)、select  目标列表达式

    from 表名/视图名,....

    where 条件表达式

    group by 列名1    having  条件表达式----按列名1的值分组,满足having指定条件的才输出

    order  by 列名2   ASC、desc ---------按列名2 的值排序

  1. 可查询经过计算的值
  2. 可通过select设置别名---- 前边是要显示的查询内容,其后紧跟该列的别名。

 3.     查询条件:

      比较

      确定范围

      确定集合

      字符匹配: %、_  、\-------like‘....’、escape‘_...’

      空值

      多重条件

  4.聚集函数:

    注: 作用在select中,不可以作用在where语句中。

    count(distinct\all    *)----distinct  计算时取消指定列中的重复值。

    count(distinct\all  列名)

    sum(distinct\all  列名)

    avg(distinct\all  列名)

    max(distinct\all  列名)

    min(distinct\all  列名)

    

  5. where子句和having短语的区别:

  作用对象不同,where子句作用于基本表或视图,having短语作用于组。

   6. group by--把查询完的结果分组,如在下例中,不分组,id为1的就会出现多条。

  一般用于将查询结果分组,多配合聚合函数,sum,count,min,max等一起使用。

  如表名test,数据如下

  id     grade

  1        10

  1        50

  2        30

  2        40

  3        20

  如果按照id,求grade的和,则可以

     select id,sum(grade) as grade from test group by id

    结果就是

    id     grade

    1        60

    2        70

    3        20

    注意:count,min,max函数等也是同样道理

    但有时,group by也配合having使用,如上边的例子,如果要查询grade的和大于50的id及grade的和,就可以这样使用

    select id,sum(grade) as grade from test group by id having sum(grade)>50

    结果如下:

    id     grade

    1        60

    2        70

(二) 、

1.连接查询

    等值连接

    自然连接--去掉目标列中重复的属性列

    自身连接--给表取两个别名

    外连接----左外、右外、    显示空值

复合条件连接---where子句中多个连接条件。

2. 嵌套查询------

    • 带有in谓词的子查询:    通过 in 多层嵌套,from后仅一个表,我们也可以用连接查询中的那几个方法来实现,但是此时from后可能就涉及到多个表了。
    • 带有比较运算符的子查询   :---相关子查询,内层查询与外层查询有关,必须反复求值,不像带in 的 一样。

3.子查询返回多值时,用带有any()、all的子查询。

4.带有exists的子查询, ---父查询:内层查询为空,返回假,非空返回真。

(三)、

   数据更新

  1. 插入数据

     插入元组

        insert

        into 表名  属性列1,2,,,,---------属性列不写时表中所有列都要插入,此时的常量顺序要与创建表时顺序一致。

        values (常量1,2,‘  ’,‘   ’ );

     插入子插叙结果

        insert

        into 表名 属性列1,2,,,,

        子查询;

   2.修改数据(即更新操作)

     update 表名

     set 列名=表达式

     where 条件;---不写条件,表示要修改表中所有元组。----where后的条件也可以是子查询。

   3. 删除数据

     delete

     from 表名

     where 条件;---条件也可以为子查询。

两种方法实现:

三、视图

1.建立视图-----视图可以建立在已定义的一个或多个基本表或者视图上

     create view 视图名 列名,,,----列名可以省略 ,此时隐含该视图由子查询中select子句的目标列中的诸字段组成。

     as  子查询

     with check option -----也可以省略。表示对视图进行增删改时,要满足子查询中的条件。系统会自动加上子查询中where后的条件。

2.  带表达式的视图--虚拟列,也即派生属性列

    create view BT_S(Sno,Sname,Sbirth)

    as

    select Sno,Sname,2004-Sage

    from Student ;

3. 分组视图:用带有聚集函数或group by子句的查询来定义的视图

   4.删除视图

    drop view 视图名 cascade-可以不写

   5. 查询视图

    查询时,系统会从数据字典中取出视图的定义,把定义中的子查询和用户的查询结合起来,转换成等价的对基本表的查询,即视图消解

     6.更新视图

    插删改--insert delete update

  注: 删除表或者模式、索引,用drop,删除数据用delete,

    delete删除的是表中的数据,而不是表的定义。drop删除的是表的定义(包括表中数据、此表上建立的所以、视图、触发器都会被删除)

SQL Server创建和使用临时表(转)

创建临时表
       方法一:
     create table #临时表名(字段1 约束条件,
                      字段2 约束条件,
                  .....)
        create table ##临时表名(字段1 约束条件,
                          字段2 约束条件,
                      .....)
        方法二:
     select * into #临时表名 from 你的表;
       select * into ##临时表名 from 你的表;
注:以上的#代表局部临时表,##代表全局临时表

  into #临时表名,一定要紧跟在select 语句之后

查询临时表
     select * from #临时表名;
       select * from ##临时表名;

删除临时表
     drop table #临时表名;
       drop table ##临时表名;

引用地址:

http://www.cnblogs.com/Hdsome/archive/2008/12/10/1351504.html

执行多条语句

  在语句之间加上 go use factory   

          go。。。

例如:

--创建数据库factory
create database factory2
go
use factory2
go

--创建表worker
create table worker2
(
wid char(3) primary key,
wname varchar(10) not null,
wsex char(3) check (wsex in ('男','女')),
wbirthdate date,
wparty char(3),
wjobdate date,
depid char(3)
)

go

--创建salary
create table salary
(
wid char(3) ,
sdate date,
totalsalary decimal(10,1),
actualsalary decimal(10,1)
primary key(wid,sdate)
)

·数据库基本内容回顾-day16.06.30的更多相关文章

  1. 在IOS中使用DES算法对Sqlite数据库进行内容加密存储并读取解密

    在IOS中使用DES算法对Sqlite 数据库进行内容加密存储并读取解密 涉及知识点: 1.DES加密算法: 2.OC对Sqlite数据库的读写: 3.IOS APP文件存储的两种方式及读取方式. 以 ...

  2. python 全栈开发,Day72(昨日作业讲解,昨日内容回顾,Django多表创建)

    昨日作业讲解 1.图书管理系统 实现功能:book单表的增删改查 1.1 新建一个项目bms,创建应用book.过程略... 1.2 手动创建static目录,并在目录里面创建css文件夹,修改set ...

  3. 04 DRF内容回顾、用户登录 (含跨域) (vuex vue-cookie)、用户认证 (Auth认证)(拦截器)

    1.内容回顾 1.视图中常见的继承 2.频率访问控制源码 3.序列化,反序列化 2.初始化代码 1.后端代码:AuthView (1)目录结构 (2)urls (3)view (4)注释掉cors ( ...

  4. 基本数据类型-集合(set)_上周内容回顾(字符串_数字_列表_元组_字典_集合)

    上周内容回顾 1.字符串 2.数字 除了布尔类型外,int.long.float和complex都可以使用的运算为:加.减.乘.除.整除.幂运算和取余 3.列表和元组 列表的内容可变,可以包含任意对象 ...

  5. 用ListView实现对数据库的内容显示

    用ListView实现对数据库的内容显示 创建一个触发机制 ---------(作用)将数据读入ArrayList集合中 MyBase base = new MyBase(); SQLiteDatab ...

  6. python 全栈开发,Day112(内容回顾,单例模式,路由系统,stark组件)

    一.内容回顾 类可否作为字典的key 初级 举例: class Foo(object): pass _registry = { Foo:123 } print(_registry) 执行输出: {&l ...

  7. Netty源码分析第4章(pipeline)---->第7节: 前章节内容回顾

    Netty源码分析第四章: pipeline 第七节: 前章节内容回顾 我们在第一章和第三章中, 遗留了很多有关事件传输的相关逻辑, 这里带大家一一回顾 首先看两个问题: 1.在客户端接入的时候, N ...

  8. 第二百七十八节,MySQL数据库-表内容操作

    MySQL数据库-表内容操作 1.表内容增加 insert into 表 (列名,列名...) values (值,值,值...); 添加表内容添加一条数据 insert into 表 (列名,列名. ...

  9. springcloud(六):Spring Cloud 配置中心采用数据库存储配置内容

    Spring Cloud 配置中心采用数据库存储配置内容 转自:Spring Cloud Config采用数据库存储配置内容[Edgware+] Spring Cloud Server配置中心采用了G ...

随机推荐

  1. 【Usaco2008 Mar】土地购买

    [题目描述] 农夫John准备扩大他的农场,他正在考虑N (1 <= N <= 50,000) 块长方形的土地. 每块土地的长宽满足(1 <= 宽 <= 1,000,000; ...

  2. 再谈CMake与RPATH

    之前写过一篇<探讨CMake中关于RPATH的使用>,只要针对的方面是在编译生成之后(不包括安装的make install)如何去除RPATH的问题.今天给大家主要介绍一下如何让CMake ...

  3. YesFInder - Web File Manager 网页文件管理系统

    开发原由: 原来想找一下实现可视化图片上传程序,先找了ckfinder,发现居然是收费的,而且用起来也不顺手,于是想能不能自己写一个.想到这就立即动手,花2天时间完成初步功能,然后再花了3天完善.目前 ...

  4. JS动态加载 js css

    1.动态加载js function loadScript( url ){ var script = document.createElement( "script" ); scri ...

  5. Python自动化运维之14、设计模式

    设计模式是什么? 设计模式是经过总结.优化的,对我们经常会碰到的一些编程问题的可重用解决方案.一个设计模式并不像一个类或一个库那样能够直接作用于我们的代码.反之,设计模式更为高级,它是一种必须在特定情 ...

  6. ADO.Net增、删、改、查

    数据访问 需要引用 对应命名空间:System.Data.SqlClient; SqlConnection:连接对象 SqlCommand:命令对象 SqlDataReader:读取器对象 Comma ...

  7. Scut 进阶:Schema 自动检测

    Scut 在启动时有一个自动根据代码中数据类型检查数据库字段的功能,要如何使用呢? 脚本引擎动态加载 ModelAssembly: ScriptEngine.cs - InitScriptRuntim ...

  8. 转:PHP - .htaccess设置显示PHP错误

    使用.htaccess可以在某种程度上更改PHP的错误显示的设置,实际上,相当于更改PHP.ini的参数,很是方便. 将以下相应代码放到对应目录中的.htaccess文件,即可实现相应功能. 关闭错误 ...

  9. zoj 3785 What day is that day?

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5272 打表找规律. #include <cstdio> #incl ...

  10. BAT之间的区别(学点网页编程,然后开始研究)

    A: 阿里不就是靠网页起家的吗? T: 腾讯靠客户端. B: 百度是靠网页背后的算法技术支持- 最近网页技术又发布了很多新功能,而现在网页功能也已经很强大了. 不知道自己是不是老了,总觉得不喜欢网页( ...