MySQL笔记(超详细)

1、关于数据库

         数据库就是存放数据的仓库,是长期储存在计算内、有组织有机构的、可共享的数据集合

数据库的数据结构形式,叫数据模型,数据模型是数据库管理系统的核心和基础,常见数据模型有:网状模型、层次模型、关系模型(主流)、面向对象模型 。当今流行的数据库管理系统有Oracle、Mysql、MongDB、SQL Server、DB2、Redis。  

2、SQL语言

        2.1 SQL的概念

        SQL是一个通用的、功能极强的关系数据库语言,由数据查询、数据操作、数据定义、数据控制语言组成。有面向集合的操作方式和既是自含式语言,又是嵌入式语言,以同一种语法结构提供两种使用方式

        2.2 SQL语句的使用

1)创建数据库

 语句:create database 数据库名 ;

例如,要创建名为mydb的数据库,请使用以下语句:

create database mydb;

2)查看数据库

 语句 :show databases;

查看指定数据库 

 语句 :show create database 数据库名;

 

3) 选择数据库

语句: use 数据库名称;

4) 删除数据库

语句:drop database 数据库名称;

5)创建表

create table 表名(

        列名1 数据类型  [列/行级约束]

        列名2 数据类型 [列/行级约束]

);

6)查看数据表

语句:show tables[like 匹配模式];

7) 删除数据表

语句:drop tables;

 8)修改表结构

语句: alter table;

9)插入数据

语句: insert into 表名(字段名1,字段名2....)values(值1, 值2...);

10)修改数据

语句:update 表名    set 字段名=值1

 where[条件表达式];

11)删除数据

语句:delete from 表名  where  [条件表达式]

        2.3 查询

                  2.3.1 单表查询

select完整语句格式

select [distinct] * (字段名1,字段名2...)   from 表名

group by  字段名 [having 条件表达式2 ]

where 条件表达式1

order by 字段名[asc|desc]

limit,记录数;

说明:

排序:order by ,asc:升序,desc:降序;

分组:group by

                  2.3.2 多表查询

1)链接查询

常用于用于查询字段来自与多张表,分内连接(inner join)、左连接(left join)、右链接(right join)、交叉连接(cross join);

内链接查询语法:select 查询列表   from 表1

inner  join  表2  on  表 2.公共列= 表 1.公共列

inner  join  表3  on  表 3.公共列= 表 1|2.公共列

2)子查询

SQL语句中嵌套select语句,又称嵌套查询。

1.标量子查询:子查询返回的结果是单个值(数字、字符串、日期等),即一行一列。

语法:select主查询WHERE字段名=(标量子查询)

#常用操作符:=

例如:

子查询
select MAX(PageCount) from TBL_BookInfo

主查询

select BookName, PageCount from TBL_Booklnfo

where PageCount=(select MAX(PageCount) from TBL_Booklnfo);

2.列子查询:子查询返回的结果为一列(可以是多行),即一列多行。

语法:select主查询 where 字段名in(列子查询)

#常用操作符:in、not in、any、some、all

例如:

子查询

select userid from TBL_user WHERE class ='计算机应用技术1班’and sex=1

主查询 

select bookid,borrowdate from TBL_borrowinfo

where userid in (select userid from TBL_user where class='计算机应用技术1

班’ and sex =1); 

3.行子查询*:子查询返回的结果是一行(可以是多列),即一行多列。

语法:select主查询 where(字段名1,字段名2….)=(行子查询)

#常用操作符:=、<>、in、not in

4.表子查询*:子查询返回的结果是多行多列。

语法:select主查询 where(指定字段名1,指定字段名2,…)in(表子查询)

        2.4 视图

1)视图的 本质

1.视图是一种虚拟表,不占用物理存储空间(用于存储数据),

2.视图具有将预定义的select查询作为对象保存在数据库的能力,以备后

用,为查询结果的再输出、再利用提供极大的方便.

3.可以将任何一个预定义的select查询语句作为视图进行命名和存储。

4.视图中的数据内容取自一个简单或复杂的select语句的查询输出。

5.视图只不过是一个有名称且存储在SQL中的select语句。

2)创建视图基本语法

基本语法:create view数据库名]视图名

as

select语句 [with check option];

视图命名常以v_或view_开头,_v或_view结尾。

例:建立一个名为v_book_1的视图,功能是从图书表中查询书名中

包含有“工程数学”的所有记录

create view v_book_1

as

select * from TBL_BookInfo

where BookName like '%工程数学%;

3)修改视图  

基本语法: alter view[数据库名.]视图名

as

select语句

 4)删除视图

 基本语法 :

drop view [if exists [数据库名.]视图名1[视图名2....]

示例:

drop view v book_ class;

        2.5 函数

1)聚合函数

函数名称描述
count()返回参数字段的数量,不统计为NULL的记录
sun()返回参数字段之和
avg()返回参数字段的平均值返回参数字段的最大值返回参数字段的最小值
max()返回参数字段的最大值
min()返回参数字段的最小值

 

2)创建自定义函数语句

delimiter   新语句结束符号 (推荐使用$$,//,##,.非系统内置的符号)

create  function  函数名([参数名 数据类型[参数名 数据类型…]])

returns  返回值类型

begin

        SQL语句

        return返回值;

end

新语句结束符号

delimiter;

例: 创建函数GetBookNameByID,实现输入索书号(bookid),返回图书(bookname)

delimiter$$

create function GetBookNameByID(v_bookid char(15)) returns varchar(50)

begin

        return (select  bookname from tbl_bookinfo where bookid=v_bookid);

end

$$

delimiter;

3)函数调用、删除和查看

