0

0

常用的MySQL必备基础知识

coldplay.xixi

coldplay.xixi

发布时间:2021-04-15 09:20:49

|

3590人浏览过

|

来源于CSDN

转载

常用的MySQL必备基础知识

一、SQL的概念

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

相关免费学习推荐:mysql视频教程

二、SQL分类

(1)数据定义语言(Data Definition Language) DDL
用来定义数据库对象:数据库,表,列……
(2)数据操作语言(Data Manipulation Language) DML
用来对数据库中表的记录进行更新。
(3)数据查询语言(Data Query Language) DQL
用来查询数据库中表的记录。
(4)数据控制语言(Data Control Language) DCL

(一)DDL

1.创建数据库
	create database 数据库名; 
	create database 数据库名 character set 字符集; //字符集一般为uft-8,第二个语句是创建数据的同时并设置了字符集。2.查看数据库
	use 数据库名;   //切换数据库
	show databases;  //查看MySQL中都有哪些数据库
	select database();   //查看当前正在使用的数据库
	show create database 数据库名;  //查看一个数据库的定义信息3.修改数据库字符集
	alter database 数据库名 character set 字符集;4.删除数据库
	drop database 数据库名;5.创建表
	CREATE TABLE 表名(
		字段名称1  字段类型(长度),
		字段名称2  字段类型(长度)		//注意:最后一个字段名称末尾不加,
    );
	/*常用的数据类型
	  int  整型  double 浮点型  varchar 字符串 
	  data 	日期类型,yyyy-MM-dd  年-月-日
	  注意: char也表示字符串,但是跟varchar是有区别的
	  char和varchar区别:
	   	 char类型是固定长度的,varchar是根据输入字符分配合适的空间,一般情况下用varchar
	 */6.查看表
	show tables;   //查看当前数据库所有的表
	desc 表名;  //查看表的结构7.修改表
	rename table 旧表名 to 新表名;  // 修改表名
	alter table 表名 character set 字符集;  //修改字符集
	alert table 表名 add 字段名称 字段类型;  //向表中添加字段
	alter table 表名 drop 字段名;  //删除字段8.删除表
	drop 表名 if exists 表名; //删除该表

(二)DML

1.插入数据
	insert into 表名 (字段名1,字段名2...) values(字段值1,字段值2...);2.更改数据
	update 表名 set 列名 = 值 [where 字段名 = 值];3.删除数据
	delete from 表名 [where 字段名 = 值];

(三)DQL

1.简单查询
	select 列名 from 表名; //列名可以用*号代替表示查询所有字段2.条件查询
	select 列名 from 表名 where 条件表达式;
	//  %表示任意多个字符串,  _表示匹配一个字符,
3.排序
	SELECT 字段名 FROM 表名 [WHERE 字段 = 值] ORDER BY 字段名 [ASC / DESC];
	// ASC 表示升序排序(默认),DESC表示降序排序4.聚合函数	/*常用聚合函数
	* count(字段) 统计指定列不为NULL的记录行数
	* sum(字段)  计算指定列的数值和
	* max(字段)  计算指定列的最大值
	* min(字段)  计算指定列的最小值
	* avg(字段)  计算指定列的平均值
	*/
	SELECT 聚合函数(字段名) FROM 表名;5.分组
	SELECT 分组字段/聚合函数 FROM 表名 GROUP BY 分组字段 [HAVING 条件];6.limit关键字
	SELECT 字段1,字段2... FROM 表名 LIMIT offset , length;
	// offset  起始行数, 从0开始记数, 如果省略 则默认为 0.
	// length 返回的行数

(四)DCL

1.创建用户
	CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';2.给用户授权
	GRANT 权限 1, 权限 2... ON 数据库名.表名 TO '用户名'@'主机名';3.查看权限
	SHOW GRANTS FOR '用户名'@'主机名';4.删除用户
	DROP USER '用户名'@'主机名';5.查询用户
	SELECT * FROM USER;

三、 SQL约束

1. 主键约束	// 不可重复 唯一 非空
	字段名 字段类型 primary key;	//  主键的自动增长 AUTO_INCREMENT 表示自动增长(字段类型必须是整数类型)
	// 默认主键起始值是1,改变起始值
	//-- 创建主键自增的表,自定义自增其实值字段名 字段类型 DEFAULT 默认值
	
	// CREATE TABLE 表名(
	// eid INT PRIMARY KEY AUTO_INCREMENT,
	// ……
	// )AUTO_INCREMENT=100;

	// DELETE和TRUNCATE对自增长的影响(前者对自增没有影响,后者从1开始自增)2. 非空约束
	字段名 字段类型 not null,3. 唯一约束
	字段名 字段类型 unique,4. 默认值
	字段名 字段类型 DEFAULT 默认值

四、事务控制

1.什么是事务
	事务是一个整体,由一条或者多条SQL 语句组成,这些SQL语句要么都执行成功,要么都执行失败, 只要一条SQL出现异常,整个操作就会回滚,整个业务执行失败。2. 手动提交事务
	① 开启事务 start transaction; 
	② 提交事务 commit;
	③ 回滚事务 rollback;3. 自动提交事务(MySQL默认)	// 取消自动提交
	SET @@autocommit=off;
	// 查看自动状态, on是自动,off是手动提交
	SHOW VARIABLES LIKE 'autocommit';4. **事务的四大特性**(重点)
	原子性,一致性,隔离性,持久性。5. 事务隔离级别	//查看隔离级别
	select @@tx_isolation; //5.7版本
	// 设置隔离级别
	set global transaction isolation level 级别名称;
	// read uncommitted 读未提交
	// read committed 读已提交
	// repeatable read 可重复读
	// serializable 串行化

