MySQL数据库基础

本文全面介绍了MySQL数据库的基础概念、DDL操作创建和管理数据库、DML进行数据增删改查、DQL查询技巧如条件查询、模糊搜索和排序,还包括聚合函数、分组查询和分页,以及关键的约束规则。适合初学者快速掌握数据库管理技能。
摘要由CSDN通过智能技术生成

数据库database

  • 简介:数据库database,简称db。按照数据结构来组织、存储和管理数据的仓库。MySQL 是一个关系型数据库管理系统;支持大型的数据库。可以处理拥有上千万条记录的大型数据库。

  • 数据库: 数据库是一些关联表的集合。
  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
  • : 一列(数据元素) 包含了相同类型的数据;具有相同数据类型的数据的集合;
  • :一行(=元组,或记录)是一组相关的数据;每一行用来描述某条记录的具体信息;
  • 表头: 每一列的名称;
  • : 行的具体信息, 每个值必须与该列的数据类型相同;
  • : 键的值在当前列中具有唯一性。
  • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
  • 数据库的特点:
    • 持久化存储数据:存储到文件中的,做持久化的保存。其实数据库就是一个文件系统
    • 方便存储和管理数据
    • 使用了统一的方式操作数据库——sql
  • 关系型数据库(RDBMS)的特点
    • 数据以表格的形式出现
    • 每行为各种记录名称
    • 每列为记录名称所对应的数据域
    • 许多的行和列组成一张表单
    • 若干的表单组成database

SQL通用语法

简介

  • SQL语句可以单行或多行书写,以分号结尾

  • 可用空行和缩进增强语句的可得性

  • MySQL中的SQL语句不区分大小写,但关键字一般使用大写

  • 注释

     ①-- 注释内容(注意--后面有空格)——单行注释
     ②#注释内容——单行注释
     ③/*注释内容*/——多行注释
    
  • SQL分类

     1) DDL (Data Definition Language)数据定义语言
     用来定义数据库对象:数据库,表,列等。关键字: create, drop, alter等 
     2) DML (Data Manipulation Language)数据操作语言
     用来对数据库中表的数据进行增删改。关键字: insert, delete, update等
     3) DQL (Data Query Language)数据查询语言
     用来查询数据库中表的记录(数据)。关键字: select, where等
     4) DCL (Data Control Language)数据控制语言(了解)
     用来定义数据库的访问权限和安全级别,及创建用户。关键字: GRANT, REVOKE等
    
  • 数据类型
    MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 更多数据类型看这里

DDL操作数据库

这里以建立学生信息数据库为例

  • 创建数据库(create):
//创建数据库
create database STUDENT_INFORMATION;
//创建数据库,判断名为STUDENT_INFORMATION的数据库是否存在,不存在则创建
create database if not exits STUDENT_INFORMATION;
//创建数据库,并指定字符集
create database STUDENT_INFORMATION character set 字符集名;
  • 查询数据库(retrieve)
//查询所有数据库名称
show databases;
//查询创建数据库的语法
show create database+数据库名称;

在这里插入图片描述

  • 修改(update)
//修改数据库的字符集
alter database 数据库名称 character set 字符集名;
  • 删除(delete)
//删除数据库
drop database 数据库名称;
//判断数据库是否存在,存在则删除
drop database if exits 数据库名称
  • 使用数据库
//使用(进入)某个数据库
use STUDENT_INFORMATION;
//查询当前正在使用的数据库
select database();

在这里插入图片描述

DDL操作表

  • 创建
//创建表
create table 表名(
			列名1 数据类型1, //注意这里要加逗号隔开
			列名2 数据类型2,
			...
			列名n 数据类型n  //注意最后一列没有逗号
			);
#补充:复制表
create table 表名2 like 被复制的表名1;

在这里插入图片描述

  • 查询
//查询某个数据库中所有表的名称
show tables;
//查询表结构
desc 表名;

在这里插入图片描述

  • 修改alter
//修改表名
alter table 准备删除的表名 rename to 新的表名;
//修改字符集
alter table 表名 character set 字符集;
//添加列
alter table 表名 add 列名 数据类型;
//修改列的名称 数据类型
alter table 表名 change 列名 新列名 新数据类型;
alter table 表名 modify 列名 新数据类型;
//删除列
alter table 表名 drop 列名;

在这里插入图片描述

  • 删除
//删除表
drop table 表名;
//判断表是否存在,若存在则删除
drop table if exits 表名;

DML操作数据

  • 添加数据
//添加数据,一一对应
INSERT INTO 表名 ( field1, field2,...fieldN )
                 VALUES
                 ( value1, value2,...valueN );
//如果表名后不定义列名,则默认给所有列添加值
INSERT INTO 表名 VALUES ( value1, value2,...valueN );           

