Mysql 数据库基础整理

Mysql 是一个客户端服务器结构的程序,同时服务器是数据库的本体(数据是在服务器这里组织和存储的)。

1.数据库介绍

1.1什么是数据库?

数据库是一类软件,用来保存和管理数据。数据库可以提供远程服务,即通过远程连接来使用数据库,因此也成为数据库服务器。

1.2数据库分类?

关系型数据库:采用了关系模型来组织的数据库。关系模型指的是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织.(Oracle、MySQL、SQL Server)

非关系型数据库:不规定基于SQL实现

2.客户端连接数据库

Mysql默认只允许在服务器本机,使用root用户登录。

“”win+r"输入cmd,在弹出的窗口中输入

mysql -uroot -p

 

 输入密码,就进入了数据库中

 3.MySQL数据库基础

3.1数据库操作

3.1.1显示当前数据库

show databases;

 系统默认会显示以上几个数据库,不要瞎弄这几个!!

3.1.2创建数据库

create database J818;

 输入sql后,继续查询这时候就建立了一个名字为"J818"的数据库。

当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8。

3.1.3如果系统没有名字为test的数据库,则创建一个,如果有,就不创建

create database test if not exists test;

3.1.4如果没有名为test的数据库,则创建一个使用utf8mb4字符集的test数据库,如果有,则不创建

 Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89'   出现这个错误就是因为在建立数据库的时候没有指定字符集,导致数据库识别不了汉字,所以在开创建数据库时要加上character set utf8mb4;

create database if not exits test character set utf8mb4;

3.1.5使用数据库

use j818;

 3.1.6删除数据库

drop database [if exists] j818;

注:数据库删除后,内部看不到对应的数据库,里面的表和数据全部删除。

3.2常用的数据类型

int;

varchar(n);

double(M,N)--(M指长度,N代表小数位数)

decimal(比起double更精确)

datatime

3.3表的操作

操作数据库中的表时,需要先使用该数据库。

use j818;

3.3.1创建表

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

 

3.3.2查看表结构

desc 表名;

 3.3.3删除表

drop table student;

4.MySQL表的增删改查

CRUD

增加--Create

查询--Retrieve

更新--Update

删除--Delete

4.1新增-Create

4.1.1单行数据全列插入

insert into student values(1,'张三',18);

4.1.2多行数据指定列插入

insert into student(id,name)values(2,'李四'),(3,'王五');

4.1.3年月日时分秒的插入

首先建立一个homework表,先插入现在的时间,使用now()来完成,再插入一个其他的时间

时间类型:datetime

现在的时刻now()

create table homework(id int,createTime datetime);
insert into homework values(1,now());
insert into homework values(2,'2023-8-17 21:25:16');

 4.2查询--Retrieve

查询的结果相当于一个临时表,这个临时表也叫结果表。

4.2.1全列查询

通常情况下不建议使用全列查询。查询的列越多,意味着需要传输的数据量越大。

可能会影响到索引的使用。

select *from student;

4.2.2 指定列查询

select id,name from student;

4.2.3 查询字段为表达式

select id+10,name from student;

 查询“id+10”,数据库服务器硬盘的数据不发生改变,再次查id,结果仍然是+10之前的数据。

用户在客户端输入sql,通过请求发送给服务器,服务器解析并执行sql,把查询的结果从硬盘读取出来,通过网络响应还给客户端,客户端把这些数据以临时表的方式展示出来。

4.2.4别名

为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称。使用as

select name as name1 from student;

 4.2.5去重distinct

4.3 排序 Orderby

 

对于mysql来说,如果一个sql没有指定orderby,此时查询结果的顺序是不可预期的。

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

4.3.1asc升序(默认为asc)

4.3.2desc降序

4.3.3使用表达式及别名排序

查询同学及总分,由高到底

select name,chinese+english+math from exam_result order by chinese +english+math desc;
select name,chnese+math+english as total from exam_result order by total desc;

4.4条件查询where

where条件可以使用表达式,但不能使用别名。

针对数据库中的表,进行遍历,取出每一行的数据,把数据带入条件中,看条件是否符合,如果符合则保留,如果不符合则pass。

4.4.1比较运算符
=与<=>

=:等于,NULL不安全,例如null=null的结果是null;

<=>:等于,null安全,例如null<=>null的结果是TRUE(1)

4.4.2逻辑运算符

and的优先级高于or,在同时使用时,需要使用小括号包裹优先执行的部分。

4.5范围查询

(1)between and

前闭后闭区间,包含两侧

查询成绩在80到90分同学的同学及成绩。

select name,grade from exam_result where grade between 80and 90;
select name,grade from exam_result where grade >=80 and grade <=90;
(2)in

查询数学成绩是65和68的学生

select name,math  from exam_result where math in(65,68);
(3)模糊查询like

不要求元素完全相同,只要满足一定的规则就行。

like'%孙'查询孙结尾的

like'%孙%'查询包含孙的

(4)分页查询limit

4.3修改Update

将张三的年龄加十岁

update student set age = age +10 where name ='张三';

 4.4删除Delete

删除名字为李四同学的信息

delete from student where name ='李四';

以上是关于数据库的基础操作,关于数据库表的进阶增删改查将在后续的博客中更新,今天就到这啦~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

西西¥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值