五、多表

(一)概述

医院网站系统
医院网站系统

HTML医院网站系统基于PHP+MYSQL开发,在文章内容网站的基础上,预设了医院概况、新闻动态、环境设备、名医荟萃、专科介绍、就医指南、专家门诊值班表、网上挂号、医疗保健知识、在线咨询等医院网站常用的栏目和测试数据,采用适合医院网站的专用模版,增强了系统的针对性和易用性。系统具有文章、图文、下载、社区、表单、用户等基本系统模块和一系列网站辅助功能,用户也可根据自身特点任意创建和修改栏目,适合创建

下载
 	1. 在实际开发中,单表是满足不了业务需求的,同一个字段中很可能出现大量的
冗余字段,这就需要我们引入了多表。    2. 如果表1的某个字段与表2的主键对应,那么表1的这个字段就称为表1的外键,
拥有外键的表是从表,与外键对应的主键所在的表成为主表。    4. 外键约束:外键约束可以让两张表之间产生一定的对应关系,从而形成了约束。    5. 外键指的是与在从表中与主表的主键对应的字段。    6. 添加外键约束的语法格式    	[CONSTRAINT] [外键约束名称] FOREIGN KEY(外键字段名) REFERENCES 
    主表名(主键字段名);
    alter table 从表 add [CONSTRAINT] [外键约束名称] FOREIGN KEY(外键字段名) 		REFERENCES 主表名(主键字段名);
    //  中括号里面的东西都是可以省略的 
    7. 删除外键约束的语法格式
    alter table 从表 drop foreign key 外键约束名称;
    8.外键约束的注意事项:
    	① 从表的外键类型必须与主表的主键类型一致。
    	② 添加数据时,应该先添加主表的数据,然后再添加从表的数据
    	③ 删除数据的时候,要先删除从表中的数据,再删除主表中的数据。    9.级联删除
    	 删除数据的时候,要先删除从表中的数据,再删除主表中的数据,设置级联删除
    变可以直接删除主表中的数据,同时从表中的数据也会跟着消失。
    	on delete cascade; //添加外键约束的时候后面跟着这句

(二)多表间关系

一对多: 在多的表上建立外键 多对多: 建立第三个表,最起码有两个字段(两个表的主键) 一对一: 任意一个表上建立外键

(三) 多表查询

1.内连接查询
	SELECT 字段名 FROM 左表, 右表 WHERE 连接条件;
	SELECT 字段名 FROM 左表 [inner]  JOIN 右表 ON 连接条件;2.外连接查询
	SELECT 字段名 FROM 坐标 LEFT [outer] JOIN 右表 ON 连接条件;
	SELECT 字段名 FROM 坐标 RIGHT [outer] JOIN 右表 ON 连接条件;// 内连接: inner join , 只获取两张表中 交集部分的数据.// 左外连接: left join , 以左表为基准 ,查询左表的所有数据, 以及与右表有交集的部分// 右外连接: right join , 以右表为基准,查询右表的所有的数据,以及与左表有交集的部分3.子查询
	SELECT 查询字段 FROM 表 WHERE 字段=(子查询);
	SELECT 查询字段 FROM (子查询)表别名 WHERE 条件;
	SELECT 查询字段 FROM 表 WHERE 字段 IN (子查询);
	// 子查询如果查出的是一个字段(单列), 那就在where后面作为条件使用.
	// 子查询如果查询出的是多个字段(多列), 就当做一张表使用(要起别名).

六、数据库三范式

数据库设计的一种规则
目的: 创建 冗余较小,结构合理的数据库。
第一范式(1NF) 满足最低要求的范式——列具有原子性,列要做到不可拆分性
第二范式(2NF) 在满足第一范式的基础之上进一步满足更多的规范—— 一张表只能描述一件事情
第三范式(3NF) 以此类推………………

七、MySQL索引

索引的作用:为了提高索引的效率
**常见索引的分类:**主键索引(primary key);
唯一索引(unique);普通索引(index);

(一)主键索引

1.创建的时候添加主键索引
	CREATE TABLE 表名(
	字段名 类型 PRIMARY KEY ,
	//主键索引是唯一索引
	);2.在已有表的基础上添加主键索引
	ALTER TABLE 表名 ADD PRIMARY KEY(列名);

(二)唯一索引

1. 创建的时候添加唯一索引
	CREATE TABLE 表名(
		UNIQUE [索引名称] (列名) 
	);2. 在已有表的基础上添加唯一索引
	CREATE UNIQUE INDEX 索引名 on 表名(列名);
	ALTER TABLE 表名 ADD UNIQUE (列名);

(三)普通索引

	create index 索引名 on 表名(列名[长度]);
	ALTER TABLE 表名 ADD INDEX 索引名(列名);

(四)删除索引

	ALTER TABLE table_name DROP INDEX index_name;

八、MySQL视图

	// 视图是一个表中根据不同需求提取出来的一个实际上不存在的表
	create view 视图名 [column_list] as select语句;
    // 通过视图进行查询时将视图看成是一张表即可

相关免费学习推荐:mysql数据库(视频)

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

38

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

83

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

97

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

223

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

458

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

169

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

246

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

34

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
【web前端】Node.js快速入门
【web前端】Node.js快速入门

共16课时 | 2.1万人学习

Go语言实战之 GraphQL
Go语言实战之 GraphQL

共10课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号