SQL 语言入门

本文是 SQL 语言的入门教程,详细介绍了 SQL 的基本概念、特点、操作方式和核心概念,包括数据查询、数据操纵、数据控制等功能。内容涵盖 SQL 的历史、集合操作、关系数据库模型、完整性约束、数据查询语句格式以及单表查询等内容,适合 SQL 初学者学习。
摘要由CSDN通过智能技术生成

结构化查询语言(Structured Query Language)简称 SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

我会讲以下内容:

  • SQL 语言概述
  • 数据库的安装 MySQL 安装
  • SQL 语言基础知识
  • 模式、基本表、视图
  • 单表查询,多表查询

适合人群:SQL 语言初学者

一、SQL 概述

关系数据库标准语言 SQL(结构化查询语言)。 结构化查询语言(Structured Query Language)简称 SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

SQL 语言的精巧:仅有 9 个命令动词,后扩充至 10 个。

二、SQL 语言的特点
1.综合统一

集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)功能于一体。可以独立完成数据库生命周期中的全部活动:

  • 定义关系模式,插入数据,建立数据库;
  • 对数据库中的数据进行查询和更新;
  • 数据库重构和维护
  • 数据库安全性、完整性控制等

用户数据库投入运行后,可根据需要随时逐步修改模式,不影响数据的运行。数据操作符统一

2.高度非过程化
  1. 非关系数据模型的数据操纵语言“面向过程”,必须指定存取路径
  2. SQL 只要提出“做什么”,无须了解存取路径。
  3. 存取路径的选择以及 SQL 的操作过程由系统自动完成。
3.面向集合的操作方式
  1. 非关系数据模型采用面向记录的操作方式,操作对象是一条记录
  2. SQL 采用集合操作方式:
    ① 操作对象、查找结果可以是元组的集合 ②一次插入、删除、更新操作的对象可以是元组的集合
4.以同一种语法结构提供多种使用方式
  1. SQL 是独立的语言 能够独立地用于联机交互的使用方式
  2. SQL 又是嵌入式语言 SQL 能够嵌入到高级语言(例如 C,C++,Java)程序中,供程序员设计程序时使用
5.语言简单,易学易用

语言简洁,易学易用。尽管 SQL 的功能很强,但语言十分简洁,核心功能只用了 9 个动词。SQL 的语法接近英语口语,所以,用户很容易学习和使用。

SQL 语言的动词

SQL 功 能 动 词
数 据 查 询 SELECT
数 据 定 义 CREATE,DROP,ALTER
数 据 操 纵 INSERT,UPDATE,DELETE

数 据 控 制 | GRANT,REVOKE

三、SQL 语言基本概念
1.SQL 支持关系数据库三级模式结构

在这里插入图片描述 ##### 2.结构化查询语言包含 6 个部分:

  1. 数据查询语言(DQL:Data Query Language):其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字 SELECT 是 DQL(也是所有 SQL)用得最多的动词,其他 DQL 常用的保留字有 WHERE,ORDER BY,GROUP BY 和 HAVING。这些 DQL 保留字常与其它类型的 SQL 语句一起使用。
  2. 数据操作语言(DML:Data Manipulation Language):其语句包括动词 INSERT、UPDATE 和 DELETE。它们分别用于添加、修改和删除。
  3. 事务控制语言(TCL):它的语句能确保被 DML 语句影响的表的所有行及时得以更新。包括 COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。
  4. 数据控制语言(DCL):它的语句通过 GRANT 或 REVOKE 实现权限控制,确定单个用户和用户组对数据库对象的访问。某些 RDBMS 可用 GRANT 或 REVOKE 控制对表单个列的访问
  5. 数据定义语言(DDL):其语句包括动词 CREATE,ALTER 和 DROP。在数据库中创建新表或修改、删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。
  6. 指针控制语言(CCL):它的语句,像 DECLARE CURSOR,FETCH INTO 和 UPDATE WHERE CURRENT 用于对一个或多个表单独行的操作。

查询和更新指令构成了 SQL 的 DML 部分:

SELECT - 从数据库表中获取数据UPDATE - 更新数据库表中的数据DELETE - 从数据库表中删除数据INSERT INTO - 向数据库表中插入数据SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。

SQL 中最重要的 DDL 语句:

CREATE DATABASE - 创建新数据库ALTER DATABASE - 修改数据库CREATE TABLE - 创建新表ALTER TABLE - 变更(改变)数据库表DROP TABLE - 删除表CREATE INDEX - 创建索引(搜索键)DROP INDEX - 删除索引

