快速复习MySQL基本知识

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

MySQL作为当下热门的关系型数据库操作系统,MySQL也是程序开发必备技术之一。其开源免费的条件,也为学习者提供了良好条件。本文主要介绍关于MySQL基本操作和操作细节,有MySQL操作四个板块、数据库设计、事务等。


一、MySQL操作四大板块

预备知识

Mysql语法
1.可单行或多行书写,以分号结尾
2.不区分大小写
3.注释:1) --注释内容 2) #注释内容
                  注意:--前必须有空格 

2.char 和 varchar的区别:
char在存储字符时,如果存储字符的长度小于char定义的最大长度,会自动用空格补齐到最大长度,因此char被成为定长字符。
varchar在存储字符时,会根据存入表中数据自动计算。varchar被称为变长字符。


1.DDL(操作数据库和表)

1create database 数据库名; #创建数据库
2show databases; #展示当前所有数据库
3use 数据库名; #使用数据库
4)drop database 数据库名; #删除数据库
5)show tables; #展示当前数据库的所有表
6desc 表名; 查询表结构
7create table 表名; #创建表
8drop table 表名; #删除表
9)drop table if exists 表名; #如果存在xx表,才删除它 
10) --修改表
11)alter table 表名 rename to 新表名; #设置表名
12)alter table 表名 add 字段名 字段类型; #添加新字段
13)alter table 表名 modify 字段名 字段类型; #修改字段类型
14)alter table 表名 change 字段名 新字段名 字段类型; #修改字段名和字段类型

2.DML(对表中数据进行增删改)

2.1添加数据

insert into 表名 字段名1,字段名2,... values(1,2, ...);

2.2删除数据

delete from 表名 [where 条件];

注意:如果不加条件,则删除所有。

2.3更新数据

update 表名 set 字段名1 =1,字段名2 =2, ... [where 条件];

注意:如果不加条件,则更新所有。

3.DQL(对表中数据进行查询)

1select * from 表名; #查询表中所有记录
#注意最好不使用 * ,使用字段名来查询
2)select 字段名1,字段名2 from 表名; #查询指定字段的记录
3)select distinct 字段名 from 表名; #查询指定字段时,去除重复记录

注:1.as 关键字可为字段名取别名,可省略
2. 查询中不等于也可用<>
3.in() 多选一查询(两个以上用)


3.1排序查询

 select 字段名 from 表名 order by Asc/Desc;

Asc:表示查询到的数据以升序方式展示,排序查询默认为升序。
Desc:表示查询到的数据以降序方式展示。
注:如果有多个排序条件,当前字段值一样,会按第二条件排序。


聚合函数:聚合函数运算,null不能参与

聚合函数功能
count()统计数量,查询时不能为null
max()最大数
min()最小数
sum()求和
avg()求平均

3.2分组查询

select 字段名 from 表名 group by 字段名;

注意:分组之后,查询字段为聚合函数和分组字段,其他字段无意义。

补充:where 与 having的区别
1)使用时机不同,where在分组之前,having在分组之后
2)判断条件不同,where不能对聚合函数判断,having可以

执行顺序:where --> 聚合函数 -->having


3.3分页查询

select 字段名 from 表名 limit 起始索引,查询条目数;

起始索引 = (当前页码 -1) * 显示条目数


4.DCL(对数据库进行权限控制)

4.1约束

约束:即为加入表中的数据进行限制;约束的存在保证了数据库中数据的正确性、完整性和有效性。

primary key 主键约束
not null 非空约束
unique 唯一约束
default 默认约束
auto_increment 自增


外键约束:用来让两个表之间的数据建立连接,保证数据的一致性。

constraint 外键名 foreign key (字段名) reference 主表名(字段名)
alter table 表名 drop foreign key 外键名; #删除外键
alter table 表名 add constraint 外键名 foreign key (字段名) reference 主表名(字段名); #添加外键

二、数据库设计

  • 数据库设计概念:根据业务需求运行DBMS,设计构造成最优模型,建立数据库中的表结构以及表与表之间的关联关系的过程。
  • 数据库设计步骤:1.需求分析 2.逻辑分析 3.物理分析 4.维护设计

1.数据表之间的关系

1)一对多
实现方式:需通过外键使两张表建立连接。(字段多的表设外键)
2)多对多
实现方式:需建立中间表,中间表至少包含两个外键,分别关联两方主键。
3)一对一
实现方式:在任意一方加入外键,关联另一方主键,并且设外键为唯一。

注意:一对一,实际应用场景是将表拆分。例如用户信息表有很多,把用户信息表拆分为用户基本信息表,和用户详细信息表,再做一对一关系。

2.连接查询

1)内连接:相当于 A B表交集的数据
2)左外连接:查A表中的所有数据和B表交集的部分数据
3)右外连接:查B表中的所有数据和A表交集的部分数据

内连接查询语法

1)select 字段列表 from1,表2,... where 条件; #隐式内连接
2)select 字段列表 from1 [inner] join2 on 条件; #显式内连接

外连接查询语法

3)select 字段列表 from1 left join 表名 on 条件; #左外连接
4)select 字段列表 from1 right join 表名 on 条件; #右外连接

三、事务

1.事务是一组操作数据库的命令。
2.事务操作时:这一组数据库操作命令要么全部成功,要么全部失败。

命令功能
begin;开启事务
rollback;回滚事务
commit;提交事务

3.事务四大特性:1)原子性 2)一致性 3)隔离性 4)持久性

总结

以上就是今天要讲的内容了,本文仅简单介绍MySQL的基本操作和一些需注意的地方,只能满足基本使用的需求。有更多需要深入了解的可以另查资料。


2022年8月14日更新
创建数据库db1并指定字符集utf8

create database db1 default charater set utf8 collate utf8_general_ci

创建数据库表hero并指定字符集utf8

create table hero(
   name(varchar(10))
)charater set utf8 collate utf8_general_ci

在hero表的最前面添加uid字段,在name后面添加price字段

alter table hero add uid int first
alter table hero add price int after name
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值