zoukankan      html  css  js  c++  java
  • 1、数据库和SQL

    1-1:数据库是什么

      1、数据库是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。

      2、用来管理数据库的计算机系统称为数据库管里系统(DBMS)。

      3、通过使用DBMS,多个用户可以安全、简单地操作大量数据。

      4、关系型数据库通过关系型数据库管理系统(RDBMS)进行管理。

    1-1-1:DBMS种类

      1、层次型数据库(HDB),树型结构。

      2、关系型数据库(RDB),应用最广的,采用二维表结构。

      3、面向对象数据库(OODB)。

      4、XML数据库(XMLDB)。

      5、键值存储系统(KVS)。

    1-2:数据库结构

      1、RDBMS通常使用客户端/服务器这样的系统结构。

      2、通过从客户端向服务器端发送SQL语句来实现数据库的读写操作。

      3、关系数据库采用数据库表的二维表来管理数据。

      4、数据库表由表示数据项目的列(字段)和表示一条数据的行(记录)所组成,以记录为单位进行数据读写。

      5、将行和列交汇的方格称为单元格,每个单元格只能输入一个数据。

      法则1-1:关系数据库以行为单位读写数据。

      法则1-2:一个单元格只能输入一个数据。

    1-3:SQL概要

      1、SQL是为操作数据库而开发的语言。

      2、虽然SQL也有标准,但实际上根据RDBMS的不同SQL也不尽相同。

      3、SQL通过一条语句来描述想要进行的操作,发送给RDBMS。

      4、原则上SQL语句都会使用分号结尾。

      5、SQL根据操作目的可以分为DDL、DML和DCL。

      法则1-3:学会标准的SQL就可以在各种RDBMS中书写SQL语句了。

    1-3-1:SQL语句及其种类

      1、DDL(数据定义语言)用来创建或者删除存储数据用的数据库以及数据库中的表等对象,包括以下几种指令。

        CREATE:创建数据库和表等对象

        DROP:删除数据库和表等对象

        ALTER:修改数据库和表等对象的结构

      2、DML(数据操作语言)用来查询或者变更表中的记录,DML包含以下几种指令。

        SELECT:查询表中的数据

        INSERT:向表中插入新数据

        UPDATE:变更表中的数据

        DELETE:删除表中的数据

      3、DCL(数据控制语言)用来确认或者取消对数据库中数据进行的变更,还可以对RDBMS的用户是否有权限操作数据库中的对象进行设定,DCL包含以下几种指令。

        COMMIT:确认对数据库中的数据进行的变更

        ROLLBACK:取消对数据库中的数据进行的变更

        GRANT:赋予用户打操作权限

        REVOKE:取消用户的操作权限

      法则1-4:SQL根据功能不同可以分为三类,其中使用最多的是DML。

    1-3-2:SQL的基本书写规则

      法则1-5:SQL语句以分号(;)结尾。

      法则1-6:SQL关键词不区分大小写,但建议大写。

      法则1-7:SQL字符串和日期常数需要使用单引号('')括起来,数字常数直接书写。

      法则1-8:SQL单词之间以空格或者换行进行分隔。

     1-4:表的创建

      1、表通过CREATE TABLE语句创建

      2、表和列的命名要有意义

      3、指定列的数据类型

      4、可以在表中设置约束

    1-4-1:数据库的创建

      语法1-1:CREATE DATABASE <数据库名称>;

    -- 创建数据库shop
    CREATE DATABASE shop;

    1-4-2:表的创建

      语法1-2:CREATE TABLE <表名>

      (<列名1> <数据类型> <约束>,

       <列名2> <数据类型> <约束>,

       <列名3> <数据类型> <约束>,

       <列名4> <数据类型> <约束>,

       .......

       <表的约束1><表的约束2>,.....);

    -- 创建Shohin表
    CREATE TABLE Shohin
    (shohin_id          CHAR(4)       NOT NULL,
     shohin_mei         VARCHAR(100)  NOT NULL,
     shohin_bunrui      VARCHAR(32)   NOT NULL,
     hanbai_tanka       INTEGER,
     shiire_tanka       INTEGER,
     torokubi  DATE,
     PRIMARY KEY(shoin_id));

    1-4-3:命名规则

      法则1-9:数据库名称、表名和列名等使用英文字母、数字和下划线。

      法则1-10:名称必须以字母开头。

      法则1-11:名称不能重复。

    1-4-4:数据类型的指定

      1、INTEGER型:用来存储整数的列的数据类型,不能存小数。

      2、CHAR型:用来存储指定长度的字符串的列的数据类型。定长是指字符串达不到最大长度时用空格补全。如CHAR(10),存'abc'会补7个空格,长度为10。

      3、VARCHAR型:用来存储不定长度的字符串列的数据类型。不定长度是指字符串达不到最大长度时不会用空格补全。如VARCHAR(10),存'abc'不会补空格,长度为3。

      4、DATE型:用来存日期(年月日)的列的数据类型。

    1-4-5:约束的设置

      1、NOT NULL不能为空

      2、NULL可以为空

      3、PRIMARY KEY(列名)主键

    1-5:表的的删除和更新

      1、使用DROP TABLE语句来删除表

      2、使用ALTER TALBE语句向表中添加或从表中删除列

    1-5-1:表的删除

      语法1-3:DROP TABLE <表名>;

    -- 删除Shohin表
    DROP TABLE Shohin;

      法则1-12:删除的表是无法恢复的,执行DROP TABLE语句前必须仔细确认。

    1-5-2:表的更新

      1、添加列

      语法1-4:ALTER TABLE <表名> ADD COLUMN <列的定义>;

    -- 添加100位可变长度字符串的shohin_mei_kana列
    -- MySQL
    ALTER TABLE Shohin ADD COLUMN shohin_mei_kana VARCHAR(100);
    
    -- Oracle
    ALTER TABLE Shohin ADD(shohin_mei_kana VARCHAR(100));

      2、删除列

      语法1-5:ALTER TABLE <表名> DROP COLUMN <列名>;

    1 -- Mysql
    2 ALTER TABLE Shohin DROP COLUMN shohin_mei_kana;
    3 
    4 -- Oracle
    5 ALTER TABLE Shohin DROP (shohin_mei_kana);

       法则1-12:删除的列是无法恢复的,执行ALTER TABLE语句前必须仔细确认。

     1-6:向Shohin表中插入数据

    -- SQL Server PostgreSQL
    BEGIN TRANSACTION-- START TRANSACTION; 使用Mysql
    -- Oracle 什么都不用
    
    INSERT INTO Shohin VALUES('0001','T恤衫','衣服',1000,500,'2009-09-20');
    INSERT INTO Shohin VALUES('0002','打孔器','办公用品',500,320,'2009-09-11');
    INSERT INTO Shohin VALUES('0003','运动T恤','衣服',4000,2800,NULL);
    INSERT INTO Shohin VALUES('0004','菜刀','厨房用具',3000,2800,'2009-09-20');
    INSERT INTO Shohin VALUES('0005','高压锅','厨房用具',6800,5000,'2009-01-15');
    INSERT INTO Shohin VALUES('0006','叉子','厨房用具',500,NULL,'2009-09-20');
    INSERT INTO Shohin VALUES('0007','擦菜板','厨房用具',880,790,'2008-04-28');
    INSERT INTO Shohin VALUES('0008','圆珠笔','办公用品',100,NULL,'2009-11-11');
    COMMIT;

    1-7:表名修改

    -- Mysql
    RENAME TABLE Sohin to Shohin;
    
    -- SQL Server
    sp_rename 'Sohin', 'Shohin';
    
    -- DB2
    RENAME TABLE Sohin TO Shohin;
    
    -- Oracle 
    ALTER TABLE Sohin RENAME TO Shohin;

      

  • 相关阅读:
    YAML 语法小结
    小程序之脚本语言
    小程序WXML 使用小结
    微信小程序 js逻辑
    小程序开发1
    联想Y7000安装Ubuntu16.04/Win10双系统,wifi问题,显卡驱动和CUDA10安装
    VS2015中配置Eigen
    联想Y700安装显卡驱动和CUDA8.0
    php微信生成微信公众号二维码扫描进入公众号带参数
    Y7000 (1)安装ubuntu1604遇到的问题
  • 原文地址:https://www.cnblogs.com/jp-mao/p/6582854.html
Copyright © 2011-2022 走看看