文档章节

重温——RDBMS

鲁雯雪
 鲁雯雪
发布于 2014/07/09 00:21
字数 3027
阅读 133
收藏 7

第一章   关系型数据库管理系统(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的所有条件,还可以跟多个过滤条件。


© 著作权归作者所有

共有 人打赏支持
鲁雯雪
粉丝 100
博文 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
选择 NoSQL 数据库需要考虑的 10 个问题

那么我为什么要写这篇文章呢? 是因为我认为NoSQL解决方案不如RDBMS解决方案吗?当然不! 是因为我专注于SQL的做事方式,而不想陷入一种相对较新的技术的不确定性吗?不,也不是!事实上,我非...

李三石
09/25
0
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

没有更多内容

加载失败,请刷新页面

加载更多

centos7安装Nginx

安装所需环境 一. gcc 安装 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装: yum install gcc-c++ 二. PCRE pcre-devel 安装 PCRE(Perl Co...

狼王黄师傅
29分钟前
1
0
dubbo+apollo微服务开发指南

为了大家比较快速的开发微服务,规范dubbo,spring,mybatis,hessian,netty的版本和用法,我写了一个demo,下面对demo的功能做个简单的介绍,如有疑问的地方,可以私下问我。 微服务项目示例 ...

PageYi
31分钟前
1
0
android流式布局、待办事项应用、贝塞尔曲线、MVP+Rxjava+Retrofit、艺术图片应用等源码

Android精选源码 android模仿淘宝首页效果源码 一款艺术图片应用,采用T-MVVM打造 Android MVP + RxJava + Retrofit项目 android流式布局实现热门标签效果 android仿淘宝客户端商品详情页效果...

Android爱开源
33分钟前
2
0
一步一步安装hive

The Apache Hive ™ data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL. Structure can be projected onto d......

hnairdb
37分钟前
2
0
【WebService 系列二 使用JAX-WS开发示例程序】

1、服务端代码 1.1、编写SEI SEI即(Service Endpoint Interface)SEI在ws中称为portType,在java中称为接口 package jaxws.server;/** * @className: HelloService * @description: jax......

HansonReal
46分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部