第四章:SQL语言介绍
目录
第四章:SQL语言介绍
一、SQL基础语言
使用SQL建立数据库
使用SQL进行简单查询
二、安装MySQL
安装地址
数据库管理系统可视化操作工具MySQL Workbench介绍
三、MySQL WorkBench的简单操作
数据库的创建
使用代码创建数据库
数据库表的创建
使用语句生成数据库的表
使用语句删除数据库的表
向数据表中添加数据
查询数据
使用WHERe关键字查找符合条件的若干行
主要介绍了SQL的发展史:SQL从上世纪70年代产生,并被各大厂商逐渐完善和认可。各个数据库管理软件的SQL基本相同(90%),此外,各个数据库管理软件也有自己的特色用法。数据库操作语言可以按照DDL、DML和DCL,共9种操作语句。
一、SQL基础语言
使用SQL建立数据库
SQL数据库的建立使用DDL语句完成,共包含两个步骤:
step1:建立数据库——CREATE DATAbase
step2:建立表——CREATE TABLE
表建立后,可以使用DML向表中增加数据,使用DML对数据进行修改和查询。
使用SQL进行简单查询
查询的目的:从数据库的表中检索出符合要求的元组,查询语句时SQL中DML的核心内容,十分重要,前面的众多铺垫就是为了这一刻!简单得总结本节所讲的内容。
基本形式:SELECt 列名 FROM 表名 WHERe 条件
当查询的结果不重复时,使用DISTINCT关键字
对查询的结果额外要求排序,使用ORDER关键字
模糊查询时,使用LIKE关键字,搭配%、_和转义符使用
解决运算优先级的最佳方案:加括号
在进行查询时,主要的难点是从提出的问题到SQL语句的转化。
二、安装MySQL
本课程要安装MySQL(因为SQL Server2012和C语言使用的VC冲突)
如果你的电脑安装了Vc++2010,安装sql server2012时会出现下图所示的错误,是因为vs++2010中含有旧版本sqlserver的实例。目前很多人都因为这个问题没法安装SQL Server2012了。为了能够让初学者尽快上手数据库的练习,因此我们使用MySQL这款数据库管理系统软件,它和SQL Server同样是非常强大的关系型数据库管理系统(而且很多企业都在用它,可以说在实际工作中更流行)其实就是不同厂家出品的关系型数据库管理系统
安装地址
MySQL的windows 64位版本的下载地址如下:
https://dev.mysql.com/downloads/windows/installer/8.0.html
大家选择下图中红框所示的版本下载并安装
具体的安装步骤请参考下面的博客,注意我们已经下载好了,直接从文中的步骤2开始,到步骤3之前就结束了,他的第三步是开始介绍My SQL中的具体操作,不需要看
https://blog.csdn.net/xiezhiming1234/article/details/82860339
windows系统 MySQL8.0.12详细安装步骤及基本使用教程
数据库管理系统可视化操作工具MySQL Workbench介绍
安装完了MySQL全家桶(不仅仅是MySQL 的服务器,还有其他的一堆开发者工具也一起安装了,为的是方便大家学习和使用数据库,具体可以看下图蓝色框框中的安装内容,大家在安装时可以看到安装的内容),现在我们要使用MySQL Workbench来实现数据库的创建、表的创建和数据的插入等操作。
注意一下:很多人在安装的时候会忘记执行一些excute,MySQL会为大家安装一下运行必备的环境,记住先execute再next。
那么我们安装完是怎么去使用呢,大家在开始菜单中输入workbench,就可以找到我们需要的软件,叫做MySQL workbench。
我们打开这个软件,会来到如下的界面,这就是MySQL workbench的初始界面:
现在可以通过workbench连接到MySQL服务器:
连接成功后,页面会跳转到连接后的界面,如下图所示
更多关于MySQL Workbench的介绍可以参考MySQL的官网,官网的解释非常详细,还可以练习英语,一举两得岂不是美滋滋,链接如下:
https://dev.mysql.com/doc/workbench/en/
三、MySQL WorkBench的简单操作
数据库的创建
在导航栏中,我们先点底部的“schema”切换到数据库栏位下,可以看到已经有3个数据库了,我们可以创建自己的数据库,在空白的地方右键,选择create schema,创建自己的数据库。
创建数据库,数据库的名字为my_db,大家可以起自己喜欢的名字,字符集规则选择utf8,点击下方的Apply按钮,在跳出的窗口中选择Apply->Finsh即可完成数据库的创建,这个时候我们可以看到左侧多了一个my_db的数据库。
注意:utf8字符集说明,大家在使用python时,在打开文件的时候也会看到"open file(filename, decoding="utf-8")"的代码段,因为utf8是全球通用的字符集。如果使用其他字符集如GBK,在有些情况下会出现乱码的情况,推荐使用utf8,更多关于字符集的思考大家可以参考下面的链接学习。
MySQL选择合适的字符集 - 云+社区 - 腾讯云
使用代码创建数据库
上面是使用MySQL workbench的可视化操作,现在同学们再尝试使用代码创建数据库:
CREATE SCHEMA `my_db` DEFAULT CHARACTER SET utf8;
使用代码删除数据库:
DROp SCHEMA `my_db`
数据库表的创建
展开刚刚创建完成的数据库,在数据库中右键Tables,选择Create Table,开始创建表。
我们设定好表的名称,设定一个列属性名为ID,表示学生的学号,对ID做一定要求:ID是主键,且不能为空。这样我们的第一个数据库的表就创建好了。
使用语句生成数据库的表
CREATE TABLE `my_db`.`student`(
`ID` INT NOT NULL,
PRIMARY KEY(``))
使用语句删除数据库的表
DROP TABLE `my_db`.`student`
向数据表中添加数据
首先查询刚刚创建的表,鼠标右键student表,选择 Select Rows -Limit1000选项、在屏幕中央会显示查询结果,现在是没有数据的,我们可以向表中添加若干数据。
在屏幕的中间,我们可以向表中插入数据,注意数据不能违背刚才设定的属性约束,如第一列是主键,因此不能重复,生日属性一定要是符合规范的年月日格式,否则在插入数据时会报错。
查询数据
使用SELECT FROM关键字查询数据
(1) 插入了数据后,我们可以进行数据的查询操作,数据查询操作相比刚才大家已经看到了,就是查询表中的所有内容:
SELECt * FROM my_db.student;
这条语句等价于,也是获取表中的全部数据:
SELECt id, sname, ssex, sbirthday, sdept FROM student;
(2) 查询表中某些列/属性:
SELECt id, sname FROM student;
(3) 查询表中没有的列
SELECt子句中的属性可以时表中存在的列,也可以时常量、表达式或者函数。
下面的例子是带有常量的查询语句:
SELECT '姓名', sname FROM student;
如果我们现在想知道学生的年龄,而表中只记录了学生的出生年月,没有记录年龄,可以这样查询(注意到我们可以调用一些MySQL内置的函数来完成这个任务,使用AS关键字来为某一列取别名,提高其可读性):
SELECt '姓名', sname,'年龄',TIMESTAMPDIFF(YEAR,sbirthday, CURDATE()) AS AGE FROM student;
使用WHERe关键字查找符合条件的若干行
查询中除了可以通过投影运算来选择若干列之外,还可以通过选择运算来选择若干行感兴趣的元组,这时候需要WHERe关键字来实现
若需要查询全体大数据专业学生的姓名,可以用下列语句实现:
SELECt sname, sdept FROM student WHERe sdept = 'bigdata';
再来个例子,若要查询所有女生的信息,可以使用如下语句实现:
SELECt * FROM student WHERe ssex = '女';
BEWTEEN... AND关键字可以 和WHERe使用,来确定范围
比如需要查询出生在2000年的学生,可以用如下语句实现:
SELECt * FROM student WHERe sbirthday BETWEEN '2000-01-01' AND '2000-12-31';
反过来,如果想查询不在2000年出现的学生,使用NOT BETWEEN AND来实现:
SELECt * FROM student WHERe sbirthday NOT BETWEEN '2000-01-01' AND '2000-12-31';



