MySQL入门学习总结

mysql的学习总结。包括mysql的安装配置,以及SQL语言的使用。


一、MySQL简介

MySQL是一个开源免费的关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

mysql的下载地址:下载地址

二、MySQL的安装卸载与常用命令

1.安装

省略

2.卸载

打开命令提示符(管理员),输入以下两条命令并分别按回车。

net stop mysql
mysqld -remove mysql

最后删除mysql的文件目录以及环境变量。

3.初始化mysql

使用管理员身份打开命令行工具,输入命令

mysqld --initialize-insecure

4.注册mysql服务

命令行中输入命令

mysqld -install

5.启动mysql服务

net start mysql

关闭mysql服务

net stop mysql

6.修改默认的账户密码

输入命令

mysqladmin -u root password 修改的密码

7.mysql的登录与退出

登录命令

mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认127.0.0.1) -P端口号(默认3306)

退出命令

exit
quit

三.SQL学习

1.SQL的简介

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

2.SQL的分类

DDL(Data Definition Language) : 数据定义语言,用来定义数据库对象:数据库,表,列等
DDL简单理解就是用来操作数据库,表等
DML(Data Manipulation Language) 数据操作语言,用来对数据库中表的数据进行增删改
DML简单理解就对表中数据进行增删改
DQL(Data Query Language) 数据查询语言,用来查询数据库中表的记录(数据)
DQL简单理解就是对数据进行查询操作。从数据库表中查询到我们想要的数据。
DCL(Data Control Language) 数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户
DML简单理解就是对数据库进行权限控制。比如我让某一个数据库表只能让某一个用户进行操作等。

3.DDL操作数据库

查询所有的数据库

show databases;

创建数据库

CREATE DATABASE 数据库名称;
``
创建数据库并判断,不存在则创建

```c
CREATE DATABASE IF NOT EXISTS 数据库名称;

删除数据库

DROP DATABASE 数据库名称;

删除数据库并判断,存在则删除

DROP DATABASE IF EXISTS 数据库名称;

使用数据库

USE 数据库名称;

查看当前使用的数据库

SELECT DATABASE();

操作表

查询当前数据库下的所有表

SHOW TABLES;

查询表的结构

DESC 表名称;

创建表

CREATE TABLE 表名 ( 字段名1 数据类型1, 字段名2 数据类型2, …字段名n 数据类型n );

常用的数据类型

tinyint : 小整数型,占一个字节 
int : 大整数类型,占四个字节 eg : age int 
double : 浮点类型 使用格式: 字段名 double(总长度,小数点后保留的位数) eg : score double(5,2) 123456
date : 日期值。只包含年月日 eg :birthday date : 
datetime : 混合日期和时间值。包含年月日时分秒
char : 定长字符串。 优点:存储性能高 缺点:浪费空间 eg : name char(10) 如果存储的数据字符个数不足10个,也会占10个的空间 
varchar : 变长字符串。 优点:节约空间 缺点:存储性能底 eg : name varchar(10) 如果存储的数据字符个数不足10个,那就数据字符个数是几就占几个的空间

删除表

DROP TABLE 表名;

删除表时并判断表是否存在

DROP TABLE IF EXISTS 表名;

修改表名

ALTER TABLE 表名 RENAME TO 新的表名;

给表添加一列

ALTER TABLE 表名 ADD 列名 数据类型;

修改表列的数据类型

ALTER TABLE 表名 MODIFY 列名 新数据类型;

修改列名和数据类型

ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;

删除列

ALTER TABLE 表名 DROP 列名;

4.DML语句

给指定列添加数据

INSERT INTO 表名(列名1,列名2,) VALUES(1,2,);

给全部列添加数据

INSERT INTO 表名 VALUES(1,2,);

批量添加数据

INSERT INTO 表名(列名1,列名2,) VALUES(1,2,),(1,2,),(1,2,); 
INSERT INTO 表名 VALUES(1,2,),(1,2,),(1,2,);

修改数据

UPDATE 表名 SET 列名1=1,列名2=2,[WHERE 条件] ;

删除数据

DELETE FROM 表名 [WHERE 条件] ;

5.DQL语句

完整的语法格式

SELECT
	字段列表 
FROM
	表名列表 
WHERE
	条件列表
GROUP BY
	 分组字段 
HAVING
	分组后条件
ORDER BY 
	排序字段 
LIMIT
	分页限定

查询多个字段

SELECT 字段列表 FROM 表名;
SELECT * FROM 表名; -- 查询所有数据

查询并去除重复记录

SELECT DISTINCT 字段列表 FROM 表名;

条件查询

SELECT 字段列表 FROM 表名 WHERE 条件列表;

排序查询

SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2];
ASC : 升序排列 (默认值)
DESC : 降序排列

聚合函数

SELECT 聚合函数名(列名) FROM 表;
-- null 值不参与所有聚合函数运算
函数名功能
count(列名)统计数量
max(列名)最大值
min(列名)最小值
sum(列名)求和
avg(列名)平均值

分组查询

SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];

分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义

分页查询

SELECT 字段列表 FROM 表名 LIMIT 起始索引 , 查询条目数;

6.约束

什么是约束

约束是作用于表中列上的规则,用于限制加入表的数据
约束的存在保证了数据库中数据的正确性、有效性和完整性

约束分类

约束名称约束关键字作用
非空约束NOT NULL保证列中所有的数据不能有null值
唯一约束UNIQUE保证列中所有数据各不相同
主键约束PRIMARY KEY主键是一行数据的唯一标识,要求非空且唯一
检查约束CHECK保证列中的值满足某一条件(MYSQL不支持检查约束)
默认约束DEFAULT保存数据时,未指定值则采用默认值
外键约束FOREIGN KEY外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性

建表时添加约束

-- 创建表时添加非空约束 
	CREATE TABLE 表名( 
	列名 数据类型  约束,);

建表后添加约束

-- 建完表后添加非空约束 
ALTER TABLE 表名 MODIFY 字段名 数据类型 约束;

删除约束

ALTER TABLE 表名 MODIFY 字段名 数据类型;

添加外键约束

-- 创建表时添加外键约束
 CREATE TABLE 表名(
 	 列名 数据类型,[CONSTRAINT] [外键名称] FOREIGN KEY(外键列名) REFERENCES 主表(主表列名) 
 	  );

建表后添加外键约束

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);

删除外键约束

ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

7.多表查询

内连接查询

-- 隐式内连接 
SELECT 字段列表 FROM 表1,2… WHERE 条件; 
-- 显示内连接
 SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 条件;

内连接相当于查询 A B 交集数据

外连接查询

-- 左外连接
 SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件;
 -- 右外连接
  SELECT 字段列表 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 条件;

子查询

查询中嵌套查询,称嵌套查询为子查询。

8.事务

什么是事务

数据库的事务(Transaction)是一种机制、一个操作序列,包含了一组数据库操作命令。
事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么同时成功,要么同时失败。事务是一个不可分割的工作逻辑单元。

开启事务

START TRANSACTION; 
或者
BEGIN;

提交事务

commit;

回滚事务

rollback;

事务的四大特征

名称特征
原子性事务是不可分割的最小操作单位,要么同时成功,要么同时失败
一致性事务完成时,必须使所有的数据都保持一致状态
隔离性多个事务之间,操作的可见性
持久性事务一旦提交或回滚,它对数据库中的数据的改变就是永久的

设置事务为手动提交

-- 1为自动提交,0为手动提交
set @@autocommit = 0; 

查询默认提交方式

SELECT @@autocommit;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

执笔浮云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值