在这里插入图片描述

  • 删除数据
//直接删除此表,然后在创建一个一样的表
TRUNCATE table 表名;
//删除表中所有数据,有所少条记录就会执行多少次删除记录,效率低
delete from 表名;
//删除表中满足条件的数据
delete from 表名 where 条件;
  • 修改数据
//修改表中此列的全部数据
UPDATE 表名 set 列名1=1,列名2=2,...列名n=值n;
//修改表中满足条件的数据
UPDATE 表名 set 列名1=1,列名2=2,...列名n=值n where 条件;

在这里插入图片描述

DQL基础查询

//查询所有数据
select * from 表名;
//查询表中某几列的数据
select 列名1,列明2,...列明n from 表名;
//去除重复的结果集
select distinct 列名 from 表名;


在这里插入图片描述

计算数据(四则运算),这里列举加法,
select 列名1,列名2,列名1+列名2 from 表名;--如果有NULL参与运算,则计算结果为NULL
使用ifnull()函数计算数据
select 列名1,列名2,ifnull(列名1,0)+ifnull(列名2,0) from 表名;--ifnull函数说明:如果值为null时,替换为0计算

在这里插入图片描述

起别名+as
select 列名1 as 别名1,列名2 as 别名2,...,列名N as 别名N from 表名;
省略as,用空格替代
select 列名1 别名1,列名2 别名2,...,列名N 别名N from 表名;

在这里插入图片描述

DQL条件查询(where)

运算符

等号:不同于其他语句,SQL语句使用一个等于号即可
不等号: <>!=
安全等于:<=>;= 的区别在于当两个操作码均为 NULL 时,其所得值为 1 而不为 NULL,而当一个操作码为 NULL 时,其所得值为 0而不为 NULLNULL:不能用运算符判断,可使用 isis not

在这里插入图片描述

某个范围: between...and...(闭区间)  或  in()orand&&

在这里插入图片描述
在这里插入图片描述

DQL模糊查询(like)

占位符: -单个任意字符
        %多个任意字符
//查询name中以s开头的数据
select * from student where name like 's%';

在这里插入图片描述

//查询name中有l的数据
select * from student where name like '%l%';

在这里插入图片描述

//查询name是三个字的人
select * from student where name like '___';

在这里插入图片描述

DQL排序查询(order by)

升序asc(默认):select * from 表名 order by 列名 asc;
降序descselect * from 表名 order by 列名 desc;
//将数据按英语成绩分别升序降序排序
select * from student order by English asc;
select * from student order by English desc;

在这里插入图片描述

先按照条件1排序,若条件1相等,再按照条件2排序
select * from 表名 order by 条件1,条件2;
//按照英语成绩升序排序,若英语成绩一样,则按照数学成绩升序排序
select * from student order by English asc,math asc;

在这里插入图片描述

DQL聚合函数

将一列数据看成一个整体,进行纵向的计算:count,max,min,sum,avg(聚合函数的计算排除null的值)

count:计算个数
		count(主键):选择不包含非空的列进行计算:主键
		count(*):只要这一行数据有一个不为零即可
		IFNULL()函数

在这里插入图片描述
在这里插入图片描述

DQL分组查询(group by)

where与having的区别
①where在分组之前限定,如果不满足条件,则不参与分组;having在分组之后限定,如果不满足结果,则不会被查询出来
②where后不可以跟聚合函数,having后可以跟聚合函数

SELECT 列名1, 函数名(列名2)
FROM 表名
WHERE 条件
GROUP BY 列名;

//按照年龄分组,查询每个年龄的平均分
select age,avg(English) from student group by age;
//按照年龄分组,查询每个年龄的平均分,且每组人数大于1人
select age,avg(English) from student group by age having count(id)>1;

在这里插入图片描述
在这里插入图片描述

DQL分页查询(limit)

开始的索引=(当前的页码-1* 每个页面显示的条数
//每页显示两条记录
select * from student limit 0,2;
select * from student limit 2,2;
select * from student limit 4,2;

在这里插入图片描述

约束

约束:对表中的数据进行限定,确定数据的正确性,有效性和完整性。
分类:主键约束primary key;非空约束not null;唯一约束unique;外键约束foreign key。

非空约束not null:值不能为null
唯一约束unique:可以有null值,但只能有一条记录为null
主键约束primary key:非空且唯一
外键约束foreign key
//创建表时添加约束
create table 表名(
	列名 数据类型 not nullunique--定义为非空或唯一
);
//创建表后添加约束
alter table 表名 modify 列名 数据类型 not nullunique;
//删除列的非空约束
alter table 表名 modify 列名 数据类型;
//删除列的唯一约束
alter table 表名 drop index 列名;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

吃_早餐

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

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

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

打赏作者

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

抵扣说明:

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

余额充值