MySQL基础

MySQL基础

1.数据库的操作

数据库安装

1.1 显示当前数据库

show databases;

数据库中的命令没有大小写之分

1.3创建数据库

create database db_name ;

示例

#创建名为db_test的数据库
create database db_test;
#创建名为db_test2的数据库,如果有则不创建
create database if not exists db_test2;
#创建一个使用utf8mb4字符集的 db_test 数据库
create database if not exists db_test character set utf8mb4; 

1.4使用数据库

use db_name;

1.5删除数据库

drop database [if exists] db_name;	

这个操作是非常非常非常的危险操作之一,这条命令千万千万千万不可以随便的使用

2.表的操作

需要使用数据库中的表时,首先得先使用该数据库

use db_test;	

2.1查看表结构

desc;

image-20230418180805810

2.2 创建表

create	table table_name(
	field1 datatype,
	field2 datatype,
	field3 datatype,
);

示例

创建一个学生个人信息表

可使用comment增加字段说明

create table student(
	id int,
    name varchar(20) comment '姓名',
    age int,
    gender varchar(2) comment '性别',
    birthday timestamp,
);

2.3 删除表

示例

-- 删除student表
drop table student;
# 如果存在student表,则删除student表
drop table if exists student;

3.新增 Create

案例

-- 创建一张学生表

drop table if extists student;
create table student(
	id int,
    sn int comment '学号',
    name varchar(20) comment '姓名',
    mail varchar(20) comment '邮箱'
);

3.1 单行数据+全列插入

-- 插入两年数据,value_list数量和定义表的列的数量及顺序一致
insert into studene values(1,101,'张三',NULL);
insert into student values(2,102,'李四','123456');

3.2多行数据+指定列插入

-- 插入两条数据,value_list数量和定义表的列的数量及顺序一致
insert into student(id,sn,name)values
	(3,103,'王五'),
	(4,104,'孙悟空');

4.查询 Select

4.1全列查询

select * from student;

通常情况下不建议使用*进行全列查询

  1. 查询的越多,对网络、磁盘的开销非常大
  2. 对服务器资源的使用也非常大

4.2指定列查询

select id,sn,name from student;

4.3查询字段为表达式

-- 表达式不含字段
select id,name,10 from exam_result;
-- 表达式含一个字段
select id,name,english+10 from exam_result;
-- 表达式中含多个字段
select id,name,chinese+math+english from exam_result;

4.4别名

select id, name, chinese+math+english 总分 from exam_result;
select id, name, chinese+math+english as 总分 from exam_result;

4.5 去重

select distinct math from exam_result;

4.6 排序

-- 降序
select name,qq_mail from student order by desc;
-- 升序
select name,qq_mail from student order by asc;

注意:

NULL数据排序,视为比任何值都小,升序时出现在最上面,降序时出现在最下面

-- 使用表达式排序
select name,chinese+math+english from exam_result order by chinese+math+english order by desc;
-- 使用别名
select name,chinese+math+english as totle from exam_result order by totle order by desc;

MySQL中的NULL

  1. 不论什么值和他运算,返回值都是NULL
  2. NULL 始终会判定为FALSE - 0

4.7条件查询 WHERE

比较运算符

符号说明
>,>=,<,<=大于,大于等于,小于,小于等于
=等于,NULL不安全,NULL=NULL 结果还是NULL
<=>等于,NULL安全,NULL<=>NULL 结果是true(1);
!=,<>不等于
betweeen a1 and a2范围匹配[a1,a2],如果a1<=value<=a2,返回true(1)
in(option,…)如果是option中的任意一个,返回true(1)
is (not) null是(不是)NULL
like模糊匹配。%表示任意多个(包括0个)任意字符;_表示任意一个字符

逻辑运算符

运算符说明
and类似于编程中的&&多个条件同时为true,结果才为true
or`
not!条件为true,结果为false
  1. where条件可以使用表达式,但不能使用别名
  2. and的优先级高于or

4.8分页查询 LIMIT

-- 起始下标为0

-- 从0开始,查询n条结果
select ... from table_name [where..] [order by..] limit n;
-- 从s开始,查询n条结果
select ... from table_name [where..] [order by..] limit s,n;
-- 从s开始,查询n条结果
select ... from table_name [where..] [order by..] limit n offser s;

5.修改 Update

-- 将孙悟空同学的数学成绩变更为80分
update exam_result set math=80 where name='孙悟空';
-- 将曹孟德同学的数学成绩更改为90分,语文更改为93分
update exam_result set math=90,chinese=93 where name='曹孟德';
-- 将总成绩倒数前三的3位同学的数学成绩加上30分
update exam_result set math=math+30 order by chinese+math+english limit 3;
-- 将所有同学的语文成绩更新为原来的2倍
update exam_result set chinese=chinese*2;

6.删除 Delete

delete fromwhere 条件

chinese=93 where name=‘曹孟德’;
– 将总成绩倒数前三的3位同学的数学成绩加上30分
update exam_result set math=math+30 order by chinese+math+english limit 3;
– 将所有同学的语文成绩更新为原来的2倍
update exam_result set chinese=chinese*2;


## 6.删除 Delete

```sql
delete from 表 where 条件
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小 王

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

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

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

打赏作者

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

抵扣说明:

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

余额充值