Web安全——数据库mysql学习

数据库mysql基础

  • Web安全分享
  • 一·、数据库的基本操作
    • 1、MYSQL登录与退出
    • 2、MYSQL数据库的一些解释
    • 3、MYSQL注释符有三种:
  • 二、数据库的一些基本操作
    • 1、数据库的增删改查(sql语句)
  • 三、table 表的操作
    • 1、查看表结构
    • 2、查看表的内容
    • 3、建立表
    • 4、约束条件
    • 5、修改表的操作
  • 四、数据的增删改查
    • 1、增
    • 2、删
    • 3、更新
    • 4、查
      • 1、in 查询
      • 2、and查询
      • 3、or查询
      • 4、聚合查询
      • 5、分组查询
      • 6、mysql的子查询
      • 7、联合查询

Web安全分享

1、Web安全——HTML基础
2、Web安全——DIV CSS基础
3、Web安全——JavaScript基础
4、Web安全——PHP基础
5、Web安全——JavaScript基础(加入案例)
6、靶场搭建——搭建pikachu靶场

一·、数据库的基本操作

1、MYSQL登录与退出

D:\phpStudy\MySQL\bin
登陆: 输入 mysql -uroot -p -P3306 -h127.0.0.1
退出的三种方法

mysql > exit;
mysql > quit;
mysql > \q;

语法使用:
数据库的登陆:

Microsoft Windows [版本 10.0.22621.4]
(c) Microsoft Corporation。保留所有权利。C:\Users\lenovo>mysql -uroot -p123456 -h127.0.0.1
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.26 MySQL Community Server (GPL)Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>

这里版本我们可以看到为mysql5.7.26
下面为帮助指令:

