本笔记为阿里云天池龙珠计划SQL训练营的学习内容,链接为:https://tianchi.aliyun.com/specials/promotion/aicampsql;
Task01:初识数据库与SQL
一、数据库定义
数据库是将大量数据保存起来,通过计算机加工而成的可以 进行高效访问的数据集合。该数据集合称为数据库(Database,DB)。用来管理数据库的计算机系统称为数据库管理系统(Database Management System,DBMS)。
DBMS的种类:1、层次数据库(Hierarchical Database,HDB),2、关系数据库(Relational Database,RDB),3、面向对象数据库(Object Oriented Database,OODB)4、XML数据库(XML Database,XMLDB)5、键值存储系统(Key-Value Store,KVS),举例:MongoDB。
代表性的关系数据库:1、Oracle(甲骨文公司的数据库),2、SQL Server(微软公司的数据库),3、DB2(IBM公司的数据库),4、PostgreSQL(开源数据库),5、MySQL(开源数据库)。
二、数据库安装
按照教程完成安装。
三、SQL概念介绍
在数据库中,行称为记录,它相当于一条记录,列称为字段,它代表了表中存储的数据项目。
行和列交汇的地方称为单元格,一个单元格中只能输入一条记录。
根据对 RDBMS 赋予的指令种类的不同,SQL 语句可以分为以下三类.:
DDL(Data Definition Language,数据定义语言) 用来创建或者删除存储数据用的数据库以及数据库中的表等对象。DDL 包含以下几种指令。
-
CREATE : 创建数据库和表等对象
-
DROP : 删除数据库和表等对象
-
ALTER : 修改数据库和表等对象的结构
DML(Data Manipulation Language,数据操纵语言) 用来查询或者变更表中的记录。DML 包含以下几种指令。
-
SELECT :查询表中的数据
-
INSERT :向表中插入新数据
-
UPDATE :更新表中的数据
-
DELETE :删除表中的数据
DCL(Data Control Language,数据控制语言) 用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对 RDBMS 的用户是否有权限操作数据库中的对象(数据库表等)进行设定。DCL 包含以下几种指令。
-
COMMIT : 确认对数据库中的数据进行的变更
-
ROLLBACK : 取消对数据库中的数据进行的变更
-
GRANT : 赋予用户操作权限
-
REVOKE : 取消用户的操作权限
SQL的基本书写规则
- SQL语句要以分号( ; )结尾
- SQL 不区分关键字的大小写,但是插入到表中的数据是区分大小写的
- win 系统默认不区分表名及字段名的大小写
- linux / mac 默认严格区分表名及字段名的大小写
- 本教程已统一调整表名及字段名的为小写,以方便初学者学习使用。
- 常数的书写方式是固定的
- 单词需要用半角空格或者换行来分隔
四、MySQL shell
参考安装手册,可以顺利完成MySQL的安装和配置,但是之后如何使用MySQL,在哪个界面写代码就成了小白遇到的一个主要问题。本人安装成功后,弹出了MySQL shell和MySQL Workbench两个界面,这两个工具都能进行MySQL代码的编写和调试,而MySQL Workbench是图形操作界面,对初学者更加友好。但是本人还是希望把各种工具平台都学习一下,因此通过查阅各类资料及不断尝试,完成了MySQL shell界面的初步使用,这里介绍下相关经验。
MySQL Shell在官方版本5.7.12推出,是一个高级的mysql命令行工具,支持交互式和批处理式两种模式和三种编程语言(java script、python、sql)。
通过输入"\js"、"\py"、"\sql"的命令可以切换三种语言,通过输入"\help"能够查阅各类命令,详细界面如下:
切换到sql语言模式后,本以为可以直接使用sql语言编程,但是发现系统提示错误:
经过分析,应该是没有连接到服务器,本人的数据库是本地安装,因此需要在MySQL shell中连接到本地的数据库,经查需要使用"\connect"这一命令,其模板如下:
\connect --mc 用户名:密码@IP地址:端口(一般端口为3306)
输入如下命令,连接上服务器:
此时,再输入sql语句,发现成功完成操作,后续的学习可以顺利开展。
这次的学习,就像是完成了编程语言的“helloworld”,开启了MySQL学习的第一步,经验分享给大家,希望和大家一起学习进步!
练习01
drop database test01;(删除上次操作创建的test01数据库)
3.1
CREATE DATABASE test01;(创建test01数据库)
USE test01;(选择test01数据库)
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)
);(创建Addressbook表格)
3.2
ALTER TABLE Addressbook ADD COLUMN postal_code CHAR (8) NOT NULL;(增加postal_code这列)
3.3
DROP TABLE Addressbook;(删除Addressbook表格)
3.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),
postal_code CHAR (8) NOT NULL,
PRIMARY KEY (regist_no)
);(恢复Addressbook表格)