快速认识什么是MySQL数据库

本文详细介绍了MySQL数据库的使用,包括创建、选择和操作数据库,创建表,数据类型,CRUD语句,统计函数,事务处理和索引。通过实例展示了如何创建数据库、表,修改表结构,插入、更新和删除数据,以及查询和统计功能。此外,还讨论了事务的隔离级别和特性以及不同类型的索引。
摘要由CSDN通过智能技术生成

1.什么是数据库

  • 所谓安装MySQL数据库,就是在主机安装一个数据库管理系统,这个管理系统可以管理多个表
  • 一个数据库中可以创建多个表,以保存数据信息
  • 数据库管理系统、数据库、表的关系如下图:

在这里插入图片描述

2.SQL语句的分类

  • DDL:数据定义语句
  • DML:数据操作语句
  • DQL:数据查询语句
  • DCL:数据控制语句

4.指令操作数据库

  • 指令运行可以选中命令行运行
  • 也可以顺序运行
  • 字符集在无指定操作下默认:utf-8
  • 校对规则在无指定操作下默认:utf8_general_ci(不区分大小写)
  • 校对规则utf8_bin区分大小写
  • 创建数据库指令:create database polarBear
  • 删除数据库指令:drop database polarBear
  • 查看当前数据库服务器中的所有数据库:show databases
  • 查看数据库定义信息:show create database polarbear
  • 查看表信息:select * from test
  • 在创建数据库时可以使用反引号规避关键字
  • 删除数据库:drop database polarbear
  • 查询字段:select * from polarbear where name = 想要查询的字段;

5.指令创建表

  • GUI工具内创建表

  • DOS窗口创建表,指令一样,只不过此时需要先连接到数据库

  • 我是比较喜欢用这个,没有为什么

6.MySQL常用数据类型

在这里插入图片描述

7.数据库的完整操作

7.1创建数据库,库名polar

create database polar;

7.1选择数据库

use polar;

7.3创建表,标名为brear

create table bear(
name varchar(32),
sex char(1),
age int,
hobby,varchar(32),
height,int)charest utf8 collate utf8_bin engine innodb;

7.4向表中添加内容

insert into bear values(
'王伟康',
'男',
22,
'爱好学习',
179);

7.5在列sex后增加一个属性emil列

alter table bear 
            add emil varchar(32) not null default ''
            after sex;

7.6修改emil列,使其长度为60

alter table bear
modify emil varchar(60) not null default '';

7.7删除列hobby

alter table bear
drop hobby;

7.8修改表名为polarbear

rename table bear to polarbear;

7.9修改表的字符集为utf8

alter table polarbear character set utf8;

7.10修改列名emil为Emil

  • 可以前后名称相同,进而修改列的默认值、字段最大长度
alter table polarbear
change emil Emil varchar(32) not null default '';
  • 当然优选此种方式最该字段长度

7.11查看列信息

desc polarbear;

8.数据库C(create)R(read)U(update)D(delete)语句

8.1Insert(增)

#创建数据库
create database insertdateBase;

#选择数据库
use insertDemo;

#创建表
create table insertDemo(
Name varchar(32),
Price double,
DP datetime)charset utf8 collate utf8_bin engine innodb;

#插入内容
insert into insertDemo values(
'蜜桃乌龙茶',
7.9,
'2021-9-4');

8.1.1insert相关细节

  • 插入数据应与字段数据类型长度相同
  • 数据长度在规定范围内
  • 数据插入类型顺序不能乱序
  • 字符和日期类型应包含在单引号内
  • 列可以插入空值,前提是允许空值
  • insert into values(),(),();可以一次添加多条数据
  • 字段名称的字节
#当给所有列添加数据时,字段名称(Name,Price, DP)可以省略
insert into insertDemo(Name, Price, DP)
values ('酸奶',3.0,'2021-9-1');

