善于总结,可以使用流程图或者思维导图构建知识体系

xzdxmynet 发布于 2024-01-26 阅读(83)

文正知识分享第05期 培养SQL基础知识素养

作者|文正庚云(ID:)

此摘要是对之前发布的 SQL 的补充。

在进入正题之前,我想先讲一下其他的知识点,稍微思考一下。

在学习某个技能点或者新的知识点时,可以尝试建立一个知识排序系统,如下:

输入:可以向葫芦学习,自己练习。

分析:有自己独立的分析和思考。

输出:输出是什么,与期望进行比较。

备注:记录收获过程(手写或电子文档形式)。

此流程图制作上比较粗糙,应该作为整理基础知识的参考。

如上所述,学习新的知识点。 善于总结,可以利用流程图或思维导图构建知识体系。

01

SQL 和数据库

基础知识素养

一般来说,在日常工作交流中,大家描述的SQL都是标准SQL(SQL),并不是特指某个数据库厂商(DBMS)的专有语言。

02

什么是 SQL?

SQL一定知道它会这样描述:

SQL(发音为 SQL or)是 Query(结构化查询语言)的缩写。 SQL 是一种专业用于与数据库通信和交互的语言。

与其他语言(例如英语或 Java、C、PHP 等编程语言)不同,SQL 中只有几个单词,这是故意的。 设计SQL的目的是为了方便完成一项任务,提供一种简单有效的方式从数据库中读写数据。

用一句话来概括:SQL就是Query(结构化查询语言)。

维基百科是这样描述的:

全称是Query(Structured Query Language),是一种特定用途的编程语言,一般简称SQL。

用于管理关系数据库管理系统(RDBMS)。 它是一种使用关系模型的数据库应用语言。 它是 IBM 在 20 世纪 70 年代开发的,作为 IBM 数据库 R 的原型关系语言,用于实现数据库中的信息检索。

20世纪80年代初,美国国家标准协会(ANSI)开始定制SQL标准。 最早的 ANSI 始于 1986 年,称为 SQL-86。 它于1987年成为国际标准化组织(ISO)标准。尽管SQL并非完全按照Codd的关系模型设计,但它仍然成为使用最广泛的数据库语言。 此后,该标准经历了一系列修订,增加了大量新功能。 尽管存在此标准,但大多数 SQL 代码并未完全跨平台跨不同数据库系统。

用我自己的经验总结一下:它实际上是一种结构化查询语言,将数据定期存储在特定的容器中。

SQL有什么优点?

SQL 不是特定数据库供应商的专有语言。 大多数流行的 DBMS 都支持 SQL,因此学习标准 SQL 将使您能够使用大多数数据库。

SQL 简单易学。 它的句子是由描述性很强的英语单词组成的,而且这些单词的数量并不多。

SQL看起来很简单(入门),但它实际上是一种功能强大的语言,通过灵活运用其语言元素,可以执行非常复杂和高级的数据库操作。

SQL扩展描述:许多DBMS供应商通过添加语句或指令来扩展SQL,以便为执行特定操作提供附加功能或简化方法。 虽然这个扩展使用起来很方便,但是一般是针对个体DBMS的,而且很少有两个厂商同时支持这个扩展。 举两个例子,比如可以使用limit关键字来实现分页,而MySQL的分页则使用limit关键字。

03

什么是数据库?

数据库

数据库(Database):保存有组织的数据的容器,通常是一个文件或一组文件。

Tips:通常所说的数据库是指关系型数据库(RDBMS)。

日常工作沟通中要注意混乱。 人们通常使用数据库一词来表示所使用的数据软件。 这种表达并不完全正确,因此造成了很多混乱。 准确地说,数据库软件是指数据库管理系统(DBMS)。 数据库是由 DBMS 创建和操作的容器。 具体是什么以及它的形式在不同的数据库中是不同的。 这种差异体现在各大数据库厂商都在标准SQL的基础上进行了自己的扩展。

简单说明

在 MySQL 中创建数据库语法: . 在数据库中创建数据库的语法是user。 你没看错,是基于用户来描述和管理的。 如果使用的话,会提示数据库已加载。

表面

表:特定类型数据库的结构化列表。

表名

表名:表名是唯一的(不可重复)。 它实际上是数据库名和表名的组合。 数据库名称理解为更容易让用户接受。 有些数据库使用数据库所有者的名称作为唯一名称的一部分,例如大梦数据库。 相同的数据不能使用相同的表名,但不同的数据库可以使用相同的表名。

模型

架构:有关数据库和表的布局和属性的信息。

列表

Column():表中的一个字段。 所有表均由一列或多列组成。

数据分解:将数据正确分解为多列尤为重要。 例如:城市、州、邮政编码始终是彼此独立的列。 通过分解这些数据,可以使用特定列对数据进行排序和过滤(例如查找特定州或城市的所有客户)。 如果城市和州合并为一列,则按州排序或过滤将会很困难。