mysql> helpFor information about MySQL products and services, visit:http://www.mysql.com/
For developer information, including the MySQL Reference Manual, visit:http://dev.mysql.com/
To buy MySQL Enterprise support, training, or other products, visit:https://shop.mysql.com/List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
?         (\?) Synonym for `help'.
clear     (\c) Clear the current input statement.
connect   (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.
ego       (\G) Send command to mysql server, display result vertically.
exit      (\q) Exit mysql. Same as quit.
go        (\g) Send command to mysql server.
help      (\h) Display this help.
notee     (\t) Don't write into outfile.
print     (\p) Print current command.
prompt    (\R) Change your mysql prompt.
quit      (\q) Quit mysql.
rehash    (\#) Rebuild completion hash.
source    (\.) Execute an SQL script file. Takes a file name as an argument.
status    (\s) Get status information from the server.
tee       (\T) Set outfile [to_outfile]. Append everything into given outfile.
use       (\u) Use another database. Takes database name as argument.
charset   (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings  (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
resetconnection(\x) Clean session context.For server side help, type 'help contents'mysql>

以及某一个命令在mysql下如何使用查询:

mysql> help use
Name: 'USE'
Description:
Syntax:
USE db_nameThe USE db_name statement tells MySQL to use the db_name database as
the default (current) database for subsequent statements. The database
remains the default until the end of the session or another USE
statement is issued:USE db1;
SELECT COUNT(*) FROM mytable;   # selects from db1.mytable
USE db2;
SELECT COUNT(*) FROM mytable;   # selects from db2.mytableThe database name must be specified on a single line. Newlines in
database names are not supported.URL: http://dev.mysql.com/doc/refman/5.7/en/use.htmlmysql>

接下来为三种不同的退出方式:

mysql> exit;
ByeC:\Users\lenovo>
mysql> quit;
ByeC:\Users\lenovo>
mysql> \q;
ByeC:\Users\lenovo>

2、MYSQL数据库的一些解释

注意: 数据库就相当于文件夹,表就相当于文件
在这里插入图片描述
我们可以看见这里面即为我们创建并使用的数据库,同时打开之后都为很多的表单。

3、MYSQL注释符有三种:

1、#...
2、"--  ..."
3、/*...*/

二、数据库的一些基本操作

1、数据库的增删改查(sql语句)

这里db*为数据库名称,可随意:

  • 增: create database db1;
  • 删: drop database db1;
  • 改: alter database db1 charset utf8
  • 查: show databases;#查看所有的数据库

实际操作:
创建数据库:

mysql> create database moondata;
Query OK, 1 row affected (0.00 sec)

查看数据库:

ysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| moondata           |
| mydata             |
| mysql              |
| performance_schema |
| pikachu            |
| sys                |
+--------------------+
7 rows in set (0.00 sec)mysql> show create database moondata;
+----------+-------------------------------------------------------------------------------------------+
| Database | Create Database                                                                           |
+----------+-------------------------------------------------------------------------------------------+
| moondata | CREATE DATABASE `moondata` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */ |
+----------+-------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

修改数据库:

mysql> alter database moondata charset utf8;
Query OK, 1 row affected (0.00 sec)mysql>

删除数据库:

mysql> show  databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| moondata           |
| mydata             |
| mysql              |
| performance_schema |
| pikachu            |
| sys                |
+--------------------+
7 rows in set (0.00 sec)mysql> drop database moondata;
Query OK, 0 rows affected (0.02 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydata             |
| mysql              |
| performance_schema |
| pikachu            |
| sys                |
+--------------------+
6 rows in set (0.00 sec)mysql>

其他命令:
查看指定的数据库 show create database db1;

mysql> show create database moondata;
+----------+-------------------------------------------------------------------------------------------+
| Database | Create Database                                                                           |
+----------+-------------------------------------------------------------------------------------------+
| moondata | CREATE DATABASE `moondata` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */ |
+----------+-------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

设置默认的utf8,在配置文件中:写上
character_set_server = utf8
use db2
select database() #查看你当前在哪个文件夹

重命名数据库 RENAME database olddbname TO newdbname

show status; 显示一些系统特定资源的信息,例如,正在运行的线程数量。

desc tabl_name; 显示表结构,字段类型,主键,是否为空等属性,但不显示外键。

show databases 查看这个mysql里面有多少个库

use mysql

use 选择数据库

show tables 查看当前库里面所有的表

mysql> select password from user where user='root';

Mysql 5.7 select authentication_string,user from mysql.user;

查看当前数据库 里面的表user 用户为root的密码

alter database 数据库名 character set utf8;

三、table 表的操作

1、查看表结构

desc table

DESCRIBE 表名;

2、查看表的内容

select * from table_name

3、建立表

CREATE TABLE 表名 (
属性名 数据类型 [完整约束条件],
属性名 数据类型 [完整约束条件],


属性名 数据类型 [完整约束条件]
);
字段名就是属性名

完整的建立表的语句

create table users(id int(7) AUTO_INCREMENT,username varchar(100) not null,password varchar(100) not null,PRIMARY KEY(id))ENGINE=InnoDB DEFAULT CHARSET=utf8;mysql> create table users(id int(7) UNSIGNED auto_increment,username varchar(30) not null,password varchar(32) not null,email varchar(40),primary key (id))engine=myisam default charset=utf8;
Query OK, 0 rows affected (0.00 sec)

if not exists表示当相同的表名存在时,则不执行此创建语句,避免语句执行错误

create database if not exists [table];

ENGINE=InnoDB DEFAULT CHARSET=utf8;
ENGINE 设置表的引擎 和默认的字符类型
常见的数据库引擎
InnoDB myisam
数据类型
https://www.cnblogs.com/-xlp/p/8617760.html

4、约束条件

PRIMARY KEY 标识该属性为该表的主键,可以唯一的标识对应的元组
FOREIGN KEY 标识该属性为该表的外键,是与之联系某表的主键

NOT NULL 标识该属性不能为空
UNIQUE 标识该属性的值是唯一的
AUTO_INCREMENT 标识该属性的值是自动增加,这是MySQL的SQL语句的特色
DEFAULT 为该属性设置默认值

5、修改表的操作

修改表
格式: ALTER TABLE 旧表名 RENAME 新表名;
修改字段的数据类型:

ALTER TABLE 表名 MODIFY 属性名 数据类型;

修改字段名:

ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型;

增加字段名:

ALTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束条件] [FIRST | AFTER 属性名2];

删除字段:

ALTER TABLE 表名 DROP 属性名;

更改表的存储引擎:

格式: ALTER TABLE 表名 ENGINE = 存储引擎名;

四、数据的增删改查

为表中所有字段添加数据
语法: INSERT INTO 表名(字段名1,字段名2,…)VALUES(值1,值2,…);
mysql> insert into users (id,username,password)values(1,'moon','123456');

1、增

语法: INSERT INTO 表名 VALUES(值11,值2,…);
mysql> insert into users values(null,'test','123456');
语法: INSERT INTO 表名(字段1,字段2,…)VALUES(值1,值2,…)
语法: INSERT INTO 表名 SET 字段名1=值1[,字段名2=值2,…]
举例: INSERT INTO student SET id=4,name='zhaoliu',grade=72;
同时添加多条数据
语法:
INSERT INTO 表名[(字段名1,字段名2,…)]VALUES (值1,值2,…),(值1,值2,…),
mysql> insert into users (id,username,password)values(null,'moon','123456'),(null,'alex','123456');

:INSERT INTO 表名[(字段名1,字段名2,…)]VALUES (值1,值2,…),(值1,值2,…),(值1,值2,…)
mysql> insert into users values(null,'moon1','123456'),(null,'alex1','123456');

2、删

DELETE FROM 表名 [WHERE 条件表达式
delete from users where id=1;
删除全部数据
DELETE 语句中没有使用WHERE语句,则会将表中所有记录都删除。
DELETE FROM 表名
删除全部数据的另一种方法——TRUNCATE

3、更新

语法: UPDATE 表名 SET 字段名1=值1,[ ,字段名2=值2,…][ WHERE 条件表达式 ]

update users set  password='aaaa' where id=1;
update users set  password='123456',username='moon' where id=1
update users set  password=456789;

4、查

select * from users;
星号代表所有的字段
查询指定的字段
select username,password from users;

  • 按条件调节查询
  • 按关系来查询

语法: SELECT 字段名1,字段名2,…FROM 表名WHERE 条件表达式

1、in 查询

SELECT * FROM student2 WHERE id IN (1,2,3);
BETWEEN AND 关键字的查询
select * from users where id not between 1 and 10;
DISTINCT 关键字的查询
select distinct username from users
like查询 一般都会给跟着 %
select * from users where username like "%m%" ;
下划线 _ 匹配一个字符
select* from users where username like "moo_"

2、and查询

满足多个条件
select * from users where id=1 and username='moon';

3、or查询

满足任意一个条件
select * from users where id=1 or username='moon';
ORAND 一起使用的情况
ORAND 一起使用的时候,AND 的优先级高于 OR,因此二者一起使用时,会先运算 AND 两边的表达式,再运算 OR 两边的表达式。
mysql> select * from users where id >5 and password='123456c' or username='moon1';

4、聚合查询

count 返回行数

select count(*) from users;
select count(id) from users;

COUNT() 返回某列的行数
SUM() 返回某列值的和
AVG() 返回某列的平均值
MAX() 返回某列的最大值
MIN() 返回某列的最小值

5、分组查询

如果报错请在 my.ini添加
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

GROUP BYmysql> SELECT * FROM users GROUP BY password;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  3 | moon1    | 123456   |
|  1 | moon     | 456789   |
+----+----------+----------+
2 rows in set (0.01 sec)mysql> SELECT * FROM users GROUP BY username;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  2 | alex1    | 456789   |
|  1 | moon     | 456789   |
|  3 | moon1    | 123456   |
+----+----------+----------+
3 rows in set (0.01 sec)

使用 LIMIT 限制查询结果的数量

select * from users limit 2,10;
select * from users as u where u.id=1;

为表和字段取别名
select username as myname from users;

6、mysql的子查询

  • where型子查询
    (把内层查询结果当作外层查询的比较条件)
select * from users where id in (select id from users where id>10);
  • from型子查询
    (把内层的查询结果供外层再次查询)
select * from (select username,age from users) as agev_a where age>20	
select * from (select * from users where id>=10) as age_10;	

(select * from users where id>=10)查询出来的是一个集合 别名为age_10
select * from age_10

  • exists型子查询
    (把外层查询结果拿到内层,看内层的查询是否成立)
select * from users where EXISTS (select * from users where id>1)

7、联合查询

(两个表的查询)
注释: 默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL
ALLUNION 一起使用时(即 UNION ALL),不消除重复行
UNION ALL 查询全部 而且不会消除重复的行
union

SQL UNION ALL 语法
union的用法及注意事项
两次查询的列数必须一致
select * from users union select *,1 from news;

CREATE TABLE `news` (`id` int(11) NOT NULL AUTO_INCREMENT,`title` varchar(255) not NULL,`content` varchar(255) not null,PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; 
insert into news (title,content)values('a1','a1');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/197.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络通信原理系统的认知(NEBASE第十四课)

1 物理层 第一层 物理层:建立、维护、断开物理连接,定义了接口及介质,实现了比特流的传输。 1.1传输层介质分类 有线介质:网线 (双绞线)光纤 无线: 无线电 1.2 双绞线 五类线 cat5 :适用 10…

第二次CCF计算机软件能力认证

第一题:相邻数对 给定 n 个不同的整数,问这些数中有多少对整数,它们的值正好相差 1。 输出格式 输入的第一行包含一个整数 n,表示给定整数的个数。 第二行包含所给定的 n 个整数。 输出格式 输出一个整数,表示值正好相…

KMP算法

KMP KMP 算法是一个快速查找匹配串的算法,它的作用其实就是本题问题:如何快速在「原字符串」中找到「匹配字符串」。 而 KMP 算法的复杂度为 O(mn)实际上是O(N),因为O(M)不可能大于O(N) KMP 之所以能够在 O(mn)复杂度内完成查找,是因为其能…

巴斯夫与长三角物理研究中心开展合作,专注固态和钠离子电池领域

“巴斯夫,全球知名化学公司,宣布与长三角物理研究中心合作,在江苏溧阳市成立联合研究中心,专注于固态电池和钠离子电池的科研。” 根据巴斯夫官方微博消息,新成立的研究中心名为“巴斯夫–长三角物理研究中心新能源汽车…

高德地图的使用

JS API 结合 Vue 使用 高德地图 jsapi 下载、引入 npm add amap/amap-jsapi-loaderimport AMapLoader from amap/amap-jsapi-loader 使用2.0版本的loader需要在window对象下先配置 securityJsCode JS API 安全密钥使用 JS API 使用 script 标签同步加载增加代理服务器设置…

【计算机网络】网络编程套接字(二)

文章目录 网络编程套接字(二)简单TCP服务器实现创建套接字服务器绑定服务器监听服务器接收连接服务器处理请求 简单TCP客户端实现创建套接字客户端发起连接客户端发起请求 服务器简单测试服务器简单测评多进程版TCP服务器捕捉SIGCHLD信号孙子进程提供服务…

【RuoYi-Cloud-Plus】学习笔记 09 - Sentinel(四)熔断降级知识整理

文章目录 前言参考目录版本说明学习笔记1、包结构2、DegradeSlot3、DegradeRule4、DegradeRuleManager5、CircuitBreaker5.1 CircuitBreaker.State6、AbstractCircuitBreaker6.1、AbstractCircuitBreaker#fromCloseToOpen6.2、AbstractCircuitBreaker#fromHalfOpenToOpen6.3、A…

支付宝接入

支付宝接入 python-alipay-sdk pycryptodome一、电脑网站支付 1.1 获取支付宝密钥 沙箱网址 1.APPID 2.应用私钥 3.支付宝公钥1.2 存放密钥 在与 settings.py 的同级目录下创建 pem 文件夹pem 文件夹下创建 app_private_key.pem 和 alipay_public_key.pem app_private_key…

神经网络初谈

文章目录 简介神经网络的发展历程神经网络的初生神经网络的第一次折戟神经网络的新生,Hinton携BP算法登上历史舞台命途多舛,神经网络的第二次寒冬神经网络的重生,黄袍加身,一步封神神经网络的未来,众说纷纭其他时间点 …

STM32 Proteus仿真LCD12864俄罗斯方块-FZ0063

STM32 Proteus仿真LCD12864俄罗斯方块-FZ0063 Proteus仿真小实验: STM32 Proteus仿真LCD12864俄罗斯方块-FZ0063 功能: 硬件组成:STM32F103R6单片机 LCD12864显示器多个按键 1.标准俄罗斯方块经典游戏玩法,带计时&#xff0c…

Kong 服务和路由的添加

管理服务 这里参考DB-less-Mode,因为使用的是yaml配置文件的形式,所以所有的相关配置只需要往初始化的kong.yml文件中添加就可以了,就像nginx的配置文件 DB-less-Mode 创建服务 vim /etc/kong/kong.yml services: - name: my-service #…

MySQL---表数据高效率查询(简述)

目录 前言 一、聚合查询 💖聚合函数 💖GROUP BY子句 💖HAVING 二、联合查询 💖内连接 💖外连接 💖自连接 💖子查询 💖合并查询 🎁博主介绍:博客名…

Idea 修改默认 Maven 为自己的

每次我们打开新项目时,都要去配置一遍 maven,很麻烦,其实可以去修改 idea 里面默认的 maven 配置,这样后面不管是打开新项目还是老项目,就都是用的自己的 maven 了. 1.文件->新项目设置->新项目的设置 File->Other Settings -> Settings for New Project 2.然后和…

git下载源码及环境搭建之数据库(二)

学习目标: 数据库 新项目使用 数据库文件 的配置 及相关属性的设置 步骤: 数据库 下图所示为开发时所用数据库 第一步:新建一个数据库 注意: 字符集与排序规则我们应该选择utf-8 相关 选中新创建的表,点击备份—还…

MySQL单表查询练习题

目录 第一题 第二题 第三题 第一题 1.创建数据表pet,并对表进行插入、更新与删除操作,pet表结构如表8.3所示。 (1)首先创建数据表pet,使用不同的方法将表8.4中的记录插入到pet表中。 mysql> create table pet( name varchar(…

centos7.9php8swoole5swoft2环境安装遇到确实redis扩展的解决办法

1、环境介绍 运行系统:centos7.9 php版本:php8.0.29 swoole版本:swoole5 swoft版本:swoft2.02、遇到的问题 The requested PHP extension ext-redis * is missing from your system. Install or enable PHPs redis extension。这…

python爬虫哪个库用的最多

目录 常用的python爬虫库有哪些 1. Requests: 2. BeautifulSoup: 3. Scrapy: 4. Selenium: 5. Scrapy-Redis: 哪个爬虫库用的最多 Scrapy示例代码 总结 常用的python爬虫库有哪些 Python拥有许多常用的爬虫库…

Java反射与“整活--(IOC容器)”

文章目录 前言反射什么是反射基本操作获取类对象获取类属性获取类方法方法的执行对构造方法的操作 注解定义获取注解 整活(IOC容器)项目结构IOC/DI流程ApplicationContextBeanDefinitionReaderBeanDefinitionBeanWrappergetBean()…

Django_admin数据管理后台

目录 一、基础操作 二、自定义后台操作数据行为 源码等资料获取方法 admin数据管理后台是django内置的一个后台管理界面,能查看已注册模型类的数据结构,以及对数据的增删改。 一、基础操作 1.1 检查项目目录下的urls.py有没有如下配置 1.2 创建djan…

技术讨论:我心中TOP1的编程语言

欢迎关注博主 六月暴雪飞梨花 或加入【六月暴雪飞梨花】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术…