·数据库基本内容回顾-day16.06.30
一、
- 模式的定义和删除 ---创建了一个模式,就创建了一个数据库命名空间,一个框架。cascade、restrict
- create schema<模式名> authorization 《用户名》
- 如果没有指定模式名,则模式名默认为用户名。
- 可以在创建模式的时同时创建视图、基本表。
- 基本表的定义和删除 ---表级完整性约束条件,当完整性约束条件涉及到该表的多个属性列时
- 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 的值排序
- 可查询经过计算的值
- 可通过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的更多相关文章
- 在IOS中使用DES算法对Sqlite数据库进行内容加密存储并读取解密
在IOS中使用DES算法对Sqlite 数据库进行内容加密存储并读取解密 涉及知识点: 1.DES加密算法: 2.OC对Sqlite数据库的读写: 3.IOS APP文件存储的两种方式及读取方式. 以 ...
- python 全栈开发,Day72(昨日作业讲解,昨日内容回顾,Django多表创建)
昨日作业讲解 1.图书管理系统 实现功能:book单表的增删改查 1.1 新建一个项目bms,创建应用book.过程略... 1.2 手动创建static目录,并在目录里面创建css文件夹,修改set ...
- 04 DRF内容回顾、用户登录 (含跨域) (vuex vue-cookie)、用户认证 (Auth认证)(拦截器)
1.内容回顾 1.视图中常见的继承 2.频率访问控制源码 3.序列化,反序列化 2.初始化代码 1.后端代码:AuthView (1)目录结构 (2)urls (3)view (4)注释掉cors ( ...
- 基本数据类型-集合(set)_上周内容回顾(字符串_数字_列表_元组_字典_集合)
上周内容回顾 1.字符串 2.数字 除了布尔类型外,int.long.float和complex都可以使用的运算为:加.减.乘.除.整除.幂运算和取余 3.列表和元组 列表的内容可变,可以包含任意对象 ...
- 用ListView实现对数据库的内容显示
用ListView实现对数据库的内容显示 创建一个触发机制 ---------(作用)将数据读入ArrayList集合中 MyBase base = new MyBase(); SQLiteDatab ...
- python 全栈开发,Day112(内容回顾,单例模式,路由系统,stark组件)
一.内容回顾 类可否作为字典的key 初级 举例: class Foo(object): pass _registry = { Foo:123 } print(_registry) 执行输出: {&l ...
- Netty源码分析第4章(pipeline)---->第7节: 前章节内容回顾
Netty源码分析第四章: pipeline 第七节: 前章节内容回顾 我们在第一章和第三章中, 遗留了很多有关事件传输的相关逻辑, 这里带大家一一回顾 首先看两个问题: 1.在客户端接入的时候, N ...
- 第二百七十八节,MySQL数据库-表内容操作
MySQL数据库-表内容操作 1.表内容增加 insert into 表 (列名,列名...) values (值,值,值...); 添加表内容添加一条数据 insert into 表 (列名,列名. ...
- springcloud(六):Spring Cloud 配置中心采用数据库存储配置内容
Spring Cloud 配置中心采用数据库存储配置内容 转自:Spring Cloud Config采用数据库存储配置内容[Edgware+] Spring Cloud Server配置中心采用了G ...
随机推荐
- 简单总结焦点事件、Event事件对象、冒泡事件
每学习一些新的东西,要学会复习,总结和记录. 今天来简单总结一下学到的几个事件:焦点事件.Event事件对象.冒泡事件 其实这几个事件应该往深的说是挺难的,但今天主要是以一个小菜的角度去尝试理解一些基 ...
- Knockoutjs官网翻译系列(一)
最近马上要开始一个新项目的研发,作为第一次mvvm应用的尝试,我决定使用knockoutjs框架.作为学习的开始就从官网的Document翻译开始吧,这样会增加印象并加入自己的思考,说是翻译也并不是纯 ...
- php小知识点
1.字符串可以里面的字符可以像数组一样访问,比如$s = "123";$s[1]就等于2,如果字符串为中文则会乱码,需要使用mb_substr进行截取: 2.php中的单引号(' ...
- openMPI小集群安装
经过一天的努力,终于完成了openMPI的多节点安装,即小集群安装.本文使用的是openmpi-1.6.5,下载地址见:http://www.open-mpi.org/software/ompi/v1 ...
- C# ORM—Entity Framework 之Database first(数据库优先)&Model First(模型优先)(一)
一.什么是Entity Framework 1.1 实体框架(EF)是一个对象关系映射器,使.NET开发人员使用特定于域的对象与关系数据.它消除了需要开发人员通常需要编写的大部分数据访问代码.简化了原 ...
- PQJ 1686(栈栈栈)
PQJ 1686(栈栈栈) 用栈解决问题 Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I6 ...
- EGE图形库配置(Dev-C++ 5.10 , TDM GCC 4.8.1)
准备工作:1>Dev-C++ 5.10版本 系统 Win XP/WIN 7 2>下载EGE图形库“ege-13.04.02-full” !,关于本次配置的Dev-C++的信息见如: ...
- COS访谈第十八期:陈天奇
COS访谈第十八期:陈天奇 [COS编辑部按] 受访者:陈天奇 采访者:何通 编辑:王小宁 简介:陈天奇,华盛顿大学计算机系博士生,研究方向为大规模机器学习.他曾获得KDD CUP 20 ...
- Oracle 用户权限管理
SQL> select * from ROLE_SYS_PRIVS where ROLE='RESOURCE'; ROLE PRIVILEGE ADM --------------------- ...
- 【HDOJ】3587 NUDOTA
字符串模拟水题. /* 3587 */ #include <iostream> #include <cstdio> #include <cstring> #incl ...