当然,您可以根据需要尽可能多或尽可能少地分解数据。 例如,通常可以将街道名称和门牌号一起存储在地址中。 这可以在没有特殊要求的情况下完成。 如果当天需求发生变化,要根据门牌号进行排序或过滤,最好将门牌号和街道名称分开。

数据类型

数据类型:允许哪种数据类型。 表中的每一列都有一个相应的数据类型,它限制(或允许)该列中存储哪种类型的数据。

好的

行:表中的一条或多条记录。

首要的关键

主键(key):一列(或多列),其值唯一标识表中的每一行。

定义主键:可能并不总是需要主键。 为了便于管理,大多数数据设计者都会确保他们创建的每个表都有一个主键。

外键

外键(key):用于保证参照完整性,通常存在于两个或多个表中。 如果有两张表:主表和子表,并且子表中有主表的外键约束; 您想同时删除两个表; MySQL提示需要先删除约束才可以彻底删除。 也有例外,例如当设置了cascade()时。

不管你读了多少理论知识,最好自己去实践一下,效果来得更快。

04

挺身而出,通过实践获得真知

选择

1. 选择:选择一个流行且社区活跃的 DBMS 供应商发布的数据库软件来开始使用。

2.安装:云服务器或本地机或虚拟机模拟环境。

3、初学者:建议使用各大厂商提供的GUI字符命令界面进行交互。

推荐

我个人推荐学习MySQL(),循序渐进的学习,深入浅出的讲解。 为什么推荐学习MySQL作为入门首选? 如上所述,它很受欢迎并且拥有活跃的社区。 也就是说,MySQL资源丰富,官方文档全面,更新频繁。

关于CRUD:增删改查

一般来说,CRUD是指对数据库表中的行记录进行添加()、删除()、查询()、修改()等操作。

各大DBMS厂商数据库官方文档地址整合:

其他主流数据库厂商(DBMS)-官方文档地址

05

DBMS初体验

MySQL:初体验

1、部署MySQL;

2.检查(启动和关闭服务);

3、修改密码和权限(为第5步做准备);

4. 字符命令界面进行交互;

5.工具:MySQL,(通用数据库管理器)或;

6、基本操作(CRUD:、、、);

7.参考官方文档&官方完整Demo示例。

部署.0.x

.0.x (zip) 简易安装教程

1、解压免安装版MySQL:unzip mysql-8.0.x-.zip

2.切换到MySQL解压目录:cd mysql-8.0.x-

3.添加MySQL配置文件:my.ini

4、初始化MySQL:bin\ --- 或 bin\ --- --

5、注册MySQL服务:bin\ --(将MySQL服务注册到,可以使用net命令进行管理)

6、启动MySQL服务:net start 或 sc start

7、登录MySQL字符管理界面:mysql -uroot -p

注:版本选择:带有GA( )标记的版本为稳定版本。 最新稳定版本是2023年1月17日发布的MySQL 8.0.32。 x代表使用.0特定版本。 打开CMD或以管理员身份运行。 如果没有,安装服务时会提示拒绝权限,如下所示。

D:\mysql-8.0.32-\bin> --

/ 的 !

在环境中新建my.ini并进行如下设置,指定基本安装目录和数据存储目录:

[mysqld] basedir=D:\\mysql-8.0.32-winx64 datadir=D:\\mysql-8.0.32-winx64\\data

登录命令行字符界面

在平台上打开CMD,或者(win + x 打开终端(管理员))

参数功能:

•-u:指定用户为root。

•-p:回车后输入密码。 如果直接输入密码并回车即可登录。

•-P:指定端口号(port),默认为3306。

平台修改my.ini指定MySQL端口,Linux平台修改f指定端口。

mysql -uroot -p -P 3306

Linux 发行版打开终端()

mysql -uroot -p -P 3306

进入:

 mysql>select 1\G

分析:

登录MySQL字符操作界面,输入1\G, 1; 或 1\g,您将得到输出: 1。此时,MySQL 不需要访问表或索引,直接获取结果。 通过使用执行计划(后面可以学习)可以看出type=NULL是最高效的。

输出:

***************************1.row*************************** 1: 1 1 row inset (0.00 sec)

提示:也支持1; 或1\g,输出结果为:1。

笔记:SQL CRUD

创建数据库(用户)和表时,最好使用统一大小写、驼峰式命名、下划线,不要混搭。 我个人的建议是:要么纯大写,要么纯小写,或者用下划线分隔。 用拼音命名库名、表名、字段名时(最好不要缩写),如果缩写也请写注释。 例如,地标名称北京()、上海()、广州()、深圳(),使用全拼音是可以的。 即使你查字典,也很可能是这样命名的。 最好和你的合作团队达成共识。

当然,当你看到我演示的SQL语句时,关键字都是大写的,库名、表名、字段名都是小写的。

评论使用

/** MySQL基础知识扫盲 **/ -- MySQL基础知识扫盲

创建数据库

创建管理用户研究(以前称为数据库)。 注意:执行更新操作时,请始终牢记数据是无价的,并指定条件。 尽量避免给自己带来不必要的工作麻烦。

CREATE DATABASE study;

