SQL基础教程第一章笔记

 第一章 数据库和SQL

      1.1 数据库

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

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

               DBMS在现阶段主要有5种:层次型数据库(Hierarchical Database, HDB),关系型数据库(Relational Database,RDB),面向对象数据库(Object Oriented Database,OODB),XML数据库(XML Database,XMLDB),键值存储系统(Key-value Store,KVS)

         1.2 数据库结构

               1.2.1 RDBMS最常见的结构是客户端/服务器(C/S类型)

                   1.2.2 表的结构

                     根据SQL语句的内容返回的数据,必须是二维表的形式。

                     表的列称为字段,代表了保存在表中的数据项目。

                     表的行成为记录,相当于一条数据。

                     行列交汇处称为单元格,一个单元格只能输入一个数据。

         1.3 SQL概要

                    1.3.1 SQL是为了操作数据库而开发的语言

                    1.3.2 SQL语言的种类可分为三种:DDL(Data Definition Language,数据定义语言),DML(Data Manipulation Language,数据操作语言),DCL(Data Control Language,数据控制语言)

                    DDL: CREATE(创建数据库和表等对象),DROP(删除数据库和表等对象),ALTER(修改数据库和表等对象结构)

                    DML:SELECT(查询表中数据),INSERT(向表中插入新的数据),UPDATE(变更表中的数据),DELETE(删除表中的数据)       --->  使用最多

                    DCL:COMMIT(确认对数据库中的数据进行变更),POLLBACK(取消对数据库中的数据进行变更),CRANT(赋予用户操作权限),REMOVE(取消用户操作权限)

                    1.3.3 SQL的基本书写规则

                    SQL语句要以分号(;)结尾

                    SQL语句不区分大小写(本文规则:关键字大写,表名的首个字大写,其余(列名等)小写),但是插入到表中的数据是区分大小写的。

                    常数的书写方式是固定的:字符串和日期常数需要使用单引号(')括起来;数字常数无需加注单引号(直接书写数字即可)

                     SQL语句的单词之间需要使用半角空格或换行符来进行分隔

         1.4 表的创建

                  1.4.1 表的内容的创建

                  1.4.2 数据库的创建

                  代码1.语法规则及例子  

CREATE DATABASE <数据库名称>

eg.

CREATE DATABASE shop

                 1.4.3 表的创建

                  代码2.语法规则

CREATE TABLE <表名>
(<列名1> <数据类型> <该列所需约束>
<列名2> <数据类型> <该列所需约束>
<列名3> <数据类型> <该列所需约束>
<列名4> <数据类型> <该列所需约束>)

                 1.4.4 命名规则

                 只能使用半角英文字母,数字,下划线作为数据库,表和列的名称,名称必须以半角英文字母开头

                 名称不能重复

                1.4.5 数据类型的指定

                 四种数据类型:INTEGERZ(整数型),CHAR(字符型),VARCHAR(字符串),DATE(日期)

                 区分CHAR和VARCHAR:CHAR是字符串以定长字符串的形式存储,而VARCHAR是指以可变长字符串的形式存储

                1.4.6 约束的设置

                 约束是除了数据类型外,对列中存储的数据进行限制或者追加条件的功能。

                 NOT NULL 是指不能输入空白,也就是必须输入的约束

PRIMARY KEY (shohin_id)

            上面这条语句是给shohid_id列设定主键约束的。所谓的键值,就是在指定特定数据时所使用的列组合。主键就是可以特定一行数据的列。也就是说,如果把shohid_id列为主键,就可以通过该列取出特定的商品数据了。

     1.5 表的删除和更新

                1.5.1 表的删除(DROP TABLE语句)

                代码3.删除表时所用的语句及案例

DROP TABLE <表名>;

eg.
DROP TABLE Shohin;

               删除了的表是无法恢复的

               在执行DROP TABLE语句之前请务必仔细确认

               1.5.2 表定义的更新(ALTER TABLE语句)

               ALTER语句应用于在创建表后发现表少了几列这种情况

               

               代码4.添加列时所使用的语法

ALTER TABLE <表名> ADD COLUMN <列定义>;

              

              代码5.特定的SQL,Oracle和SQL Server中不用写COLUMN

ALTER TABLE <表名> ADD <列名>;

          

             代码6. 另外,在Oracle中同时添加多列的时候可以使用像下面这样的括号

ALTER TABLE  <表名> ADD (<列名>,<列名>,<列名>,.......);

     

            代码7.添加一列可以存储100位可变长度字符串的shohin_mei_kana列

--DB2 PostgreSQL MySQL

ALTER TABLE Shohin ADD COLUMN shohin_mei_kana VARCHAR(100);

--Oracle

ALTER TABLE Shohin ADD (Shohin_mei_kana VARCHAR2(100));

--SQL Server

ALTER TABLE Shohin ADD shohin_mei_kana VARCHAR(100);

  

               代码8.删除时ALTER TABLE语句

ALTER TABLE <表名> DROP COLUMN <列名>;

  

              代码9.在Oracle和SQL Server中不用写COLUMN

ALTER TABLE <表名> DROP <列名>;

  

              代码10.在Oracle中同时删除多列的时候,可以像下面这样是用括号来实现

ALTER TABLE <表名> DROP (<列名>,<列名>,<列名>,......);

  

               代码11.删除shohin_mei_kana列

--SQL Server DB2 PostgreSQL MySQL

ALTER TABLE Shohin DROP COLUMN shohin_mei_kana;

--Oracle

ALTER TABLE Shohin DROP  (shohin_mei_kana);

               习题:

 1.1 代码

CREATE TABLE Jyushoroku
( toroku_bangu INTEGER NOT NULL,
  name VARCHAR(128) NOT NULL,
  jyusho VARCHAR(256) NOT NULL,
  tel_no CHAR(10),
  mail_address CHAR(20), 
 PRIMARY KEY (toroku_bangu) );

 输出结果:

1.2 代码

--PostgreSQL、MySQL
ALTER TABLE Jyushoroku ADD COLUMN yubin_bango CHAR(8) NOT NULL;
--Oracle
ALTER TABLE Jyushoroku ADD (yubin_bango CHAR(8)) NOT NULL;
--SQL Server
ALTER TABLE Jyushoroku ADD yubin_bango CHAR(8) NOT NULL;

 输出结果:

1.3 代码

DROP TABLE Jyushoroku;

  

 1.4 代码(DROP TABLE 后是无法恢复的,只能按照1.1 代码重建)

CREATE TABLE Jyushoroku
( toroku_bangu INTEGER NOT NULL,
  name VARCHAR(128) NOT NULL,
  jyusho VARCHAR(256) NOT NULL,
  tel_no CHAR(10),
  mail_address CHAR(20), 
 PRIMARY KEY (toroku_bangu) );

  

 

猜你喜欢

转载自www.cnblogs.com/zsdeblog/p/9168249.html