MySQL入门简明教程 / SQL常用语句汇总

(一)MySQL简介

MySQL 为关系型数据库管理系统(Relational Database Management System), 由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

RDBMS的特点:
1.数据以表格的形式出现
2.每行为各种记录名称
3.每列为记录名称所对应的数据域
4.许多的行和列组成一张表单
5.若干的表单组成database

RDBMS的一些术语:
数据库: 数据库是一些关联表的集合。
数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
外键:外键用于关联两个表。
复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

MySQL为关系型数据库,这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成, 如图所示的表格:
在这里插入图片描述
表头(header): 每一列的名称;
列(col): 具有相同数据类型的数据的集合;
行(row): 每一行用来描述某条记录的具体信息;
值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
键(key): 键的值在当前列中具有唯一性。

(二)MySQL安装与环境搭建

0、验证MySQL安装

使用 mysqladmin 工具来获取服务器状态:返回服务器的版本信息, 在 Windows 上该二进制文件位于C:\mysql\bin 。
在这里插入图片描述

1、配置环境变量:

我用了phpstudy的Apache+PHP+MySQL的一套环境,做好这三者的环境变量添加(Path)后,可以直接使用了。

将mysql添加到系统环境变量:
在这里插入图片描述

cmd下进入mysql:

在这里插入图片描述

2、MySQL目录说明

在这里插入图片描述
在这里插入图片描述
mysqld是用来启动mysql数据库的命令,mysql是打开并执行sql语句的命令,这两个都在mysql安装文件夹的bin目录下 。

MySQL是一款C/S架构的软件,需要通过客户端来访问服务端(另外:提供了插件扩展来充当客户端的访问)
1、启用MySQL客户端:mysql.exe
2、cmd终端进入

(三)MySQL的连接

1、命令行连接mysql服务器
[root@host]# 服务器名 -u 用户名 -p
Enter password:******

进入与退出

mysql> exit
Bye
2、PHP脚本连接mysql

在PHP中,MySQLi和PDO是用于操作mysql数据库的扩展,分别有自己的一套方法,其中MySQLi提供了面向对象oop和面向过程pop的两套方式。
判断mysqli是面向对象还是面向过程?有 -> 的是面向对象,没有的是面向过程。
学习哪一种方式?对于大项目大工程来说,建议面向对象后期维护方便,易扩展。PDO则适合在不同数据库间切换。

使用(MySQLi - 面向对象)连接数据库的方法如下:

<?php
$servername = "localhost";
$username = "root";
$password = "123456";
 
// 创建连接
$conn = new mysqli($servername, $username, $password);//创建一个新的对象
 
// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} 
echo "连接成功";
?>

在这里插入图片描述

(四)数据库基本操作

1、创建一个数据库
<?php
$servername = "localhost";
$username = "root";
$password = "123456";
 
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} 
 
// 创建数据库
$sql = "CREATE DATABASE myDB";
if ($conn->query($sql) === TRUE) {
    echo "数据库创建成功";
} else {
    echo "Error creating database: " . $conn->error;
}
 
$conn->close();
?>

在phpMyAdmin可以看到:
在这里插入图片描述

MySQL 数据库教程 - https://www.runoob.com/mysql/mysql-create-database.html

(五)SQL语句查询

1.SELECT -从表中选取数据,结果存储在一个结果表中。
select 列名称 from 表名称

SQL对大小写不敏感,SELECT=select

select * from 表名称

“ * ” 星号为选择所有

select distinct 列名称 from 表名称

用于去除所选择列的内容中的重复值

select 列名称 from 表名称 where 列 运算符 值

where语句:有条件地从表中选取数据,以下运算符可以在where字句中使用:
= < > >= <= < > between(某个范围内) like(搜索某种模式)

2.引号 ’ ’

SQL使用单引号来环绕文本值(大部分数据库系统也接受双引号),如果是数值,一定不要用引号。

3. AND & OR

用于基于一个以上的条件对记录进行过滤,可以放在where子句里把两个或多个条件结合起来。

4.ORDER BY 对结果集进行排序

默认为升序,降序使用关键字DESC

ORDER BY Company //升序
ORDER BY Company DESC //降序
5.INSERT INTO 向表格中插入新的行
insert into 表名称 values (值1,值2,值3....)

也可以指定所要插入数据的列

insert into table_name (列1,列2...)values (值1,值2,值3....)
6.Update 修改数据
update 表名称 set 列名称 = 新值 where 列名称 = 某值

更新某一行中的一个列
我们为 lastname 是 “Wilson” 的人添加 firstname:

UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson' 

更新某一行中的若干列
我们会修改地址(address),并添加城市名称(city):

UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'
WHERE LastName = 'Wilson'
7.DELETE 删除行
DELETE FROM 表名称 WHERE 列名称 = 值

删除所有行

DELETE FROM table_name
DELETE * FROM table_name
8.TOP子句规定要返回的记录的数目。

对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。
注:并非所有的数据库系统都支持 TOP 子句。

SELECT TOP number|percent column_name(s)
FROM table_name
9.LIKE 在where子句中搜索列中的指定模式
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern

常用于:我们在图书管理系统中查找以“apple”开头的书…
涉及到“通配符”,自行学习

10.IN 在where字句中规定多个值
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)

我们在个人档案表里选择姓氏为 Adams 和 Carter 的人:

SELECT * FROM Persons
WHERE LastName IN ('Adams','Carter')
9.BETWEEN

操作符 BETWEEN … AND 在 WHERE 子句中使用,会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。

SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2

仍然是个人档案表,如需以字母顺序显示介于 “Adams”(包括)和 “Carter”(不包括)之间的人,请使用下面的 SQL:

SELECT * FROM Persons
WHERE LastName
BETWEEN 'Adams' AND 'Carter'

如需使用上面的例子显示范围之外的人,请使用 NOT 操作符:

SELECT * FROM Persons
WHERE LastName
NOT BETWEEN 'Adams' AND 'Carter'

注:不同数据库对BETWEEN … AND的处理不同,需检查

10. Alias(别名)

表的 SQL Alias 语法

SELECT column_name(s)
FROM table_name
AS alias_name

列的 SQL Alias 语法

SELECT column_name AS alias_name
FROM table_name

Alias 实例: 使用一个列名别名

SELECT LastName AS Family, FirstName AS Name
FROM Persons
//把列名LastName起名为 Family
11.JOIN用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

Join 和 Key
有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。

12. INNER JOIN 关键字

在表中存在至少一个匹配时,INNER JOIN 关键字返回行。

SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

注:INNER JOIN 与 JOIN 是相同的。

13.UNION 和 UNION ALL 合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SQL UNION 语法

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

注:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
SQL UNION ALL 语法

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值