文档章节

重温——RDBMS

鲁雯雪
 鲁雯雪
发布于 2014/07/09 00:21
字数 3027
阅读 133
收藏 7
点赞 0
评论 4

第一章   关系型数据库管理系统(relational database managerment system简称RDBMS

本章重点:理解关系型数据库的基本概念

                                     理解数据库管理系统管理的工作原理

                                      熟悉结构化查询语言及其分类

必记词汇:

        Entity(实体)   relationship(关系)  attribute(属性)

        Column(行)   row(列)     local(本地)

        Server(服务器)

数据库集中式控制的优点(6个):

降低冗余度

2数据一致性

3存储数据可以共享

4可以建立数据库所遵循的标准

5维护数据完整性

6实现数据的安全性

数据在数据库中的存储形式(4种)

                        A 层次模型

                        B 网状模型

                        C 关系模型

                        D 对象模型

关系型数据库的基本概念:以关系模型来创建的数据库称为关系型数据库。其相似的实体被存入表中,表是关系型数据库的核心单元,是数据存储的地方。

关系型数据库与表之间的关系:(3点)

                          1 一对一

                          2一对多

                          3多对多

注:在商业应用程序开发中,为安全性及性能考虑,通常采用数据库服务器管理系统。

操作关系行数据库有:DQL 、DML、  DDL、  DCL


       

     第二章   管理数据库和表

本章重点

        如何管理数据库

                 掌握各种数据类型

        如何管理数据库表

      必记词汇:create 创建   table 

A. 创建和使用数据库(表):

       创建(删除)数据库语法:

       Createdropdatabase+数据库名;

       创建(删除)表语法:

       Createdroptable+表名;     

    B. 表的管理:(如何动态添加一个管理列)

      删除列语法:alter table+表名+drop column+修要删除的列名;      

               添加列语法:alter table+要修改的表名+add column+需要添加的列名+数据类型;    

               修改列语法:alter table+表名+change +需要修改的列名+空格键+变化后的列名+数据类型;    

               复制表语法:create table+表名+select*from+需要复制的表名;

               注:在这儿的*号可以替换为多个列名。

      注:临时创建表不要求记忆。

C.管理索引

     索引的概述:索引是一个用来提供整个数据库操作速度的数据库对象,他通过创建一个内部的索引表来达到快速搜索的目的,索引是依赖与表建立的,在一个表上创建索引可以提高在该表上执行select语句的速度(优点);但同时也会降低deleteupdateinsert语句执行的速度(缺点)。

     创建索引语法:create index+索引名+on+表名+列名1,列名2

     删除(表中的)索引语法:(alter table+表名)drop index+表名.+索引名;

 D.数据类型(9种):

  1.整数据类型:

       Int:占4个字节的存储空间。

       Smallint:占2个字节的存储空间。

       Bigint: 8个字节的存储空间。

                 Tinyint: 1个字节的存储空间。

2.浮点数据类型:

       Float: 8个字节的存储空间。

       Double: 8个字节的存储空间。

                   Decimal:可以提供小数所需要的实际存储空间。

       Real: 4个字节的存储空间。

                   Numeric: decimal数据类型相同

3.字符串类型:

         Char:固定长度,默认长度为1,()里的长度可省略。

         Varchar:其长度不超过8kb

         Text:长度超过8kb  

         Unicode

4.二进制数据类型:

         Binary:

        Varbinary:

5.逻辑数据类型:

        Flase()

        True(真):

6.图形数据类型:

        Image

7.日期和时间数据类型:

            Year(年):

            Datetime(--)

            Date(年--日):

          Smalldatetime:

8.货币数据类型:

                Money:

                Smallmoney:

9.特殊数据类型:

                Timestamp:

                Uniqueidentifier:

注:所有的数据类型都为创建表服务。


第2章 数据完整性

本章重点:

        理解数据完整性的含义

        掌握实现各种数据完整性类型的方法

        掌握创建的中约束的语法

1. 数据完整性的类别(4类):

实体完整性:主键(primary key)和唯一(unique)

域完整性:check(检验),default(默认),not null(非空), Foreign(外键)        

引用完整性:所谓引用完整性就是我们必须在有关联关系的表中,确保一个表的外键的值来源于另一个表中的主键值。即引用数据fk(外键).

用户自定义完整性:可以通过触发器,存储过程等实现。

注:外键是放与创建表的里面的。


第3章 使用DML语句更改数据

本章目标

使用insert语句添加数据

使用update语句修改数据

使用delete语句删除数据

必记词汇:

         Insert(添加)  values()  

         Update(修改)  set(设置)

         Delete(删除)  truncate(删除)

注:delete*from 的语法书写是错误的。

1.添加新数据

添加数据(单,多行数据):

语法:insert into+表名+列名列表+values+值列表

修改数据:

语法1update+表名+set+新列值列表+where条件;

语法2update+表名+set+1=新值1,列2=新值2 +where条件;

删除数据:(deletetrnucate

语法1delete from +表名+where条件;

语法2truncate table+表名;

注:deletetruncate的差异:

1. 语法上:delete可跟条件,而truncate不能跟条件。

2. 主键影响:delete从最大的值开始,而truncate返回原始状态1

   3.效率上:delete一次只能删除一条,而truncate能删除表中所有的行。

4.日志文件:delete操作会记录到日志文件,而truncate则不会。

 

第4章 简单的数据查询(DCL语句)

本章目标

       简单查询中的投影操作

       简单查询中的选择操作

       简单查询中的排序操作

必记词汇:

         Select(选择)  like ()  projection(投影)

      Distinct(排除重复)  between  and(在两者之间,包括边界值)    and(同时满足)   or(其中之一) in(集合) 

Order by(排序)   limit(分页)

Is null(是空) 

1. 查询的基本结构即(投影操作):

语法1select*from+表名(查询所有的表)

注:(*在这儿,指代这张表中的所有列名,也可将*有具体的列名列表代替)。

语法2:模糊查询(like) 

select*from+表名+where +name like%_;

注:(where后面的是过滤条件,‘%’是指通配符,代表0个,1个或者是多个字符。‘-’是指占位符,它可以是数字,字母或者是汉字。)

2.列别名(列别名是为了让人们更加便于理解)

A作为,通常用于列别名的情况下。

3.计算列 (列的算数运算,只能够是数字运算)

例:Select name +3 from course;

注:(列名只能由数字和数字相加,不能是数字和字符串相加的)。 

          4.排除重复数据(distinct 排除重复后,仍会保留一个重复的值)                    

语法:select distinct+列名+from+表名;

灵活运用:select distinct+列名1,列名2+from+表名; 

5.选择操作即(通过用where子句来指定查询条件,只从表中提取或显示满足条件的查询。)

 语法:select +列表列名+from+表名+where条件;

where条件后可接(6个):

1. 运算符

2. like模糊查询中的‘-’,‘%

3. in()集合

4. between   and

5. and   or

6. is  null

注:26无法进行址查询。

7. limit(分页)

分析1(跟一个参数)limit M;代表返回这张表中的前M条数据。

例:select*from student limit5

分析2(跟两个参数):limit M,N

例:select*from student limit3,7;(解析:在这3是指行数,代表从3这个位置的下一行开始,即m=3,运行时从m=4开始;7是指返回的7条数据,即n=7.)

注;limit不需要加where

8. 排序操作(order by 默认是从小到大ASC(升序),DESC(倒序)

语法:order by+列名(列名1,列名2);

      第六章   聚合函数与分组

本章目标

       常用的聚合函数的用法

       数据分组统计

1. 使用聚合函数进行统计汇总

五类聚合函数:

     统计行数Count语法:select count(计数规范)from(表名);

     求和Sum语法:select sum(计数规范)from(表名);

        求平均值Avg语法:select avg(平均值规范)from(表名);

        求最大值Max语法:select max(最大值规范)from(表名);

        求最小值Min语法:select min(最小值规范)from(表名);

2. 数据分组(group by分组不写where,可对多个列进行分组)

       (原始状态)语法:select count*),group by+(列名)

        执行顺序:先分组,在执行,最后统计。

      换一种展现形式如:

  语法:Group_concat+列名;

3. SQL语句的执行顺序

A. select +表名     d.

B. from+列名   a.

C. where+条件过滤  b.

D. group by+列名    c.

E. having+条件     e

F. order by+列名     f.

G. limit           g.

注:having后可跟上where的任何条件,它主要用于对聚合函数的结果过滤

注:大写是按语法顺序执行,小写是按mysql执行顺序。

第5章 组合查询

本章目标

         子查询

         集合操作union

1. 子查询定义:嵌套在其他查询中的查询即是子查询。

2. 子查询的分类:相关子查询和非相关子查询。

二者的区别(差异):非相关子查询是独立于外部查询的子查询,子查询总共执行一次,执行完毕后将值传递给外部查询。而相关子查询的执行依赖于外部查询的数据。当外部查询返回一行,子查询就执行一行。

3. 子查询作为计算列的语法

Select columnA,(子查询) as columnB from +表名;

注:返回多个结果的子查询用in来连接,其后可以是一个字符或数字。例:select columnAcolumnB from table where column in(select columnD from table 2);

4. where子句中的子查询有:between  and、 and  or、 In 、运算符。                                                   

5. 在子查询中使用运算符

A. 使用exists(存在)运算符

语法:select studentidname from student

      Where exists(子查询)

语法说明:1.where后面不能接列名,

          2.exists当判断()里的结果集时,如有返回一个值就为真,运行出来的结果是全部;如没有返回一个值就为假,运行出来的结果什么也没有,为空。

B. 使用all(匹配所有)运算符

例:select columnA from table 

where columnA>ALLselect columnB from table;

注:all运算符与子查询和比较运算符(=>,>=)一起使用。

C. 使用any(其中之一)运算符

说明:崽子查询返回的值中,只要有一行满足比较运算符,则比较表达式的值就为真,若所有的值都不满足,则返回假。

例:select columnA from tableA

WHERE columnA>(SELECT columnB FROM tableB);

D. 使用union运算符

语法:select columnAcolumnB from tableA

Union  select columnC , columnD from tableB;

第八章    联接

本章目标 

       联接的几种方式

       如何使用联接输出多个表的数据

1. 使用连接

A. 内联接 

语法:select*from t_student t_class

          Where t_student.Class_id =t_class.pk_id;

B. 外联接(3类)

左外联接(leftouter) join

语法:select *from table1

Leftouterjoin table2 

on table1.column1= table2. column2

右外联接(rightouter) join

语法:select *from table1

Rightouterjoin table2 

on table1.column1= table2. column2

全外联接(fullouter) join

语法:select *from table1

Fullouterjoin table2 

on table1.column1= table2. column2

 

C. 交叉联接

问:我们在数据库的表中何时才能用到联接?

当我们所操作的数据库是来自于两张表或者多张表时,则就需要建立联接。

注:on后不仅可以跟where的所有条件,还可以跟多个过滤条件。


© 著作权归作者所有

共有 人打赏支持
鲁雯雪
粉丝 99
博文 34
码字总数 24669
作品 0
黄浦
项目经理
加载中

评论(4)

鲁雯雪
鲁雯雪

引用来自“fun_java”的评论

6363
谢谢。
wyp_oschina
wyp_oschina
6363
鲁雯雪
鲁雯雪

引用来自“孙新建”的评论

63
,谢谢
孙新建
孙新建
63
java基础io流——配角也风流(不求甚解)

本章简单介绍几个常见的io流派生。 1:数据操作流(操作基本类型数据的流)(理解) 代码示例: 2:内存操作流(理解) 用于处理临时存储信息的,程序结束,数据就从内存中消失。 代码示例: 注:查看...

潇潇漓燃
05/30
0
0
ORA-03137 11.2.0.1 bug一枚

Oracle Version:11.2.0.1 ———————————— 刚上班,开发丢过来一个截图。 通过给出的时间,抓出数据库里面对应的SQL,仔细查看SQL,基本上没有啥性能问题。 然后通过查看alert日志...

Vimeo
2016/07/04
13
0
Apache Cocoon 集成测试框架 1.0.1 发布

Apache Cocoon 今天发布子项目 —— 集成测试框架 1.0.1 版本,同时发布的还有 Servlet Service Implementation 1.3.2。 Cocoon的目标是帮助分离内容格式、逻辑和对基于XML网站的管理功能。C...

红薯
2012/12/18
726
0
NoSQL 再次败北——我坚持使用 SQL 的原因

【编者按】NoSQL拥有可扩展性和超高吞吐量的能力,然而这却没有发挥实际的优势,同时它不具备关系数据库所有的智能操作,虽然具有无模式存储的优势,却无形中增加了代码的复杂度。更多的应用...

oschina
2014/08/03
9.5K
48
VS2013配置pro*C/C++开发环境

1、软件:VS2013,oracle10g 2、VS2013 新建VC++空项目,然后在源文件中新建一个*.pc文件(不知道我的配置哪儿有问题,新建的pc文件必须和工程同名),右击该文件——》属性——》常规——》...

sun_beauty
2015/12/16
1K
0
HDFS Everywhere——RDBMS on HDFS

关系型数据库和HDFS的结合 ** 目录 ** 简介: – 题目: – 摘要: – 背景: 思路和计划: – 目标: 分工: 已有解决方案: – Sqoop: Solution: sqoop与loading对比: 项目简介: – 题目...

dukeke
2015/06/25
0
0
经典SQL问题: 行转列

学校里面记录成绩,每个人的选课不一样,而且以后会添加课程,所以不需要把所有课程当作列。数据库grade里面数据如下图,假定每个人姓名都不一样,作为主键。本文以MySQL为基础,其他数据库会...

闪电
2015/09/19
25.7K
0
RDBMS-mysql初步

rdbms: 1、数据库的建立删除 2、表单的创建、删除、修改 3、索引的创建和删除 4、用户和权限 5、数据的增删改 6、查询 DML:数据操作语言 INSERT REPLACE DELETE UPDATE DDL:数据定义语言 ...

jyxcto
2017/05/29
0
0
《大规模WEB服务开发技术》读书笔记(I)

1、认识服务的规模 注册用户,独立用户 请求数 繁忙时流量 服务器台数 貌似应该有很多其他的指标,以前都听说过,但是从来没有认真分析过,已经上线的系统也没有对此进行过统计和分析! 2、大...

ayesd
2014/04/28
0
0
曾影响苹果走向,传奇电脑 “Lisa” 源代码修复完成,将于今年开源

  在 iPhone、iMac 以及 Macintosh 诞生之前,苹果先有了 Lisa 电脑。   苹果的 Lisa 计算机可不一般,它是本地集成软件架构的代表作,并以乔布斯大女儿的名字命名。但是,1983 年 Lisa...

DeepTech深科技
01/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

www.w3.org被qiang导致logback报错:Connect reset

web项目部署到tomcat后,web项目中的logback不能运行,报错信息如下: Reported exception: ch.qos.logback.core.joran.spi.JoranException: I/O error occurred while parsing xml file......

浮躁的码农
21分钟前
0
0
JDeveloper中文乱码解决

全局设置字体; 全局设置环境编码; 项目设置编译器环境编码。

wffger
49分钟前
2
0
MySQL主从介绍 , 准备工作,配置主,配置从, 测试主从同步

MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的 MySQL主从是基于binlog的,主上须开启bin...

TaoXu
今天
1
0
线性代数学习总结

亭子happy
今天
1
0
Java8:Lambda表达式增强版Comparator和排序

1、概述 在这篇教程里,我们将要去了解下即将到来的JDK 8(译注,现在JDK 8已经发布了)中的Lambda表达式——特别是怎样使用它来编写Comparator和对集合(Collection)进行排序。 这篇文章是...

孟飞阳
今天
0
0
从架构到组件,深挖istio如何连接、管理和保护微服务2.0?

近几年我一直从事于微服务系统的设计以及实现方面的工作,属于微服务架构一线实践者。之前做过一些单体系统的微服务改造,在微服务拆分、治理等方面都有一定的经验。 本人比较特殊一点的经历...

xiaomin0322
今天
1
0
基于vue的h5文件切片上传(获取文件md5,实现秒传、进度条实现)

template <button @click="file"></button><label ref="upload" style="position: relative;"> <input type="file" @change="selectFile" style="position: abs......

hkaikai
今天
2
0
Spring Boot 2.0 项目实现自同步AD域账号

在通过Spring Boot的自动化装配功能及JDK自带的LDAP模块,可通过如下几个简单步骤实现业务系统自动同步AD域账号功能。 1. Java自带ldap搜索域账号信息核心代码: try { LdapContext ctx...

B超
今天
1
0
Python----字符串中编码的问题

字符串中编码的问题 1、字符串前加 u 例:u"我是含有中文字符组成的字符串。" 作用: 后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用...

android-key
今天
1
0
Tomcat8.0 + Redis 实现 Session 会话共享

由于项目需要,需要实现Tomcat8.0 + Redis 实现 Session 会话共享,以便于实现多应用集群。后参考了开源项目: https://github.com/jcoleman/tomcat-redis-session-manager 进行调整后实现该...

杨应滨
今天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部