MySQL基础以及MySQL基础的增删改查

  • 前言
  • 一、数据库的操作
  • 1.1显示数据库
  • 1.2创建数据库
  • 1.3使用数据库
  • 1.4删除数据库
  • 二、常用的数据类型
  • 2.1数值类型
  • 2.2字符串类型
  • 2.3日期类型
  • 三、表的操作
  • 3.1查看表结构
  • 3.2创建表
  • 3.3显示表
  • 3.4删除表
  • 四、MySQL表的增删改查
  • 4.1增(插入)
  • 4.2查询
  • 4.2.1全列查询
  • 4.2.2指定列查询
  • 4.2.3包含表达式的查询
  • 4.2.4别名查询
  • 4.2.5去重
  • 4.2.6排序
  • 4.2.7条件查询
  • 4.2.8分页查询
  • 4.3修改
  • 4.4删除



前言

数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。由很多表组成,表以行和列组织数据。很多行和列组成了表,很多表又组成了数据库。
本文采用的数据库版本为MySQL 5.7 ,文章中如有错误,请指正,共同进步。

一、数据库的操作

注意在客户端每次输入完语句一定要加;

1.1显示数据库

show databases;

1.2创建数据库

--格式  create database 【数据库名称】;
create database test;

注意:不能创建同名的数据库

1.3使用数据库

--格式 use【数据库名】
use test;

注意:每次要操作数据库中的表时,必须要先执行 use【数据库名】语句

1.4删除数据库

--格式 drop database 【数据库名】;
drop database test;

数据库删除后里面的表和数据全被删除了。

二、常用的数据类型

2.1数值类型

整数和小数类型

数据类型 (整数)

大小及说明

bit[(M)]

M指定位数,默认为1

tinyint

1字节

smallint

2字节

int

4字节

bigint

8字节

数据类型(小数)

大小及说明

float(M,D)

4字节(单精度M是有效数字位数,D是小数位数,会发生精度丢失)

double(M,D)

8字节

decimal(M,D)

M/D最大值+2(使用最多,M是有效数字位数,D是小数位数)较准确,但是计算慢

numeric(M,D)

M/D最大值+2

2.2字符串类型

数据类型

大小及说明

varchar(size)

0~65535字节 (size是根据需求去定义了,字符串长一点就定义大一点,短一点就定义小一点)

text

0~65535字节

mediumtext

0~16777215字节

blob

0~65535字节

2.3日期类型

数据类型

大小及说明

datatime

8字节 范围使从1000到9999年,不会进行时区的检索及转换

timestamp(时间戳)

4字节 范围使从1970到2038年,自动检索当前时区并进行转换

时间戳也是当前计算机存储和表示时间的基本方式,因为其空间小,并且方便计算

三、表的操作

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

3.1查看表结构

--格式  desc 【表名】
desc test;

注意:没有table 关键字

3.2创建表

--格式 create table 【表名】;
create table test;

3.3显示表

show tables;

注意:要加s

3.4删除表

--格式 drop table 【表名】;
drop table test;

例子:定义一个图书表内有 图书名称、作者名字、价格、种类。

create database test; --创建一个数据库
use test; --选中test数据库 进行操作
create table books(bookname varchar(64),bookauthor varchar(64),bookprice decimal(4,2),category varchar(32));
--创建图书名称(字符串类型)、作者名字(字符串类型)、价格(4位有效数字,小数点后有两位)、种类(字符串类型)。

3天入门mysql mysql新手入门_数据库


一个很简单的图书表,还没进行增删改查。

四、MySQL表的增删改查

4.1增(插入)

--格式
--insert [into] 【表名】 valuse;    全列插入 [into] 可省略
--insert [into] (字段名字)  valuse; 指定列(字段名字)插入 [into] 可省略

1.单行数据全列插入

insert into books values ('平凡的世界','路遥',79.99,'长篇小说');

2.多行数据全列插入

insert into books values ('骆驼祥子','老舍',68.99,'长篇小说'),
('许三观卖血记','余华',49.99,'长篇小说');

3.单行数据指定列插入

insert into books (bookname,bookauthor,bookprice)values ('白鹿原','陈忠实',72.80);
insert into books (bookname,bookprice,category)values ('计算机组成原理',72.80,'计算机类');

3天入门mysql mysql新手入门_表名_02


注意插入指定列元素时一定要和指定列的类型相匹配。

