zoukankan      html  css  js  c++  java
  • 数据库

    什么是数据库:

    数据库即数据的仓库,在数据库中提供了专门的管理系统,对数据库中的数据进行集中的控制和管理。

    数据库分类:

    大型数据库:Oracle DB2

    中型数据库:Ms SQLserver

    小型数据库:mySQL

     

    查看所有数据库 : show databases;

    进入数据库: use 库名;

    数据库的注释: -- 空格


     

    数据定义语言(DDL):创建、删除、修改数据库的内部数据结构

    常用的DDL语法:

    创建数据库 :create database 库名(随便取);

    切换数据库 : use 库名;

    创建表 :table

    查看数库下面所有表 : show tables;

    查看某张表的具体结构:describe 表名;

    删除数据库 : drop database 库名;

    删除表 : drop table 表名;

    复制表 :create table 新表名 select*from 原来的表名;

    添加列 : alter table 新表名 add 参数名字 类型;

    删除列 :alter table 新表名 drop column 参数名字;

    修改列的数据类型 :alter table 新表名 modify 参数名字 类型;

    修改列的字段名 : alter table 原来新表名 change 参数名字 改的新的表名 类型;

    创建索引(作用:提升查找速度):

    create index 索引名_name_index on 表名( _name);

    删除索引名:

    alter table 表名 drop index on 索引名_name_index;

    例:

    -- 创建数据库
     create database j175;
    
    -- 切换数据库
    use j175;
    
    -- 创建表 table
    
    create  table    t_food(表名)(
          f_id  int, -- 编号
          f_name  varchar(20), -- 名称(长度最多20个字符)
          f_weight  float,  -- 重量
          f_price   decimal(5,2),-- 价格(规定的浮点型的长度,总长度5位,小数点后两位)
          f_publish  date, -- 日期
          f_type  char -- 类型 注:最后一次输入不能用“,”号 
          );
    -- 查看数据库下面所有表
     show tables;
    
    -- 查看某张表的具体结构
      describe t_food;
    
    -- 删除数据库
      drop database j175;
    
    -- 删除表
      drop table t_food;
    
    -- 复制表
      create table t_food_bak select * from t_food;
    
    -- 添加列
      alter table t_food_bak add f_exp varchar(10);
    
    -- 删除列
      alter table t_food_bak drop column f_exp;
    
    -- 修改列的数据类型(下面是把varchar转换成int数据类型)
      alter table t_food_bak modify f_exp int;
    
    -- 修改列
      alter table t_food_bak change f_exp f_exp_new varchar(20);
    
    -- 创建索引
      create index t_food_bak_name_index on t_food_bak(f_name);
    
    -- 删除索引
      alter table  t_food_bak drop index t_food_bak_name_index;

    数据在数据库中的存储形式:层次模型 、网状模型、关系模型、对象模型

    层次模型如图:

    网状模型如图:

    关系模型如图:

     

     

     


     

    关系型数据库中的三种关系(表关系):一对一关系,一对多关系、多对多关系

    一对一关系如图:

     

     

    一对多关系如图:

     

     

    多对多关系如图:

     

     

     

     

     

    什么是数据库管理系统:

    关系型数据库只是一个保存数据的容器, 大多数数据库依靠一个称为 数据库管理系统(Database Management System,简称DBMS)的软件来管理数据库中数据。 管理关系型数据库的软件称为 关系型数据库管理系统(Relational Database Management System,简称RDBMS)。 数据库应用程序通过RDBMS与关系型数据库进行交互。

    数据库管理系统分类:

    1、本地数据库管理系统:

    本地数据库管理系统又称桌面型数据库管理系统 ​ 在这种系统模式下,RDBMS与数据库应用程序运行在同一客户端的进程中,

    例如微软的Access数据库,其模型如下图所示

     

    2、数据库服务器管理系统:

    在数据库服务器管理系统中,RDBMS和数据库应用程序运行在不同的进程,通常在不同的机器上。 ​ 一般数据库应用程序在客户端,而RDBMS则在专门的数据库服务器上。

    其模型如下图所示

     

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


    结构化查询语言(Structured Query Language)-SQL

    1、SQL是结构化查询语言(Structured Query Language)的英文缩写,发音为“see-kwell”。 是一种用于管理关系型数据库,并与数据库中的数据进行通讯的计算机语言。

    2、SQL是一种用于数据库操作的语言,并且已经成为数据库管理的标准语言。

    3、SQL与RDBMS(Relational Database Management System,关系型数据库管理系统的简称为RDBMS 管理关系型数据库的软件称为关系型数据库管理系统)协同工作, 来定义数据库的结构、存储数据、操纵数据、获取数据、控制对数据的访问以及确保数据的完整性。

    4、SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础, 并且现在几乎所有的数据库均支持SQL。

    SQL语言特点:

    1.SQL集数据定义、数据操纵和数据控制于一体,可以完成数据库中的全部工作。

    2.使用方式灵活:它具有两种使用方式,即可以直接以命令方式交互使用, 也可以嵌入使用,嵌入到C、C++、php、JAVA等主流编程语言中使用。

    3.非过程化:使用时只需要告诉计算机“做什么”,而不需要告诉它“怎么做”。

    4.语言简洁,语法简单,核心功能只用6个动词,语法接近英语口语。

    SQL 语言组成(由四个部分):

    1、数据定义语言(Data Definition Language-DDL)

    数据定义语言用于定义数据库、定义数据表、定义视图与索引等。

    2、数据操作语言(Data Manipulation Language-DML)

    数据操作语言用于操作关系型数据库对象内部的数据,基本命令插入(Insert)、更新(Update)和删除(Delete)

    3、数据查询语言(Data Query Language-DQL)

    数据查询语言是现代关系型数据库用户最关注的部分,通过 Select 语句查询数据。

    4、数据控制语言(Data Control Language-DCL)

    数据控制语言分为事务控制语句、安全性控制语句等,用于控制对数据库里数据的访问,通常用于创建与用户访问相关的对象,以及控制用户的权限,如修改密码(Alter password)、权限(Grant)等等。

     

     

    系入图:

  • 相关阅读:
    [论文笔记] Human Computation (DAC, 2009)
    [论文收集] HCOMP 2011概况及收录论文
    [论文笔记] reCAPTCHA: HumanBased Character Recognition via Web Security Measures (Science, 2008)
    [论文笔记] Crowdsourced Databases: Query Processing with People (CIDR, 2011)
    [论文笔记] Crowdsourcing Translation: Professional Quality from NonProfessionals (ACL, 2011)
    [阅读笔记] A Report on the Human Computation Workshop (HCOMP, 2009)
    [论文速读] Towards crowdsourcing translation tasks in library cataloguing, a pilot study (DEST, 2010)
    [文章摘录] Strategies for EarlyStage Collaborative Design (IEEE Software, 2012)
    [论文笔记] Task Matching in Crowdsourcing (iThings & CPSCom, 2011)
    [论文笔记] Exploring microwork opportunities through cybercafés (ACM DEV, 2012)
  • 原文地址:https://www.cnblogs.com/suger-4/p/12088899.html
Copyright © 2011-2022 走看看