MySQL数据库

MySQL是DBMS软件系统,通过这些系统来维护管理数据库。

DBMS类似于用于和数据库之间的桥梁。

一、安装配置

下载免费的MySQL 社区版,安装后需要下载MySQL workbench vscode phpmyadmin等工具来接入MySQL。

MySQL可以管理多个数据库的,数据库存放在某台主机上面,数据库上级是服务器,服务器是用来作为数据库的,每台服务器可以有多个数据库,MySQL里的数据库称为schema,schema里面可以有不同的table(表格)。
官网: [https://www.mysql.com/](https://www.mysql.com/

mysql查下数据库总记录的数量 mysql查询数据总数_数据库

mysql查下数据库总记录的数量 mysql查询数据总数_mysql查下数据库总记录的数量_02

点击社区版

mysql查下数据库总记录的数量 mysql查询数据总数_运维_03

mysql查下数据库总记录的数量 mysql查询数据总数_运维_04

下载

mysql查下数据库总记录的数量 mysql查询数据总数_运维_05

安装后打开控制台(快捷键win+r)

输入:

mysql -uroot -p

mysql查下数据库总记录的数量 mysql查询数据总数_学习_06

二、数据类型

MySQL大致分为三类:

  • 数值类型
  • 日期/时间类型
  • 字符串(字符)类型

1、整数类型

2、浮点数类型

3、定点数类型

4、日期类型

5、时间类型

6、字符串类型

三、数据库表基本操作

1、数据库查看
Show databases;

mysql查下数据库总记录的数量 mysql查询数据总数_数据库_07

2、数据库创建
Create database huang;

mysql查下数据库总记录的数量 mysql查询数据总数_mysql查下数据库总记录的数量_08

3、数据库删除
Drop database huang;

mysql查下数据库总记录的数量 mysql查询数据总数_运维_09

4、表的创建

语法:

CREATE TABLE 表名( 属性名 数据类型 [完整性约束条件],
属性名 数据类型 [完整性约束条件],
属性名 数据类型 [完整性约束条件]
);

约束:

标识

说明

PRIMARY KEY

属性为该表的主键,可以唯一的标识对应的记录

FOREIGN KEY

属性为该表的外键,与某表的主键关联

NOT NULL

属性不能为空

UNIQUE

属性的值是唯一的

AUTO_INCREMENT

属性的值自动增加

DEFAULT

设置默认值

实例:

mysql查下数据库总记录的数量 mysql查询数据总数_数据库_10

5、表的结构查看

查看基本表的结构

DESCRIBE(DESC) 表名;

查看表的详细结构

SHOW CREATE TABLE 表名;
6、表的修改

修改表名

ALTER TABLE 旧表名 RENAME 新表名;

修改字段

ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型

增加字段

ALTER TABLE 表名 ADD 属性名 1 数据类型 [完整性约束条件] [FIRST | AFTERR 属性名 2]

删除字段

ALTER TABLE 表名 DROP 属性名
7、表的删除
DROP TABLE 表名

四、数据查询

数据查询 重要项,简称sql语句。

1、单表查询

此处建了一个表hun(内容随机):

mysql查下数据库总记录的数量 mysql查询数据总数_数据库_11

01-查询指定列
SELECT hun.`name` FROM hun

mysql查下数据库总记录的数量 mysql查询数据总数_mysql查下数据库总记录的数量_12

查询多行,用逗号隔开。

SELECT hun.`name`,hun.sex FROM hun

mysql查下数据库总记录的数量 mysql查询数据总数_数据库_13

02-查询全部列
SELECT * FROM hun

mysql查下数据库总记录的数量 mysql查询数据总数_运维_14

03-查询经过计算的值
SELECT hun.`id`,hun.`name`,hun.`sex`,hun.`age`-18 FROM hun

mysql查下数据库总记录的数量 mysql查询数据总数_运维_15

04-消除取值重复行
关键字
DISTINCT

在原有表上加了一行重复项

mysql查下数据库总记录的数量 mysql查询数据总数_mysql_16

SELECT DISTINCT hun.`name` FROM hun

mysql查下数据库总记录的数量 mysql查询数据总数_数据库_17

05-查询满足条件的元组
比较

查询大于18岁的

SELECT * FROM hun WHERE hun.`age`>18

mysql查下数据库总记录的数量 mysql查询数据总数_mysql查下数据库总记录的数量_18

查询小于18岁的

SELECT * FROM hun WHERE hun.`age`<18

mysql查下数据库总记录的数量 mysql查询数据总数_mysql_19

范围 BETWEEN 17 AND 18

查询17-18这个范围之间的人物。

SELECT * FROM hun WHERE hun.`age` BETWEEN 17 AND 18

mysql查下数据库总记录的数量 mysql查询数据总数_学习_20

确定集合 IN (‘黄昏’,‘夏目’)
SELECT * FROM hun WHERE hun.`name` IN ('黄昏','夏目')

mysql查下数据库总记录的数量 mysql查询数据总数_数据库_21

字符匹配 LIKE ‘黄%’
SELECT * FROM hun WHERE hun.`name` LIKE '黄%'
SELECT * FROM hun WHERE hun.`name` LIKE '%黄'
SELECT * FROM hun WHERE hun.`name` LIKE '%黄%'
SELECT * FROM hun WHERE hun.`name` LIKE '黄_'

mysql查下数据库总记录的数量 mysql查询数据总数_运维_22

空值 IS NULL、IS NOT NULL

此处我修改了表单,新增了一个空值。

mysql查下数据库总记录的数量 mysql查询数据总数_mysql查下数据库总记录的数量_23

mysql查下数据库总记录的数量 mysql查询数据总数_mysql_24

查询为空的
SELECT * FROM hun WHERE hun.`sex` IS NULL

查询不为空的
SELECT * FROM hun WHERE hun.`sex` IS NOT NULL

mysql查下数据库总记录的数量 mysql查询数据总数_学习_25

多重条件

查询性别是男,年龄大于18

SELECT * FROM hun WHERE hun.`sex`='男' AND hun.`age`>18

mysql查下数据库总记录的数量 mysql查询数据总数_数据库_26

06-Order by子句

Order by子句用来排序的。

ASC  升序
DESC 降序

例子:根据年龄排序。

SELECT * FROM hun ORDER BY hun.`age` ASC
SELECT * FROM hun ORDER BY hun.`age` DESC

mysql查下数据库总记录的数量 mysql查询数据总数_运维_27

07-聚集函数
SELECT COUNT(*) FROM hun

mysql查下数据库总记录的数量 mysql查询数据总数_运维_28

例子:计算所有人员年龄的总和。

SELECT SUM(hun.`age`) FROM hun

mysql查下数据库总记录的数量 mysql查询数据总数_运维_29

08-Group by子句

将查询结果按某一列或多个列分组,值相等就是一组。

例子:男女分组(GROUP BY hun.sex)。

SELECT COUNT(hun.`age`),hun.`sex` FROM hun GROUP BY hun.`sex`

mysql查下数据库总记录的数量 mysql查询数据总数_学习_30

2、连接查询

此时再新加一个表格,内容如下,和上面用到的表格进行连接查询。

mysql查下数据库总记录的数量 mysql查询数据总数_mysql_31

01-等值与非等值连接

等值连接查询:

SELECT stu.`name`,stu.`age`,stu.`sex`,s.`score` FROM h_score s,hun stu WHERE s.`h_id`=stu.`id`

mysql查下数据库总记录的数量 mysql查询数据总数_数据库_32

不等值连接查询:

!=
<>

mysql查下数据库总记录的数量 mysql查询数据总数_数据库_33

02-自身连接

mysql查下数据库总记录的数量 mysql查询数据总数_mysql_34

03-外连接

外连接分为:左外连接和右外连接。

SELECT stu.`name`,stu.`age`,stu.`sex`,s.`score` FROM h_score s LEFT OUTER JOIN hun stu ON (s.`h_id`=stu.`id`)
SELECT stu.`name`,stu.`age`,stu.`sex`,s.`score` FROM h_score s RIGHT OUTER JOIN hun stu ON (s.`h_id`=stu.`id`)
左外连接

mysql查下数据库总记录的数量 mysql查询数据总数_学习_35

右外连接

mysql查下数据库总记录的数量 mysql查询数据总数_学习_36

04-复合条件连接

mysql查下数据库总记录的数量 mysql查询数据总数_运维_37

3、嵌套查询

新建表格,内容如下:

mysql查下数据库总记录的数量 mysql查询数据总数_数据库_38

01-带有IN谓词的子查询
02-带有比较运算符的子查询
03-带有ANY(SOME)或ALL谓词的子查询
04-带有EXISTS谓词的子查询

4、集合查询

01-UNION并集
02-INTERSECT交集
03-EXCEPT差集

5、SELECT语句的一般格式