MySQL数据库的使用

什么是MySQL数据库

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。

以上是百度概念,对于我们来说,MySQL的强大之处在于他是开源的。

在MySQL中存储的是一个个数据库,数据库中存储的是一个个表,表中存储的称为字段,我们所存储的最近本的数据被存储在表中,称为数据。对应的类别顺应一个个字段,例如表格的抬头和列中的数据。因此,在MySQL中也对用着有着四层自上及下的操作关键字。

MySQL数据库的操作基础

1.操作数据库(database)

# 查看所有的数据库
show databases;
# 选择一个数据库
use 数据库名;
# 查看当前所在的数据库
select database();
# 创建数据库
create database 数据库名;
# 删除数据库
drop database 数据库名;

2.操作表(table)

在我们对表操作之前,需要先进入数据库,然后所有的表操作都是在这个数据库内部发生的

# 查看表
show tables;
# 创建表
create table 表名(
field 数据类型 [约束],
field...
);
# 例如 创建部门表
create table t_depart(
dno int,
dname varchar(255),
loc varchar(255)
);
# 查看表结构
desc 表名;
# 删除表
drop table 表名;
# 修改表名
rename table 旧表名 to 新表名;

3.操作表字段

# 添加字段
alter table 表名 add field 数据类型 [约束];
alter table depart add departphone varchar(11);
# 修改字段数据类型
alter table 表名 modify field 数据类型 [约束];
alter table depart modify departphone char(11);
# 修改字段名
alter table 表名 change 老字段名 新字段名 数据类型;
alter table depart change departphone phone char(11);
# 删除指定字段
alter table drop [column] field;
alter table 表名 drop phone;

4.操作数据

》》》》四个大字,增删改查!《《《《

4.1添加数据

  • 语法一: insert into 表名 values(值,…); 值的顺序与类型要和创建表时给定的字段顺序及类型保持一致。

  • 语法二: insert into 表名(filed,…) values(值,…); 值的顺序与类型要和前面指定的字段的顺序及类型保持一致。

  • 复数添加:以上两种语法点差别只在于存储数据时和字段的对应关系。如果想要一次存储多个数据,只需要在()后面继续添加(值,…)即可

4.2修改数据

修改数据时需要加入条件,否则修改的是字段对应的整列的值。

  • update 表名 set 字段=数据,字段=数据,… where 条件;

4.3删除数据

在删除数据时要注意,如果没有指定条件的话,会将表中的数据清空

  • 删除:delete from 表名 where 条件
  • 清空:truncate table 表名;

4.4 查询数据

  • 通配符:select * from 表名;

  • 指定字段:select 字段,…,… from 表名;

    注意 :* 代表通配,需要先去表中查看表都有哪些字段,然后在匹配对应的字段信息。直接使用字段名,则是直接去表中匹配对应的字段。所以*会影响性能,开发要求不能使用通配符。

5.MySQL关键字

5.1排序

关键词:order by / desc(降序) asc(升序默认的)

select * from 表名 order by 字段 asc,字段 desc;

排序可以根据一个或者多个字段进行,优先级根据输入顺序呈现。

5.2运算符

在这里插入图片描述

5.3连接符

在这里插入图片描述

  • 非空查询(is null):
    delete from 表名 where 字段 is null;

5.4 in/not in

需求:查询指定部门的员工信息
select * from 表名 where 字段 in(字段对应的值);
not in相同。

5.5 聚合函数

在这里插入图片描述行求和(如果列的值存在null,结果也是null,此时可以使用ifnull()进行运算时默认值的设置)

select 字段1 + 字段2 from 表名;
# ifnull(arg0,arg1) arg0代表可能为null的列,arg1代表如果为空要进行代替的值
select 字段1 + ifnull(字段2,0) from 表名;

求总行数(count())

# 需求:求总行数 *代表以行数最多的结果为导向
select count(*) from 表名;
# count也可以指定列,如果列中有null值,则不计入总数
select count(字段) from 表名;

此处不推荐使用* ,理由同上述。

5.6 分组(group by)

select 字段,count(字段)from 表名 group by 字段having count(字段)条件;

having和where有什么区别?

1.where是直接跟在表的后面的条件,having是跟在group by后面的条件

2.having的使用需要结合group by,group by在进行分组的时候是很耗性能的

5.7 别名

表名 as 自取名字 ;
可以简化as不写用空格隔开
表名 自取;
这里自取名字只能用于此次调用,不会改变原有字段的内容。

5.8 分页(limit)

select * from 表名 limit 起始下标,每页显示多少;
# 下标从0开始

6.约束

约束就是给字段添加对应的规则,用户在进行数据的操作时必须要符合对应的规则,才能进行操作,可以有效的保证数据的安全性
在这里插入图片描述

  • 建议每张表都要有一个主键,因为其他的字段中的数据可能存在重复的,就没有办法区分数据,所以主键的存在就是一个唯一标识

  • 一般用户(程序员)会给每张表都设置一个id字段,作为主键,该字段如果是数字类型,为了方便管理,可以让其自增长(auto_increment)
alter table 表名 modify 字段 int auto_increment;

建立主从(在从表中创立外键从属于主表)

alter table 表名 add constraint 约束名 foreign key(当前从表中约束的字段) references 主表表名(要约束的字段名);
  • 1.主表中作为外键使用的字段要求一定是非空且唯一的

  • 2.如果此时要删除主表中的数据,前提是该外键字段的值在从表中没有被使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值