3.数据库中常用的概念
  1. 模式:基本表的集合定义为 SQL 模式。一个 SQL 模式(即"数据库模式")由模式名和模式拥有者的用户名或账号来确定,并包含模式中每一个元素(基本表、视图、索引等)的定义。
  2. 索引
  3. 视图

视图与表的异同:

  1. 表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改。
  2. 视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些 SQL 语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
  3. 表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。 联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。

视图可以在以下几个方面使程序与数据独立:

  1. 如果应用建立在数据库表上,当数据库表发生变化时,可以在表上建立视图,通过视图屏蔽表的变化,从而应用程序可以不动。
  2. 如果应用建立在数据库表上,当应用发生变化时,可以在表上建立视图,通过视图屏蔽应用的变化,从而使数据库表不动。
  3. 如果应用建立在视图上,当数据库表发生变化时,可以在表上修改视图,通过视图屏蔽表的变化,从而应用程序可以不动。
  4. 如果应用建立在视图上,当应用发生变化时,可以在表上修改视图,通过视图屏蔽应用的变化,从而数据库可以不动。



## 首先给出的简单安装方式,文末给出标准的安装方式。第一步下载我的压缩包链接https://pan.baidu.com/s/1EE40dU0j2U1d-bAfj7TeVA 提取码:n25c 复制这段内容后打开百度网盘手机 App,操作更方便哦第二步解压到D 盘都放进来看图。在这里插入图片描述第三步打开MySQL 文件夹,就是D 盘的那个 在这里插入图片描述第四步管理员身份运行环境变量.bat在这里插入图片描述在这里插入图片描述完事了。输入mysql -uroot -p试一下密码不用输入,直接跳过。在这里插入图片描述

安装完成





问题解决:

如果不行的话,任务管理(ctrl+alt+del)找一下服务

在这里插入图片描述在这里插入图片描述

根目录找到 my.ini在这里插入图片描述删除第二行

[mysqld]# skip-grant-tables# 如果不输入密码报错,删除上一句的“#”然后参考前面修改密码。# 设置 3306 端口port=3306# 设置 mysql 的安装目录basedir=D:\\Mysql\\mysql-8.0.19-winx64# 设置 mysql 数据库的数据的存放目录datadir=D:\\Mysql\\mysql-8.0.19-winx64\\data# 允许最大连接数max_connections=200# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统max_connect_errors=10# 服务端使用的字符集默认为 UTF8character-set-server=utf8# 创建新表时将使用的默认存储引擎default-storage-engine=INNODB# 默认使用“mysql_native_password”插件认证default_authentication_plugin=mysql_native_password[mysql]# 设置 mysql 客户端默认字符集default-character-set=utf8[client]# 设置 mysql 客户端连接服务端时默认使用的端口port=3306default-character-set=utf8

再试一试

如果出现的 vcruntime140.dll 缺失

是因为没有 VC++的支持去官网下载一个https://support.microsoft.com/zh-cn/help/2977003/the-latest-supported-visual-c-downloads


如果 mysql 服务不能正常运行,打开后直接停止。

大概率是 data 初始化失败,即没有完成操作就关闭了.bat请删除 mysql 根目录下的 data 文件夹,然后手动在运行 cmd 运行以下代码。

mysqld --initialize-insecure --user=mysqlmysqld -install
workbench 的安装

workbench 是 mysql 官方的数据库管理软件,相对来说功能很全。

下载链接是这个 https://dev.mysql.com/downloads/file/?id=492434直接点击就可以下载,因为下载比较忙,可以拷贝到迅雷下载

修改密码

最后最后,因为我的配置是跳过了密码所以直接回车就可以,但是如果需要的话,参考一下改密码。1.运行 cmd,输入mysql -u root -p 出现 password: 直接回车可以进入。

2 进入 mysql 数据库:

use mysql

提示Database changed

3 给 root 用户设置新密码:

update user set password=password("123456") where user="root";

别忘了标点

提示:Query OK, 1 rows affected (0.04 sec)Rows matched: 1 Changed: 1 Warnings: 0

4.刷新数据库

flush privileges;

提示:Query OK, 0 rows affected (0.01 sec)

5 退出 mysql:

exit

然后:

根目录找到 my.ini在这里插入图片描述删除第二行在这里插入图片描述

问题通解

如果问题还没有解决,那打开日志文件。在数据根目录下的 data 里面,有一个.err文件打开它,你就知道真正不能运行的原因是什么。

mysql-8.0.19-winx64\data\计算机名.err

环境变量.bat

@echo offset My_PATH=D:\MySQL\mysql-8.0.19-winx64\bin  goto start      =  上面的 path 改成自己 mysql 的安装目录下的 bin 的路径     :starts
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值