一、SQL语言
1.1 结构化查询语言:SQL
特点:解释性语言
数据:计算机系统中,用二进制来描述信息的字符
数据库:按照数据结构来组织、存储和管理数据的仓库
数据库管理系统:一种操纵和管理数据的软件,用于建立和使用、维护数据库,它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性
结构化查询语言:用于存储数据及查询、更新和管理关系数据库
1.2 SQL语言
SQL语言包含六大部分:
数据查询语句:DQL
select
数据操纵语句:DML
insert update delete
数据控制语句:DCL
grant revoke
数据定义语句:DDL
create drop
指针控制语句:CCL
declare curor fetch
事物处理语句:TPL
commit rollback
二、SQL语句
2.1 查询数据
查询user表中的数据:
select *
from user
查询user表中name等于admin的数据
select *
from user
where name = ‘admin’
2.2 插入数据
insert into user values("data1","data2","data3,"....")
2.3 更新数据
update user set password=“root” where name="root"
2.4 删除数据
delete from user where name="root"
三、MySQL数据库
3.1 系统数据表
schemate:提供关于数据库的信息
desc information_schema.schemate
#存放数据库的名称
select distinct schema_name from information_schma.schemate
columns:给出表中的列信息
desc information_schema.columns
#所有列名
Select distinct column_name from information_schema_columns
#所有数据库名
Select distinct table_schema from informtion_schema.columns
#所有表名
Select distinct table_name from information_schema.columns
tables:关于数据库中的表的信息
Desc information_schema.tables
#所有数据库名
Select distinct table_schema from information_schema.tables
#所有表名
Select distinct table_name from information_schema.tables
3.2 系统函数
常用MySQL系统函数:
○ system_user()系统用户名
○ user()用户名
○ current_user() 当前用户名
○ session_user() 连接数据库用的用户名
○ database()数据库名
○ version()mysql 数据库版本
○ load_file()mysql 读取本地文件的函数
○ @@datadir 数据库路径
○ @@basedir mysql安装路径
○ @@version_compile_os 操作系统
实例:
1)查询当前用户
Select current_user();
(2)查询当前数据库版本
Select version();
(3)查询数据库路径
Select @@datadir;
四、SQL注入原理
在一些网站的后台开发中,使用数据操作与代码耦合的方法,也就是直接构造SQL语句,然后在数据库中查询。后台程序通过HTTP获取用户的输入数据,然后将其组成SQL操作语句,传输到数据库中执行,在这个过程中并没有对用户的输入进行查看、过滤,从而使用户可以构造恶意的SQL语句,获取非法数据或破坏数据库,从而造成数据库中数据的泄露。SQL注入的原因就是用户可以直接操纵数据库