关于数据库概念及SQL语句整理

一、概念

1、数据库(database)就是组织、存储和管理数据的仓库。2、数据库类型

3、结构化数据和非结构化数据

结构化数据:在数据库里,可确定出固定的数据结构来表达数据的特性,通常是可用二维逻辑表结构来表达的数据。

非结构化数据:不方便用二维逻辑表来表现的数据,包括所有格式的办公文档、文本、图片、xml、html、各类报表、图像和音频/视频信息等。

4、数据管理的需求

5、脏数据和数据清洗

脏数据:存在错误的数据或者相互之间有冲突的数据。

数据清洗:要按照一定的规则把“脏数据”洗掉,即是数据清洗。

数据清洗的任务就是过滤那些不符合要求的数据,不符合要求的数据主要是有不完整的数据、错误的数据、重复的数据三大类。

二、sql语句整理

1、sql语句的概念结构化查询语言(structuredquery language)简称sql。结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系型数据库。

2、sql语句创建数据库:

create database database_name

删除数据库:

drop database database_name

创建表:

create table table_name(col1 type1 [not null] [primary key],col2 type2 [not null],..)
create  table  students
 (sno    numeric (6, 0) not null
 sname   char (8) not null
 age     numeric(3,0)
 sex     char(2)
 primary key(sno))
create table girl
   as select sno, sname, age
   from students
   where sex=‘girl’;
alter table teachers add (addr char(50))

删除表:

drop table table_name

增加表中键值:

alter table table_name add column col type

主键和外键

举例说明:

学生表(学号,姓名,性别,班级) ,其中每个学生的学号是唯一的,学号就是一个主键。

课程表(课程号,课程名,学分) ,其中课程号是唯一的,课程编号就是一个主键。

成绩表(学号,课程号,成绩) ,因为成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以学号和课程号的属性组是一个主键。在成绩表中的课程号是课程表的外键。

定义主键和外键,主要是为了维护关系数据库的完整性,总结一下:

1.主键是能确定一条记录的唯一标识,通过它可强制表的实体完整性。

主键主要是用于其他表的外键关联,以及本记录的修改与删除。

2.外键用于与另一张表的关联,是能确定另一张表记录的字段,用于保持数据的一致性。

设置表中的主键:

创建或更改表时,可通过定义primary key约束来创建主键。

一个表只能有一个 primary key 约束,而且 primary key 约束中的列不能接受空值。由于 primary key 约束确保唯一数据,所以经常用来定义标识列。

alter table table_name add primary key(col)
alter table enrolls add primary key(sno,cno) 

删除主键:

alter table table_name drop primary key(col)

视图:

视图(view)是从一个或多个表(或视图)导出的表。

视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,在对视图的数据进行操作时,根据视图的定义去操作与视图相关联的基本表。

用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。

视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。

使用视图,可以定制操作用户数据,聚焦特定的数据。

创建视图:

create view view_name as select statement
create view grade_table
    as select  sname,cname,grade
    from  students,courses,enrolls
    where  students.sno = enrolls.sno and
    courses.cno=enrolls.cno

删除视图:

drop view viewname

查询记录:

select sname, age from students where bplace=‘河北’ and sex=‘男’

找出年龄在20~23岁之间的学生的学号、姓名和年龄,并按年龄升序排序。(asc(升序)或desc(降序)声明排序的方式,缺省为升序。

select sno, sname, age from   students where  age between 20 and 23 order  by  age
select sname, sex from students where age < 23  and  bplace  like‘湖%’
(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