切换用户

 USE study;

建表语句

分别在study用户下创建表:girl、books。

CREATE TABLE study.girl(    id INT  PRIMARY KEY,    girl_name VARCHAR(64),    girl_age VARCHAR(64),    cup_size VARCHAR(64),    stu_num VARCHAR(64) )
CREATE TABLE study.books( id VARCHAR(32) NOT NULL PRIMARY KEY, book_names VARCHAR(64) NOT NULL, isbn VARCHAR(64) NOT NULL, author VARCHAR(16) NOT NULL);

第一表妹:使用CRUD语句&启用显式事务(MySQL&默认启用自动提交)。

显式启动事务

 BEGIN;               -- start transaction;

查询:标准写法,指定字段名

 SELECT sg.id,sg.girl_name,sg.girl_age,sg.cup_size,sg.stu_num FROM study.girl sg;

查询:懒写法

 SELECT * FROM study.girl sg;

插入一条数据:标准写法,指定字段名

 INSERT INTO study.girl(id,girl_name,girl_age,cup_size,stu_num) VALUES(1001,'梦梦','16','B','tolovemm16');

插入一条数据:懒写法

INSERT INTO study.girl VALUES(1001,'梦梦','16','B','tolovemm16');

删除数据:指定条件

DELETE FROM study.girl sg WHERE sg.id=1001;

修改数据:指定条件

 UPDATE study.girl(id,girl_name,girl_age,cup_size,stu_num) sg SET sg.stu_num='toloveC16'  WHERE sg.id=1001;               UPDATE study.girl sg SET sg.cup_size='C'  WHERE sg.id=1001;

回滚操作

 ROLLBACK;

提交事务

COMMIT;

第二表书籍:

-- 插入 INSERT INTO study.books VALUES('1001','books','2023-3-15-miji','张三');                   -- 修改 UPDATE study.books b  SET b.book_names='绝世武功秘籍'WHERE b.id='1001';    -- 查询 SELECT * FROM study.books; -- 不用带上用户名也能查询,切换用户操作:use study SELECT * FROM books;                        -- 删除全表数据内容 DELETE FROM study.books;                          -- 删除全表数据内容:TRUNCATE [TABLE] tbl_name TRUNCATE TABLE study.books;                             -- 删除表结构与内容,注意:无法回滚 DROP TABLE study.books;

MySQL官方完整Demo示例

最后附上官方的示例数据库,非常完整的-db数据库示例。 包含:视图、函数、触发器和存储过程,当然还有外键的使用。

-db 数据库包含三个文件,方便访问和使用:

1.-.sql:数据库表结构;

2.-data.sql:数据库示例模拟数据;

3..mwb:数据库物理模型,可以在MySQL中打开查看。

对于简单的测试学习,可以使用world-db:

world-db数据库包含三个表:city,,。

MySQL官方文档(5.6、5.7、8.0)集成:

提取码:bx44

:初体验

初次使用,建议掌握内置字符命令操作工具SQL plus。

其次,掌握第三方管理工具PLSQL,便于管理。 它有 30 天的免费试用期,并且是一款付费软件。

个人认为有必要了解一下内置的SQL客户端管理工具SQL,它是免费使用的。

1.SQL+

2.PLSQL

3.SQL

下面将演示如何在数据库中建立用户、表、查询数据、添加、修改、删除操作。

1.创建用户

创建数据库test并创建中指用户进行管理

常规(是拐点,分为CDB和PDB)建表用法:

create user test identified by 123456;

新版本(带c,默认是CDB模式),创建新用户

create user c##test identified by 123456;

2、授权

授予用户测试权限,

grant resource,connect to test;

3. 创建表

创建表girl并指定用户为test

 create table test.girl(     ID VARCHAR2(32) not null,     GIRL_NAME VARCHAR2(64),     GIRL_SEX VARCHAR2(2) )

4、索引

添加主键索引

  alter table test.girl add primary key(ID);

5.查询、添加、修改、删除

查询表妹子

 select * from test.girl;

添加新数据

 insert into test.girl values('1001','梦梦','女');

改变数据

 update test.girl t set t.ID='1002';

删除数据

删除表中的所有数据,但不删除表结构。 使用drop删除表结构和数据。

delete from test.girl;

:初体验

主要熟悉内置的SQL shell字符命令工具和客户端管理工具的使用。

1.SQL shell

2.

你可以在我的个人公众号历史文章中找到入门教程。

演示示例

SQL必知演示示例

官网地址:

涵盖 DBMS 示例:DB2、MySQL、、

SQL表结构示例下载

亲自整理了一些资料进行整合、打包。

提取码:cx3p

参考:

1. 必须了解并理解 SQL 第五版。

结尾

不问收获,但问努力

当我静下​​来的时候,我才发现,原来还有很多事情是我不知道的。

一分耕耘一分收获。

多总结,你会发现你的知识宝库变得越来越丰富。

最后,以上总结仅供参考!

标签:  mysql mysql执行计划 mysql创建数据库 mysql创建存储过程 mysql新建用户 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。