本笔记为阿里云天池龙珠计划SQL训练营的学习内容,链接为:https://tianchi.aliyun.com/specials/promotion/aicampsql
Part1:学习知识点概要
本笔记主要是数据库的基础认识,MYSQL的安装,同时记录对SQL语言的基本了解。
Part2:学习内容
一、初识数据库
数据库:数据集合(Database,DB)
数据库管理系统:管理数据库的计算机系统(Database Management System,DBMS)
1.DBMS的种类
数据库的种类:
- 层次数据库(Hierarchical Database,HDB)
- 关系数据库(Relational Database,RDB)
- 面向对象数据库(Object Oriented Database,OODB)
- XML数据库(XML Database,XMLDB)
- 键值存储系统(Key-Value Store,KVS),举例:MongoDB
综上,关系数据库管理系统(Relational Database Management System,RDBMS),比较具有代表性的 RDBMS 有:Oracle Database、SQL Server、DB2、PostgreSQL、MySQL。此外,RDBMS使用SQL语言进行操作,RDBMS常见的系统结构为客户端 / 服务器类型(C/S类型)。
2.数据库安装
-
阿里云MySQL服务器
-
本地MySQL环境搭建:MySQL官网上的社区版软件下载地址:MySQL :: MySQL Community Downloads
二、初识SQL语言
1.SQL语句分类:
DDL(Data Definition Language,数据定义语言)
- CREATE : 创建数据库和表等对象;DROP : 删除数据库和表等对象;ALTER : 修改数据库和表等对象的结构
DML(Data Manipulation Language,数据操纵语言):SQL语句中90%的使用
-
SELECT :查询表中数据;INSERT :向表中插入新数据;UPDATE :更新表中数据;DELETE :删除表中数据
DCL(Data Control Language,数据控制语言)
-
COMMIT : 确认对数据库中的数据进行的变更;ROLLBACK : 取消对数据库中的数据进行的变更;GRANT : 赋予用户操作权限;REVOKE : 取消用户的操作权限
2.SQL的基本书写规则
SQL语句要以分号结尾;SQL不区分关键字的大小写,但是插入表中的数据是区分大小写的;win系统默认不区分表名及字段名的大小写;linux / mac 默认严格区分表名及字段名的大小写。
3.基本SQL语句
# 创建数据库
CREATE DATABASE < 数据库名称 > ;
# 创建表
# 只能使用半角英文字母、数字、下划线(_)作为数据库、表和列的名称;名称必须以半角英文字母开头
# 数据类型: INTEGER;CHAR;VERCHAR;DATE
# 约束类型: NOT NULL;PRIMARY KEY
CREATE TABLE < 表名 >
( < 列名 1> < 数据类型 > < 该列所需约束 > ,
< 列名 2> < 数据类型 > < 该列所需约束 > ,
< 列名 3> < 数据类型 > < 该列所需约束 > ,
< 列名 4> < 数据类型 > < 该列所需约束 > ,
.
.
.
< 该表的约束 1> , < 该表的约束 2> ,……);
# 删除表
DROP TABLE < 表名 > ;
# 添加列、删除列
# 删除和修改的语句执行后无法恢复
ALTER TABLE < 表名 > ADD COLUMN < 列的定义 >;
ALTER TABLE < 表名 > DROP COLUMN < 列名 >;
# 清空表内容
TRUNCATE TABLE TABLE_NAME;
# 更新表内容
UPDATE <表名>
SET <列名> = <表达式> [, <列名2>=<表达式2>...];
WHERE <条件>; -- 可选,非常重要。
ORDER BY 子句; --可选
LIMIT 子句; --可选
# 向表中插入数据
# 全列INSERT时可省略表名后的列清单
INSERT INTO <表名> (列1, 列2, 列3, ……) VALUES (值1, 值2, 值3, ……);
# 可多行插入
INSERT INTO productins VALUES ('0002', '打孔器',
'办公用品', 500, 320, '2009-09-11'),
('0003', '运动T恤', '衣服', 4000, 2800, NULL),
('0004', '菜刀', '厨房用具', 3000, 2800, '2009-09-20');
# 可在创建表时插入默认值
# 可使用INSERT … SELECT 语句从其他表复制数据
# INSERT和UPDATE均可将列更新为NULL,只有未设置 NOT NULL 约束和主键约束的列才可以清空为NULL
Part3:学习问题与解答
暂无
Part4:学习思考与总结
SQL的学习要勤动手,在实践中发现和解决问题!