MySQL的基本语句操作

本文介绍了数据库的基本概念,包括数据库服务器、数据库、数据表和数据,以及常见的关系型和非关系型数据库。详细讲解了MySQL的版本历史和操作,如创建、删除数据库和数据表,以及通过命令行进行数据的增删改查。还涉及到了数据库事务的使用,确保数据安全性。最后,文章阐述了数据查询的关键操作,如选择字段、排序和筛选条件。

1.什么是数据库

在21世纪的今天,数据对我们来说是十分重要的,有句话说的好,得数据者的天下,那么数据库是用来存储数据的,特别是像咱们作为后端人员的开发,数据对于咱们来讲相当重要。

大家都知道前端是用来显示页面的,比如京东网站,淘宝网站,百度。能看到的就是前端。

那么前端页面的内容是一成不变的吗?不是的。这些数据从哪来?就是后端给的。

后端的数据在哪?就是在数据库里面。数据库里面是存放数据,然后通过java代码将数据取出来,显示到前端页面上面。java只需要负责将数据取出来即可。

数据库软件:

关系型数据库:MySQL Oracle SQLServer Sqllite DB2

关系型数据库存数据的时候都是以表格的形式进行存储的

非关系型数据库:redis MemoryCache MongoDB 等做数据热处理的

非关系型数据库都是键值对的形式进行数据存储的

一般是都是关系型数据库和非关系型数据库结合使用

2.MySQL简单介绍

2008年的11月MySQLAB公司被Sun公司收购10亿美金,MySQL进入到了sun时代。

2009年的4月 Oracle以74亿美元收购了sun公司。

2018年的4Mysql8.0.11版本发布,据说这个版本执行效率是MySQL5.7.29这个版本2倍

但是现在的公司不敢用,是因为不稳定。一般公司做网站使用数据库的时候,求稳为主。

目前主流市场用的数据库的版本还是5.6、5.7

程序员一般都是使用最稳定的版本而不是最新的

3.关于数据库的概念

数据库的服务器:

就是安装好的mysql软件。要想用数据库,必须要一个软件。

数据库:

一个项目对应着一个数据库。

数据表:

一个数据库下面可以有很多表

数据:

一张数据表下面有很多个数据,就像下面的一个person表,可以看到和微软的excel表格十分相似的

ID

NAME

SEX

AGE

字段

1

张三

22

数据1

2

李四

21

数据2

3

亦凡

30

数据3

数据库服务器下面可以有多个数据库

一个数据库下面可以有多张表

一张表下面可以有多个字段和数据

这个就是咱们数据库的简单构成。

4.通过命令操作数据库

连接数据库服务器的命令
第一种连接方式


mysql -hlocalhost -uroot -p123456


mysql:告诉计算机,启动的是哪个软件,启动的是mysql这个软件。
-hlocalhost: -h  主机(host)   localhost 本电脑
-uroot:   -u user 用户     root 是咱们在安装mysql软件默认的用户的名字。
-p123456:  -p  password 密码   123456  是咱们的密码


第二种连接方式【都使用这种方式进行数据库的连接】


mysql -uroot -p
Enter password: ******
一种简写形式并且密码是一个密文的形式。把-hlocalhost省略了,是因为在本台电脑上面进行操作的。

展示数据库的服务器下面的所有的数据库,为什么要有这一步?万一创建的数据库的名字已经被用过了?那就会报错的。

所以先展示所有的数据库
结尾一定要带分号,表示的是命令的结束。
 show databases;


创建一个数据库,数据库叫  javacoffee

create database javacoffee;





会删除指定的数据库  javacoffee
 drop database javacoffee;

再次查询所有的数据库,发现java2109这个库已经被删除掉了

直接建表?是不对的。咱们要先选中数据库。有可能有个数据库,我得知道在哪个数据库下下面建表。选中数据库【不要忘了这一步】

在数据库javacoffee这个库下面建表。创建一个表叫person


创建一个表的写法
mysql> create table person1 (
   #字段名字(id)  数据类型(int类型)  默认11位
   -> id int,
   #字段名字(name) 数据类型(varchar类型) 可变长度的字符串   32位
   -> name varchar(32),
   #字段的名字(age) 数据类型(tinyint类型)默认是4位
   -> age int,
   #字段名字(sex) 数据类型(bollean(tinyint(1))  不限制长度
   ->sex boolean
   -> );

查看这个数据库下面的所有的表
 show tables;
查看表的详细信息
有字段的名字   字段的数据类型  

删除表 person
 drop table person;

顺便再扩展几个命令,不需要记,家人们可以自己敲敲看看!!!
查看数据库的创建过程
 show create database javacoffee;
查看数据表创建的过程

总结:连接数据库(mysql -uroot -p),显示所有数据库(show databases),创建数据库(create database javacoffee),选中数据库(use javacoffee),创建表(create table person(字段1 数据类型,字段2 数据儿类型 ,字段3 数据类型))比较重要

删除库 (drop database javacoffee),删除表(drop table person)

5.修改表(关键字alter)

修改是表的字段名字,字段的数据类型,添加一个字段,删除一个字段等