#当给部分列添加数据时,对应字段名称不能省略
insert into insertDemo(Name,Pricevalues('卫龙辣条', 2.8);
  • 默认值的使用,当不给某个字段值时,如果有默认值就会添加默认值,否则报错
#创建表时指定默认值
create table polarbear(
QQ varchar(32) not null default '898717454')charset utf8 collate utf8_bin engine innodb;

8.2Update(改)

  • 当数据被保护,需先执行此命令

set sql_safe_updates = 0;

  • 修改某字段所有行的数据
updeta polarbear 
set age = 18;
  • 修改具体位置的某一字段
update polarbear 
set age = 22
where name = '王伟康';
  • 增加具体位置的数值
update polarbear 
set age = 18
where name = '王伟康';

8.3Delete(删)

//直接删除表
drop table polaebear;
//删除指定位置
delete from polarbear
where name = '王伟康';
  • 删除表所有数据,表本身还在
delect from polarbear;

8.4Select(查)

  • 查找表全部记录
select * from Demo;
  • 查找表指定列信息
select name from Demo;
  • 统计
#统计成绩总分
select name as ‘姓名’ , (chinese+english+math) as ‘ 总分’ from Demo;
  • 查询指定行信息
select * from Demo where name = '王伟康';
  • 查询满足特定过滤条件的信息
select * from Demo 
where Chinese > 89;
select * from Demo 
where (chinese+english+math)> 288;
select * from Demo 
where math > 60 and english > 89;
#between是闭区间
select * from Demo
where between 80 and 99;
select * fron Demo 
where math > enhlish; 
#like是模糊查询
selest * from Demo 
where (chinese+english+math) > 289 and math > chinese and like '王%'; 
  • 排序后输出
#升序是默认的
select * from Demo 
order by math
#升序也可以写成这样,asck可以省略如上
select * from Demo 
order by math asc;
#降序输出
select * from Demo 
order by math desc;
#查询表结构中的desc
desc Demo;
# 查询所有姓王的
select * from Demo
 where name like '王%'
 order by math; 

9.统计函数

9.1count

  • 统计表有几条数据

select count(*) from user;

  • 统计满足条件的数据有几条

select count(*) from user
where id > 6;


select count(*) from user
where (id + age) > 24;

  • count(*)和count()的区别

count(*):统计满足条件的记录的行数
count():统计满足条件的列有多少个,但是会排出为空的情况
select count(id):统计id这一列非空的为多少条

9.2sum

  • 计算列的总和,仅对数值起作用,对别的不报错但没有实际意义

select sum(number) from user;
select sum(id) , sum(age) from user;

  • select sum(id) as id_total

sum(id) 默认是sum(id)
as id_total把sum(id)修改为id_total

  • 求某列平均值

方法一:select sum(number)/count(*) from user;结果为浮点数
方法二:select avg(number) from user;结果为整数

  • 求各科成绩总分最高分和最低分

select max(Math + English + Chinese),min(Math,English,Chinese) from student;

  • 单科成绩最高分

select max(Math),min(Math) from user;

10.分组统计

  • 按照部门分组查询

select avg(sal), max(sal), deptno
from amp group by deptno;

11.事务

11.1如果没有事务会出现

  • 脏:读取未提交事务的信息
  • 重复度:同一事务中一个查询语句重复执行,读到其他事务增删后的数据
  • 幻读:同一事务中一个查询语句重复执行,读到其他事务插入后的数据

11.2事务隔离级别

  • 读未提交:如果是一个写事务,不允许其他事务进行写操作,允许读
  • 读已提交:如果是一个读事务,允许其他事务读写,如果是写事务禁止其他事务访问
  • 可重复度:多次读取未结束前,其他事务不能介入
  • 序列化:事务不能并发执行,性能低,一般很少使用

11.3事务特性

  • 原子性:事务是最小的工作单元,事务中的操作要么都发生要么都失败
  • 一致性:数据库从一个一致性状态变换到另一个一致性状态
  • 隔离性:多个用户同时访问数据库。数据库为每个用户开启一个事务,他们互不干扰
  • 持久性:事务一旦提交成功,对数据库的修改时永久的

12.索引

12.1索引类型

  • 主键索引
  • 唯一索引
  • 普通索引
  • 全文索引:适用于MyISAM的存储引擎

12.2不适合作为索引的种类

  • 频繁被修改的字段
  • 唯一性差的字段,比如性别
  • 不作为查询条件的字段
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

白熊又宕机了

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

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

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

打赏作者

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

抵扣说明:

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

余额充值