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;

  

原文地址:https://www.cnblogs.com/jp-mao/p/6582854.html