删除sex字段

alter table person drop sex;

见名知意 alter(修改) table(表) person(哪个表) dorp(删除) info(字段);

添加一个性别字段,使用的数据类型是tinyint吗,在末尾追加一个字段
alter(修改) table(表) person(哪个表) add(添加) gender(性别) tinyint(数据类型);

alter table person add gander tinyint;

默认的是插入到尾部.

 那么如何插入到指定的位置呢

插入首行

 

插入其他的需要用到after关键字,假如将一个float类型的字段weight加入到name之后

alter table person add weight float(3,2) after name;

 

 修改指定的字段(name) 数据类型本来是float(3,2),修改成double(5,2)。

alter table person name modify double(5,2);

 修改指定的字段名字和数据类型

alter table person change gander sex boolean;

(boolean类型的数据在数据库中自动会转化为tinyint(1)的数据,意思就是只有0和1来表示真假)

float(8,2)  是一种数据类型  小数的数据类型。
(8,2):最大长度为8位,小数点是其中的2位,整数部分最大为6位数

字段所带的数据类型有哪些:    在创建表的时候,字段需要数据类型
    int ====>int(11)默认值
    boolean==>tinyint(1)默认值
    varchar(32)可变长的字符串
    char(32) 定长字符串
    tinyint   小的int的类型数据
    float   浮点
    double 
    decimal  精度更高的浮点数,一般用做银行业务

6.增加数据

首先查看表结构

接着通过 insert into 关键字进行数据的插入

 

通过 select * from person(表名)查看数据

 

 

 指定字段进行数据插入

可以看到修改后的表 weight和sex都为空,需要赋值

 insert into person (id,name,age) values(5,"小白",56);

 

 

6.修改数据【慎用!!!】

删除数据一定要带条件,将会删除指定的数据,假如没有带条件,则会将表中的所有内容都删除!!!所以一定要慎用!
语法格式: delete from 表名   条件

删除名字为小白的数据:

delete from person where name="小白";

 删除多个数据(删除id为2和4的)

delete from person where id in (2,4);

7.简单的事务的操作

事务是保证数据的安全性的。
当咱们在进行数据库的增,删,改操作的时候,发现出现了问题,可以回滚。就是说可以回到原来的状态,也就是撤回

银行转账,  宝强要转账给乃亮250,宝强这边要减钱,乃亮这边要加钱。修改
万一宝强这边出现了网络或者其他问题,没有转过去,乃亮这边不加钱。就需要事务回滚 rollback;

首先要把自动提交给关闭掉,默认值是1,默认的时候,是自动提交开启的状态。
只要设置一次,整个窗口就都关闭了自动提交。

这时候删除一个数据  张三,再打印一下表的信息,可以看到id为2的张三已经“删除”掉了

可是真的删除掉了吗?

咱们可以再打开一个控制台查询一下person表

 

 可以看到没有实际上没有删除,接着我们可以通过事务回滚,进行一下撤回操作

 可以看到张三又回来了,那么怎么给他删除呢

我们可以用commit

 

 可以看到新控制台中张三也被删除了,

所以我们可以简单的理解一下,事务回滚可以相当于一个分支,当你把自动提交关闭之后

假如删除了一个数据,发现不合适,可以通过回滚来撤回,反之可以通过commit来执行确定删除的操作

8.数据的查询【重点!!!】

1.展示所有的数据,开发中一般不用效率低
select * from person;


2.按照字段进行查询 select 字段1,字段2,字段3  from   表名
 select id,name,age from person;


3.按照字段进行查询,还可以对字段进行起别名的操作。以后用的很多
#语法格式:  select 字段1 as 字段1的别名, 字段2 as 字段2的别名... from 表名

select id as "编号",name as "姓名",age as "年龄" from person;

 

可以对数据进行约束查询 
>   <   >=    <=  !=   =  运算符
语法格式:select  * from 表名 where 字段 运算符  值
#找出年龄大于20岁的人的名字

 

使用逻辑运算符
and  or
语法格式:select * from where 条件1 and 条件2   两个条件都必须符合才能查询出来
和java里面的逻辑与   &&
语法格式:select * from where 条件1 or 条件2   两个条件都只要符合一个就能查询出来
和java里面的逻辑或   ||
找出来数据,年龄大于20岁的,并且体重小于140的人

 

找出来年龄大于20的或者 体重大于120.00的

 

排序  order by
语法格式:select * from 表名  order by 字段  asc;升序  默认的

在最后可以加上  asc(升序)  或者是  desc(降序)

语法格式:select * from 表名  order by 字段  asc;升序


语法格式:select * from 表名  order by 字段  desc;降序




先按照年龄进行降序排序,如果年龄相等的话,再按照体重进行升序排序


找出年龄大于30岁的,并且按照体重进行降序进行排列(注意先查找再排序)

max和min分别是找出最大和最小的数

 

 找出体重最大的人的信息,先按照体重降序排,再用limit取第一行数据就是体重最大的(反之升序的话就取得是最小的咯)

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

宇智波波奶茶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值