函数调用函数名(实际参数列表)
函数删除drop function 函数名
函数查看show create function 函数名

3、数据完整性


       3.1 数据完整性类型

1)表的约束

约束类型约束关键字说明
域完整性not null非空约束
default默认值约束
实体完整性primary key主键约束(用于唯一标识行)
unique唯一约束
auto_increment自增约束(由系统实现唯一性)
参照完整性foreign key外键约束
 

       3. 2 实体完整性

1)主键约束

每个数据表中最多只能有一个主键约束;

定义为主键的字段不允许有重复值,也不允许出现NULL值;

主键约束相当于唯一约束和非空约束的组合。

单字段主键

由一个字段构成的主键。

多字段主键

由多个字段组合而成的主键,或称复合或组合或联合主键,

注:所有组合字段的值完全相同才被认为是重复值。

2)  使用SQL语句创建主键

语法 :

单字段主键

primary key

单/多字段主键

primary key(字段名1,字段名2,….)

       3. 3 参照完整

1)外键约束(foreign key)

外键:特指两张表的公共列,在一张表是主键或唯一键,在另一张表则可以定义为外键。

外键表两个表之间的相关联系。

定义外键的表称为从表,也称为参照表、引用表、子表、外键表。

希被引用的表称为主表,也称为被参照表、被引用表、父表、外表。

作用:保证数据的一致性和完整性,主要目的是控制存储在外键表中的数据。

2)使用SQL语句创建外键

语法:foreig key(外键列名)references主表名(被引用列名)


 

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 《MySQL DBA运维笔记详细》是一本专门介绍MySQL数据库管理员运维工作的详细笔记MySQL是一种流行的开源数据库管理系统,许多企业和网站都在使用它来存储和管理数据。 这本笔记MySQL数据库的运维工作为核心,内容较为全面。它从基础知识开始,介绍了数据库的安装和配置,包括数据库实例、表空间、数据文件等的管理。同时,它还涉及到了数据库的备份和恢复策略,如何设计高可用的数据库架构,以及如何进行性能优化等。这些内容对于MySQL数据库管理员来说,是非常重要的。 除了基础的运维工作外,这本笔记还介绍了一些高级的技术和工具。例如,它详细解释了如何进行数据库的监控和诊断,如何进行慢查询分析以及如何优化SQL语句。此外,它还介绍了一些与MySQL数据库相关的常用工具,并提供了一些实战案例,帮助读者更好地理解和应用知识。 总体而言,这本《MySQL DBA运维笔记详细》是一本适合MySQL数据库管理员的实用手册。通过阅读这本书,读者可以系统地学习MySQL数据库的运维知识,提高自己的技术水平。无论是刚刚接触MySQL数据库的新手,还是已经有一定经验的运维人员,都可以从中受益匪浅。 ### 回答2: "Mysqldba运维笔记详细pdf"是一本关于MySQL数据库管理员运维笔记详细电子书。该电子书的主要内容涵盖了MySQL数据库的各个方面,提供了大量的技术细节和操作指南。 首先,该电子书介绍了MySQL的基础知识,包括数据库的概念、常用的SQL语法以及数据类型等。这为初学者提供了一个良好的入门点,让他们快速掌握MySQL的基本操作。 接着,该电子书深入讨论了MySQL数据库的架构和原理,包括存储引擎、查询优化、事务处理和并发控制等相关内容。这对于高级用户和数据库管理员来说是非常有价值的,可以帮助他们更好地理解MySQL的内部工作原理,从而优化数据库的性能和稳定性。 此外,该电子书还详细介绍了MySQL数据库的备份和恢复策略,包括物理备份和逻辑备份的方法。它提供了一些实用的技巧和建议,帮助用户确保数据库的安全性和可靠性。 除了基础知识和高级技巧,该电子书还涵盖了一些常见问题和故障排除的方法。它列出了一系列常见的错误和异常情况,并提供了解决方案和调试指南,使用户能够快速识别和解决问题。 总之,"Mysqldba运维笔记详细pdf"是一本全面而详细MySQL数据库管理员运维指南。它适用于初学者和有经验的用户,提供了从基础知识到高级技巧的全方位指导,是学习和实践MySQL数据库管理的必备资料。 ### 回答3: "Mysqldba运维笔记详细"是一本提供了关于MySQL数据库管理员运维方面详尽知识的PDF。这本书包含了丰富的内容,从基本的MySQL概念开始,涵盖了各种常见问题的解决方案和最佳实践。 这本书首先介绍了MySQL数据库的概念和基本原理,包括数据库架构、存储引擎、事务处理等。然后,它详细讲解了如何安装和配置MySQL数据库,包括安装步骤、配置文件的修改以及相关工具的安装和使用。 接下来,这本书通过实用的案例和示例来介绍如何进行数据库管理和维护。它讲解了数据库备份和恢复的方法,包括全量备份和增量备份的技巧。此外,它还详细介绍了如何进行数据库监控和性能调优,包括查看数据库日志、优化SQL查询和调整系统参数等。 除了基本的运维知识,这本书还介绍了一些高级主题。它讲解了如何配置MySQL高可用性方案,包括主从复制和主备切换。它还介绍了如何进行数据库的故障诊断和排除,包括常见问题的解决方法和故障恢复策略。 总的来说,"Mysqldba运维笔记详细"这本PDF提供了一个全面而详细MySQL数据库管理员运维指南。无论是初学者还是有经验的专业人士,都可以从中学习到宝贵的知识和实践经验。它是一本对于那些想要更好地理解和管理MySQL数据库的读者来说必不可少的参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值