数据库MYSQL基础(增删查改)

前言

欢迎各位大佬找我聊sao,一起探讨技术

这篇文章是为了后面的sql注入写的,因为我昨天想写,但是发现这样似乎有点不妥,于是就睡觉了

主要是我有女朋友,每天得聊聊天~~

这一篇文章主要讲解mysql数据库的增、删、改、查

目录

前言

正文

数据库术语

0x01.数据库的“增”(创建库,表,字段,数据)

1. 首先我们得创建一个库名叫做hello的库(库名随意)

3. 创建表

4.添加字段

5.插入数据

0x02 数据库的"修"

0x03 数据库的“删“

删除表

删除数据

0x04.数据库中的 "查"

1.基本查询    select*from 表;​

2.字段查询    select 字段1,字段2 from 表;​

3.条件查询    select*from 表 where 条件​

4.结果排序

5.结果分页

6.连接查询

7.联合查询

8.子查询


正文

数据库术语

  1.服务器:用于接收并处理其它程序发出的请求的程序(软件),或者是安装此类程序的设备(计算机)。

  2.客户端:向服务器发出请求的程序(软件),或者是安装此类程序的设备(计算机)。

  3.(table):类似 Excel,由行和列组成的二维表。

  4.字段:表的列(垂直方向)。

  5.记录:表的行(水平方向)。【注意】关系数据库必须以行为单位进行数据读写。

  6.单元格:行列交汇处。【注意】与 Excel 不同,一个单元格只能输入一个数据

这里的交叉处就是单元格

关系: 库 -> 表 -> 字段 -> 记录 ->  记录与字段的交界处就是单元格

进入命令行模式

点击这里命令行模式,进入这里进行操作增、删、改、查

因为我是在虚拟机里面,所以我不慌,用的依然是2016版本的,因为2016版本爆过有后门,如果你们是在宿主机里面

的话,你们就用最新版本的吧

输入数据库的账号密码进入

0x01.数据库的“增”(创建库,表,字段,数据)

也就是创建

1. 首先我们得创建一个库名叫做hello的库(库名随意)

create database hello charset=utf8;

2. 使用 show databases; 进行查看有几个数据库。然后使用use hello,来进入这个名字叫做hello的数据库

(mysql5.0以上和5.0以下的区别就是有个  information_schema)

show databases;
use hello;

3. 创建表

里面没有表,所以这里我创建个表

create table user(username varchar(255) not null PRIMARY KEY) charset utf8;

当然,这里还是建议PRIMARY KEY 大写吧。养成好习惯

上面那段命令就是  create table 表名(字段名 varchar(255) not null primary key) charset=utf8;

就这样,你可以看成固定格式吧

这个时候再show 一下表

发现了我们刚刚创建的一个叫user的表了

这时候可以使用  desc user;  可以查看表的内容格式

比如这个user表里面就一个字段,叫做username

4.添加字段

因为上面这个表里就一个username一个字段,有username就肯定有passowrd

所以用下面这个命令,创建一个password字段

alter table user add password varchar(255);

然后我们先用 select*from这个命令,查看数据

发现这个表没有数据

5.插入数据

insert into user values('用户名','密码')

这时候查询表就发现有数据了

这就是创建一个库,到一个字段的流程

0x02 数据库的"修"

修改也很简单,就是对数据的修改

看w3c的介绍

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

其实很简单,我演示一下,通过下面这条语句,就可以把young的用户名改成 root

update user set username='root' where username='young';

也可以用来修改密码,例如我们要把young的这个账户密码改成  1314520

update user set password='1314520' where username='root';

这个我就不演示了,跟修改账号一样

0x03 数据库的“删“

删除表

drop table 表名;

例如要删除一个user的表,就可以   drop table user;  这样就可以删除了吧

删除数据

例如我要删除刚刚创建的那个 数据,也就是root的那个账号和密码

因为正常情况下不可能只有一条数据,所以我们要指定一下

delete from 表名 where username='root';

0x04.数据库中的 "查"

这里我又创建了一个叫admin的账户,方便接下来的操作

1.基本查询
    select*from 表;

2.字段查询
    select 字段1,字段2 from 表;

也可以只查询一个账号

select username from user;

3.条件查询
    select*from 表 where 条件

4.结果排序


    select*from 表 order by 字段  asc;   从小到大排序,默认是asc,所以asc可以不用写

    select*from 表 order by 字段  desc;   从大到小排序

   order by password就是以 password这个字段排序,order by username 就是以用户名排序


 

5.结果分页


    select*from 表 limit n,m;
    n表示从第几行开始,m表示取第几条    

然而n是从0开始,学过编程的都知道,0也就是平时中的1

 

然后与正常的查询语句就可以看出了区别

多种查询可以合并,先后顺序

条件>排序 = 分组>分页(限制)

6.连接查询

这个东西理解拗口,可以点击这里,进行查看

7.联合查询

表的内容无重复:

select * from 表1 union select * from 表2;

表的内容有重复:

select * from 表1 union all select * from 表2;

注意事项

两次查询的列数必须一致

这里我在创建一个表,叫做world,方便演示

1)如果字段不一样的话,就无法执行

如果字段一样的话就可以执行

关于这个联合查询我会在后面的sql注入仔细讲解

8.子查询

由于想网上找一篇,结果我发现网上的不详细~~ 于是我还是写吧

子查询的介绍,就是有先执行括号里面的

例如  1+(2*2) = 5

分类

①标量子查询(返回一个结果)

select*from 表1 where 表1.id=(select id from 表2 where 条件 limit 0,1)

②列子查询(指子查询返回的结果集是n行一列)

select * froim 表1.id in (select id from 表2 where 条件)

③行子查询(指子查询返回的结果集是一行n列)

select*from 表1 where (列1,列2)=(select 列1,列2 from 表2 where 条件 limit 0,1)

④表子查询(指子查询返回的结果集是n行n列 的一个表数据)

select*from 表1 where (列1,列2) in (select 列1,列2 from 表2 where 条件)

一些子查询不怎么常用,所以简单理解操作一下就可以了~~~~

发布了10 篇原创文章 · 获赞 13 · 访问量 7063

猜你喜欢

转载自blog.csdn.net/m0_46304840/article/details/104366538