Mysql数据库基础知识(全)

这篇博文详述了MySQL的基础知识,包括如何配置环境变量、登录退出操作,以及数据库和表的比喻解释。还介绍了密码加密、常用命令语句、数据的增删改查和查询技巧,如子查询和SQL注入防范。同时讲解了information_schema数据库的作用,提供访问元数据的方式。
摘要由CSDN通过智能技术生成

前言:本博文为个人笔记,记录了Mysql的一些基本操作,一般掌握本博文就可以了解数据库、表、数据项的增删改查,希望对大家的学习有所帮助。
首先下载PHPSTUDY,将Mysql配置为系统变量。
具体操作如下:
首先找到PHPSTUDY下载目录,进入Extensions目录下的Mysql目录,找到bin文件,复制相关路径,如:

E:\phpstudy_pro\Extensions\MySQL5.7.26\bin

右击计算机,选择属性,然后选择高级系统设置,进而点击环境变量
在这里插入图片描述
在这里插入图片描述
选择新建,变量名为mysql,变量值为刚才的路径,点击确定。
在这里插入图片描述
然后进入控制台,输入mysql -u root -p进行验证,出现如下情况说明添加环境变量成功。
在这里插入图片描述
登录操作:

mysql -u [用户名] -p [密码] -h [IP地址]

退出操作:

1. quit
2. \q
3. exit

数据库中数据库相当于文件夹,表相当于文件。
可以类比为车间名,车间内的分类货物,具体的货物
注意数据库中的密码一般使用MD5加密:
例:password |5f4dcc3b5aa765d61d8327deb882cf99
命令语句:

#显示数据库
show databases;
#选择数据库
use dvwa;
#显示当前库中所有的表
show tables;
#查看表中具体的信息
desc users;
#查询命令
select * from users;

注释符:

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

数据库的基本操作:

#增:
create database exampleDb;
#删
drop database exampleDb;
#改
alter database exampleDb charset utf8;
#查
show databases;

表的基本操作:

#查看表结构
describle table;
DESCRIBE [表名]
#查看表内容
select * from table_name
#建立表
CREATE TABLE [表名](
    属性名 数据类型 [完整约束条件],
    属性名 数据类型 [完整约束条件]
);
例如:
CREATE TABLE user (
    id int(7) AUTO_INCREMENT;
    username varchar(100) not null;
    password varchar(100) not null;
    PRIMARY KEY(id);
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
#常见的数据库引擎
InnoDB 对字符处理比较好
myisam 对存储数据比较好(大数据的查询语句)
#删除表
drop table users;
#避免创建语句错误
create  table if not exisit [table];
#修改表的操作
ALTER TABLE [旧表名] RENAME [新表名];
#修改字段的数据类型
ALTER TABLE [表名] MODIFY 属性名 数据类型;
#修改字段名
ALTER TABLE [表名] CHANGE 旧属性名 新属性名 
#增加字段名
ALTER TABLE [表名] ADD [属性名1] 数据类型 [完整性约束条件]
#删除字段
ALTER TABLE [表名] DROP [属性名]
#更改存储引擎
ALTER TABLE [表名] ENGINE=存储引擎名;

数据的增删改查:

#添加数据(指定字段)
语法:INSERT INTO 表名(字段名1,字段名2) VALUES(1,2);
insert into users (id,username,password) values(1,'admin','password');
#添加数据(不指定字段)
语法:INSERT INTO 表名 VALUES (1,2);
#删除数据
语法:DELETE FROM [表名] WHERE 条件表达式;
delete from users where id =1;
#删除表
语法:TRUNCTE [TABLE] 表名
TRUNCTE TABLE users;
#更新数据
UPDATE USERS SET password='132' where id=1;
#查找数据
SELECT * FROM users;
#查找指定数据
SELECT username,password FROM USERS;

数据查询语句:

#between查询
语法:SELECT * |{字段名1,字段名2}
FROM 表名
WHERE 字段名 [NOT ] BETWEEN AND
SELECT * from users where id not between 1 and 2;
#带Like查询,一般都会跟着%,意味着任意字符和长度
语法:SELECT *|{字段名1,字段名2}
FROM 表名
WHERE 字段名 like '模糊查询'SELECT * from users where id like '%admin%';
SELECT * from
#带AND查询,满足多个条件
语法:SELECT *|{字段名1,字段名2}
FROM 表名
WHERE 条件语句1 AND 条件语句2
SELECT * FROM users where id >=0 and username like '%ad%';
#带OR查询,满足一个条件
语法:SELECT * |{字段名1,字段名2}
FROM 表名
WHERE 条件语句1 OR 条件语句2

高级查询:

#COUNT()函数:统计记录的条数
语法:SELECT COUNT(*) FROM 表名
SELECT COUNT(*) from users;
#SUM ( )函数:对记录数值进行求和
语法:SELECT SUM(*) FROM 表名
SELECT SUM(id) from users;
#分组查询
单独使用GROUP BY进行分组
SELCT * FROM USERS GROUP BY username;
#HAVING关键字
GROUP BY 一般与HAVING关键字配合使用,HAVINGWHERE作用相同,但是HAVING可以跟聚合函数
SELECT SUM(id) FROM users GROUP BY password HAVING SUM(id) <4;
#LIMIT 限制查询结果的数量
SELECT * FROM users LIMIT 2;
SELECT     *    FROM user LIMIT 1,1;
#AS 为字段取别名
语法:SELECT 字段名 [AS] 别名 FROM 表名;

子查询:

#WHERE型查询
把内层查询的加过当作外层查询的比较条件
SELECT * from users where id in (select * from users where id >1);
#FROM子查询
SELECT * from (select * from users where id >=0) as user_id;
#EXISTS子查询
SELECT * FROM USERS WHERE EXISTS (SELECT * FROM USERS WHERE id >1);
 

SQL注入的基本知识:
nformation_ schema数据库是MySQL自带的,它提供了访问数据库元数据的方式。就是数据库的库名,表明,列的数据类型和访问权限等。
可以把information_schema看作元数据。
SCHEMATA表:提供了当前mysql实例中所有数据库的信息,是show databases的结果取之此表
TABLES表:提供了关于数据库中表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是show tables from schema_name的结果。
COLUMNS表:具体tables里的信息。
SQL注入语句

#查询数据库名
SELECT SCHEMA_NAME FROM information_schema.SCHEMATA limit 1
#查询数据表名
SELECT * from information_schema.tables where table_schema='users';
#查询列
SELECT* from information_schema.columns where table_schema='user' and table_name='id';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小蓝学不会嵌入式!

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

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

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

打赏作者

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

抵扣说明:

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

余额充值