主要根据mick著的SQL基础教程整理而得的笔记,其中也会夹杂一些补充知识点和资料。在学习完后做一个思维导图。
第一章:数据库和SQL
1-1数据库是什么:将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合称为数据库(DB)。用来管理数据库的计算机系统称为数据库管理系统(DBMS)
DBMS的种类:层次数据库(树形结构,HDB)、关系数据库(RDB,由SQL语言对数据进行操作)、面向对象数据库、XML数据库、键值存储系统
1-2数据库的结构
客户端(使用数据库的程序)通过SQL语言命令服务器RDBMS读取数据库或对数据库进行一定的改写等操作,RDBMS向客户端返回请求的数据。RDBMS为“中间商”对DB进行操作。
表的结构:有行和列组成的二维表,列名为数据的项目名称,一行为一条记录,RDBMS以行为单位读写数据。
1-3 SQL概要
SQL语句:
- DDL(CREATE 创建数据库和表等对象 、DROP删除数据库和表等对象 、ALTER修改数据库和表等对象的结构)
- DML(SELECT 查询表中数据、INSERT插入、UPDATE更新、DELETE删除)
- DCL(COMMIT 确认对数据库中的数据进行的变更、ROLLBACK取消、GRANT赋予用户操作权限、REVOKE取消)
SQL基本书写规则:以分号(;)结尾、最好关键字大写,表名首字母大写,其余小写、字符串和日期加单引号‘’
1-4表的创建
数据库的创建(CREATE DATABASE <数据库名称>)
表的创建(CREATE TABLE <表名>) 下为例
CREATE TABLE Product
(product_id CHAR(4) NOT NULL,
product_name VARCHAR(100) NOT NULL,
product_type VARCHAR(32) NOT NULL,
sale_price INTEGER ,
purchase_price INTEGER ,
regist_date DATE ,
PRIMARY KEY (product_id));
命名规则:英文字母、数字、下划线作为名称
数据类型指定:数字(INTEGER)、字符(CHAR(n)定长字符串、VARCHAR可变字符串)、日期 (DATE)
在PostgreSQL中还存在其他类型,以上仅为标准SQL中规定,具体见该博主原创文章:
Postgresql学习笔记之——数据类型之数值类型(整数、小数、浮点数、序列、货币)_Major_ZYH的博客-CSDN博客_pgsql小数类型
创建表的同时也可以对其中列的数据进行限制或追加条件。
譬如最后一行设置主键约束,主键是可以特定一行数据的列。
1-5表的删除和更新
删除表(DROP TABLE 名称)
表定义的更新(ALTER TABLE 语句)
ALTER TABLE <表名> ADD COLUMN <列的定义> 【postgreSQL】Oracle无需写COLUMN
删除则是DROP COLUMN
插入数据(示例)
BEGIN TRANSACTION; 【postgre/ SQL server】
INSERT INTO Product VALUES ('0001', 'T恤' ,'衣服', 1000, 500, '2009-09-20');
INSERT INTO Product VALUES ('0002', '打孔器', '办公用品', 500, 320, '2009-09-11');
INSERT INTO Product VALUES ('0003', '运动T恤', '衣服', 4000, 2800, NULL);
INSERT INTO Product VALUES ('0006', '叉子', '厨房用具', 500, NULL, '2009-09-20');
COMMIT;
变更表名:
ALTER TABLE Poduct RENAME TO Product;【postgreSQL/Oracle】