4.2查询

4.2.1全列查询

--格式 select * from 【表名】;
select * from books;

3天入门mysql mysql新手入门_数据库_03

4.2.2指定列查询

--格式 select (指定字段) from 【表名】;
select bookname from books;

指定书名:

3天入门mysql mysql新手入门_数据库_04

4.2.3包含表达式的查询

-- 格式  selcet (指定字段)+表达式 from 【表名】;
select bookname,bookprice+10 from books;

在每个书的价格上都加上10元

3天入门mysql mysql新手入门_数据库_05

4.2.4别名查询

--格式 select (字段) [as] 别名 from 【表名】;

新增折扣属性

3天入门mysql mysql新手入门_数据库_06

select bookprice*(discount/100) as declineprice from books; --优惠了多钱

3天入门mysql mysql新手入门_字段_07

4.2.5去重

使用distinct 关键字对某列数据去重
去重优惠幅度为10 的

--格式 select distinct (字段名称) from 【表名】

3天入门mysql mysql新手入门_表名_08

4.2.6排序

使用关键字 order by
asc 为升序 (从小到大)
desc 为降序 (从大到小)
默认为ASC

--格式 :  select (要显示的字段名称) from 【表名】 order by  (要排序的字段) (asc)//可省略asc
-- select (要显示的字段名称) from 【表名】 order by  (要排序的字段) desc //降序

3天入门mysql mysql新手入门_3天入门mysql_09

4.2.7条件查询

比较运算符:

运算符

说明

>,>=,<,<=

比较大小

=

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

<=>

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

!=,<>

不等于

between a and b

范围匹配【a,b】闭区间,如果在范围内 返回TRUE (1)

in(option)

如果是option 中的任意夜歌,返回TRUE(1)

is NULL

是NULL

is not NULL

不是NULL

LIKE

模糊匹配,%表示任意多个(包括0个字符,)_表示任意一个字符

逻辑运算符:

运算符

说明

AND

“与” 。条件必须全部满足才返回TRUE(1)

OR

‘’或‘ 。 满足任意一个条件即可,返回TRUE(1)

NOT

“非” 。 条件为TRUE的话,结果就是FALSE(0)

注意:1.where 条件可以使用表达式,但是不能使用别名
2.AND的优先级要高于OR

演示部分条件查询:

--格式 select (字段结果集) from 【表名】 where [条件]

1.查询价格高于75的书籍名称:

select bookname from books where bookprice>75;

3天入门mysql mysql新手入门_数据库_10


2.书名第一字为“平“的书籍名

select bookname from books where bookname like '平%';

3天入门mysql mysql新手入门_字段_11


3.价格在68到75之间的书籍名

select bookname from books where bookprice between 68 and 75;

3天入门mysql mysql新手入门_3天入门mysql_12

4.2.8分页查询

使用limit关键字 在实际开发中对这些操作加以限制
1.直接使用limit

--格式 select ... from 【表名】 [where...][order by] limit n;
--[]内可省略  意思是从0开始,筛选n条结果

默认从0开始,筛选3行结果

3天入门mysql mysql新手入门_字段_13

2.配合offset使用

--格式 select * from 【表名】 limit s offset n; 
--从n开始 筛选 s条数据
select * from books limit 2 offset 0;

从0位置开始 筛选2条

3天入门mysql mysql新手入门_表名_14

4.3修改

--格式 update 【表名】 set [要修改的字段] = [修改条件] [where]....

1.将所有书的价格改为99.99

update books set bookprice=99.99;

3天入门mysql mysql新手入门_字段_15


2.将白鹿原类别改为 长篇小说

update books set category='长篇小说' where bookname='白鹿原';

3天入门mysql mysql新手入门_字段_16


3.将计算机组成原理的作者变为’美~卓拉’;

update books set bookauthor='美~卓拉' where category='计算机类';

3天入门mysql mysql新手入门_字段_17

4.4删除

--格式 delete from 【表名】 [where条件]

1.删除计算机类的书籍

delete from books where category='计算机类';

3天入门mysql mysql新手入门_数据库_18


2.删除优惠幅度为10 的书籍

delete from books where discount=10;

3天入门mysql mysql新手入门_数据库_19


注意:如果误操作 忘记写where条件 ,就会将整张表内数据删除,但是表还在。

3天入门mysql mysql新手入门_数据库_20