初识数据库的笔记

学习来自:http://datawhale.club/t/topic/477 的笔记

本章主要是对数据库的基本介绍,虽然我不太想认识它。

数据库就是保存了大量数据的一个库,用来管理数据库的计算机系统称为数据库管理系统也叫DBMS(扫盲)

1.1.1DBMS的种类 

  • 层次数据库(Hierarchical Database,HDB)

  • 关系数据库(Relational Database,RDB 扫盲

  • Oracle Database:甲骨文公司的RDBMS
  • SQL Server:微软公司的RDBMS
  • DB2:IBM公司的RDBMS
  • PostgreSQL:开源的RDBMS
  • MySQL:开源的RDBMS

讲真平时我就听标红的两个比较多,现在在用的是MYSQL

由行和列组成的二维表,像excel这种类型的 DBMS 称为关系数据库管理系统

面向对象数据库、 XML数据库、键值存储系统 咱也没见过咱也不敢问这事啥,先把关系数据库学学好吧

1.1.2 RDBMS(关系数据库)的常见系统结构

就是这样发送命令处理过后给你返回你要的数据,服务器会读取数据库里的数据处理后给你

1.2 初识 SQL

和excel一样有行(记录)、列和单元格

对RDBMS赋予的指令不同可以分三类

DDL(数据定义语言) 创建表和删数据库或者表用的包含:

  • CREATE:建表
  • DROP:删数据库或表
  • ALTER:修改表

DML(数据操纵语言) 用来查询或变更表中的记录

  • SELECT:查询
  • INSET:插入
  • UPDATE:更新
  • DELETE:删表中的数据

DCL(数据控制语言) 用来确认或者取消对数据库中的数据进行的变更

  • COMMIT:确认对数据库中的数据进行变更
  • ROLLBACK:取消对数据库中的数据进行变更
  • GRANT:赋予用户操作权限
  • REVOKE:取消用户操作权限

以上我也没全记下来,可能学到后面慢慢的也就会了,不太着急,听说我们用的90% 属于 DML

1.2.1 SQL的基本书写规则

语句要以;结尾。不区分大小写,插入表格需要大小写

mac和linux要大小写,拜拜mac 从今以后我们不约了

SQL 语句的单词要用半角空格分开

1.2.2 数据库的创建( CREATE DATABASE 语句)

CREATE DATABASE <shop> ;

1.2.3 表的创建( 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));

1.2.4 命名规则

只能使用半角英文字母、数字、下划线(_)作为数据库、表和列的名称

名称必须以半角英文字母开头

1.2.5 数据类型的指定

  • INTEGER 型 :整数
  • CHAR 型:储存长字符串(一般不用)达不到最大长度的时候,使用半角空格进行补足
  • VARCHAR 型:用来存储可变长度字符串,即使字符数未达到最大长度,也不会用半角空格补足。
  • DATE 型:时间

1.2.6 约束的设置

NOT NULL  该列必须输入数据

PRIMARY KEY: 唯一值 主键

1.2.7 表的删除和更新

  • 删除product表:DROP TABLE product;
  • 添加列:ALTER TABLE < 表名 > ADD COLUMN < 列的定义 >;
  • 删除列:ALTER TABLE < 表名 > DROP COLUMN < 列名 >;
  • 清空表内容:TRUNCATE TABLE TABLE_NAME;

练习:添加一列可以存储100位的可变长字符串的 product_name_pinyin 列:

ALTER TABLE product ADD COLUMN  product_name_pinyin VARCHAR(100);

  • 数据的更新

基本语法:

UPDATE <表名> SET <列名> = <改的东西> [, <列名2>=<表达式2>...];

WHERE <条件>; -- 可选,非常重要。

ORDER BY 子句; --可选

LIMIT 子句; --可选

例:-- 修改所有的注册时间

UPDATE product SET regist_date = '2009-10-10'; -- 仅修改部分商品的单价

UPDATE product SET sale_price = sale_price * 10

WHERE product_type = '厨房用具';

SET 子句中的列不仅可以是两列,还可以是三列或者更多。

1.2.8 向 product 表中插入数据

语法:INSERT INTO <表名> (列1, 列2, 列3, ……) VALUES (值1, 值2, 值3, ……);

可终于学完了!!!

练习题:

1、CREATE TABLE Addressbook ---表名

(regist_no INTEGER, NOT NULL,----列名,字段类型,约束条件 

name VARCHAR(128) NOT NULL,

address VARCHAR(256) NOT NULL,

tel_no CHAR(10),

mail_address CHAR(20)  ,

PRIMARY KEY (regist_no));

2、

ALTER TABLE   Addressbook   ADD COLUMN  postal_code not null ;

3、

DROP TABLE  Addressbook  ;

4、

CREATE TABLE Addressbook ---表名

(regist_no INTEGER, NOT NULL,----列名,字段类型,约束条件 

name VARCHAR(128) NOT NULL,

address VARCHAR(256) NOT NULL,

tel_no CHAR(10),

mail_address CHAR(20)  ,

PRIMARY KEY (regist_no));

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值