前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql基础入门知识点总结笔记

Mysql基础入门知识点总结笔记

作者头像
网络安全自修室
发布2021-11-25 15:06:21
3550
发布2021-11-25 15:06:21
举报

1. mysql数据库基础操作命令

数据库名:testdb 表名:new123

1.1 数据库相关操作

1.远程连接数据库

mysql -h 127.0.0.1 -u root -p 123

2.查看mysql中有几个数据库

show databases;

3.进入某个数据库

use dvwa;

4.查看当前使用的数据库

select database();

5.创建新的数据库

create database test;

6.删除数据库

drop database test

1.2 表相关操作

1.创建表

primary key --主键 not null --不为空 default --默认值 auto_increment----自增

create table relationship (id int(4) primary key,name char(10)

not null,sex char(2)); 创建完成后可以用show tables;查看

2.删除表

drop table relationship;

3.修改表名

alter table relationship rename new123;

4.修改表结构(增添\删除\更改字段)

  • 增加: alter table new123 add address char(10) not null;增加address字段
  • 删除: alter table new123 drop address;#删除address字段
  • 更改: alter table new123 change age age int(4) not null;#更改age字段的属性 alter table new123 change id id int(4) auto_increment not null;#添加自动增长

只需要在更改的时候写上需要更改的属性,已经有的属性不需要写上。

更改前:

更改后:

5.查看表的属性。

desc new123;

6.查看字段名与注释

代码语言:javascript
复制
select  column_name, column_comment from information_schema.columns where table_schema ='testdb'  and table_name = 'new123' ;

1.3 数据相关操作

1.插入
代码语言:javascript
复制
#插入一条数据
insert into new123 (name,sex,address,age) values('tom','man','beijing',20);
insert into new123 (name,sex,address,age) values('lucy','woman','shanghai',19);
#插入多条数据
insert into new123 (name,sex,address,age) values ('cat','woman','hebei',24),('cody','man','sichuan',22);

有auto_increment属性的字段不需要写在insert中。

2.更改

#将new123表中的name=tom的行中的sex属性改为man。update new123 set sex='man' where name='tom';

3.查询

运算符:算数运算符+ - * / 比较运算符>、=、<、!=、>=、<= 逻辑运算符: and or not

报错查询确定字段数,表有几个字段,union select 后面就要有几个数字,当数字的数量与字段数一致的时候,此次查询就不会报错,否则就会报错,如new123表有5个字段,因此我在sql语句中跟了1-5,共五个数字,这时候查询成功了没有报错。

select * from new123 where id = 1 and false union select 1,2,3,4,5;

3.1其他特殊用法

limit

代码语言:javascript
复制
select*from new123 limit 0,2;

上述sql命令的意思是,查询new123表的所有数据,从第0行开始显示,一共显示2行。

like

代码语言:javascript
复制
select*from new123 where age like '2%';

上述语句的意思是查询new123表的所有数据,并输出所有年龄中含有2的值。一个百分号可以代表不限数量的任意字符。

count

代码语言:javascript
复制
select count(*) from new123;

上述语句的意思是,查询new123表内的所有数据,并显示查询出的数据条数。

Sum

代码语言:javascript
复制
select*from new123 where age = 22 and false union select (select sum(age) from new123),null,null,null,null;

求new123表中age的这一个字段所有值的和。

max/min

代码语言:javascript
复制
select*from new123 where age = 22 and false union select (select max(age) from new123),null,null,null,null;

求new123表中age的这一个字段最大值,将max改为min就为求最小值。

avg

代码语言:javascript
复制
select*from new123 where age = 22 and false union select (select avg(age) from new123),null,null,null,null;

求平均值

distinct

代码语言:javascript
复制
select distinct sex from new123;

去重复 order by(升序排序)/ Order by....desc(降序排序)`

代码语言:javascript
复制
select*from new123 where age = 22 and false union select * from new123 order by 5;

可以通过order by 确认字段数,order by后面的数字就是代表的是根据第几个字段排序,如果数字所指的字段存在,则查询成功,不存在则查询失败。

4.删除

清空表内数据

代码语言:javascript
复制
truncate new123;
delete from new123;

删除指定条件的数据

代码语言:javascript
复制
delete from new123 where name='cat';

其他可参考mysql数据库命令这篇文章。

2. 其他

当删除了某一个数据的时候,主键例如id变得不连续了,这里提供一个解决方案:

添加一个字段并将字段挪到指定字段的后面或者放到第一个,语法如下:ALTER TABLE table_name ADD [COLUMN] col_name column_definition [ FIRST | AFTER col_name]

代码语言:javascript
复制
alter table new123 drop id;
alter table new123 add id int(4) primary key auto_increment first;
desc new123;
挪动已有字段的位置必须知道此字段的所有属性,因为这个行为类似于删除已有字段然后再新位置再创建一个字段,如果不能获取到被挪动字段的所有属性值,可能会导致数据出错,具体语法如下:
代码语言:javascript
复制
alter table new123 modify id int(4) primary key auto_increment first;

MySQL中的注释符号有三种,第二个–后面必须加上空格

#… – … /…/

参考资料

[0]参考文章:https://blog.csdn.net/qq_41874930/article/details/112259822

[19]mysql数据库命令:https://www.jianshu.com/p/8c7261bfaa94

[20]mysql修改字段的排列位置:https://blog.csdn.net/nangeali/article/details/73015099

[21]给MySQL表增加指定位置的列:https://blog.csdn.net/seven_3306/article/details/39051493

[22]Bypass disabled_functions一些思路总结:https://xz.aliyun.com/t/4623

[23]Web-Security-Learning:https://chybeta.github.io/2017/08/19/Web-Security-Learning/

[24]mysql数据库命令:https://www.jianshu.com/p/8c7261bfaa94

[25]mysql注入可报错时爆表名、字段名、库名:http://www.wupco.cn/?p=4117

[26]详解SQL盲注测试高级技巧:https://www.freebuf.com/articles/web/30841.html

[27]MySQL False注入及技巧总结:https://www.anquanke.com/post/id/86021

[28]Mysql注入攻击与防御:https://www.anquanke.com/post/id/85936

[29]sql注入总结:https://www.cnblogs.com/JetpropelledSnake/p/9017218.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络安全自修室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. mysql数据库基础操作命令
  • 1.1 数据库相关操作
  • 1.远程连接数据库
  • 2.查看mysql中有几个数据库
  • 3.进入某个数据库
  • 4.查看当前使用的数据库
  • 5.创建新的数据库
  • 6.删除数据库
  • 1.2 表相关操作
  • 1.创建表
  • 2.删除表
  • 3.修改表名
  • 4.修改表结构(增添\删除\更改字段)
  • 5.查看表的属性。
  • 6.查看字段名与注释
  • 1.3 数据相关操作
    • 1.插入
      • 2.更改
        • 3.查询
          • 3.1其他特殊用法
            • 4.删除
            • 2. 其他
            • 参考资料
            相关产品与服务
            云数据库 SQL Server
            腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档