Mysql_1 数据库基础

目录:
数据库基本知识
数据库管理系统

一、数据库基本知识

数据库系统由数据库、数据库管理系统、应用系统和数据库管理员构成

1.数据库定义

  数据库实际上就是一个文件集合,是一个存储数据的仓库,本质就是一个文件系统,数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进行增删改查操作。

2.关系型数据库

依照关系模型建立的数据库称为关系数据库。 它是在某个应用领域的所有关系的集合。

补充:非关系型数据库:
通常用来解决某些特定的需求如:数据缓存,高并发访问。 存储数据的形式有多种,举例:Redis数据库:通过键值对的形式存储数据;
关系型数据库和非关系型数据库的区别:
关系型数据库:安全(保存在磁盘基本不会丢失),容易理解和掌握,比较浪费磁盘空间
非关系型数据库:不安全(断电数据会丢失),效率高(运行在内存上比磁盘效率要高)

3.表

 某种特定类型数据的结构化清单

4.二维表

 在关系模型中,数据结构表示为一个二维表,一个关系就是二维表。

5.列

 表中的一个字段,所有表都是一个或多个列组成

6.行

表中的一个记录。

7.主键

能够唯一地标识一个元组的属性或属性组称为关系的键或候选键。 若一个关系有多个候选键则可选其一作为主键(Primary key)。

外键:如果一个关系的一个或一组属性引用(参照)了另一个关系的主键,则称这个或这组属性为外码或外键(Foreign key)

二、数据库管理系统

 数据库管理系统(DBMS,Database Management System),是一个软件,用来管理数据库文件的软件,用户可以访问DBMS对数据进行增删改查操作,常见DBMS有: MySQL、oracle、DB2、sqlite、sqlserver等。

(1)数据定义功能:提供数据定义语言(DDL)
常见的有:
DROP(删除数据库)
    删除数据库:drop database if exists 数据库名
  CREATE(创建数据库)
    创建表:create table if not exists 表名(列名 列名约束)
  ALTER(修改数据库)
    添加列名:alter table 表名 add 列名 约束条件
    修改列名:alter table 表名 change 老列名 新列名 数据类型
    修改列字段数据类型:alter table 表名 modity 列名 数据类型
    删除列名:alter table 表名 drop 列名
    修改表名:alter table 表名 rename 新表名
  GRANT(赋予权限)
   REVOKE(从当前用户或组中取消权限)、TRUNCATE(只删除表中的所有数据,不删除表的结构)
(2)数据操纵功能:提供数据操纵语言(DML)
操纵数据实现对数据库的基本操作:
  SELECT(查询)
    select from 表名 where 条件(条件1 and 条件2)
  INSERT(插入)
    insert into 表名(列1,列2) values(' ',' '),(' ',' '),(' ',' ')
  DELETE(删除)
    delete from 表名 where 条件
  UPDATE(修改)
    update 表名 set 列名=' ',列名=' ' where 条件
(3)数据库的运行管理
  a、保证数据的安全性、完整性
  b、多用户对数据的并发使用
  c、发生故障后的系统恢复
(4)数据库的建立和维护功能(实用程序)
  a、数据库数据批量装载
  b、数据库转储
  c、介质故障的修复
  d、数据库的重组织
  e、性能监视
(3)视图
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。本身不存储数据,而是按照指定的方式进行查询
创建视图CREATE VIEW 视图名(列1,列2...) AS SELECT (列1,列2...) FROM ...;
修改视图:CREATE OR REPLACE VIEW 视图名 AS SELECT [...] FROM [...]
查看数据库已有视图:>SHOW TABLES [like...];(可以使用模糊查找)
查看视图详情:DESC 视图名或者SHOW FIELDS FROM 视图名
视图条件限制:[WITH CHECK OPTION]
(4)存储过程
存储过程的优点:
a.存储过程的能力大大增强了SQL语言的功能和灵活性。
  b.可保证数据的安全性和完整性。
  c.通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。
  d.通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。
  e.在运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能。
  f.可以降低网络的通信量。
  g.使体现企业规则的运算程序放入数据库服务器中,以便 集中控制。
存储过程可以分为系统存储过程、扩展存储过程和用户自定义的存储过程.

create procedure proc_select_officeinfo--(存储过程名)
as select Id,Name from Office_Info--(sql语句)
exec proc_select_officeinfo--(调用存储过程)

有参数时

create procedure procedure_proc_GetoffinfoById --(存储过程名)
@Id int--(参数名 参数类型)
as select Name from dbo.Office_Info where Id=@Id--(sql语句)
exec procedure_proc_GetoffinfoById 2--(存储过程名称之后,空格加上参数,多个参数中间以逗号分隔)

注:参数赋值是,第一个参数可以不写参数名称,后面传入参数,需要明确传入的是哪个参数名称

你可能感兴趣的:(Mysql_1 数据库基础)