如果人们既没有思想,又没有信仰,还罔顾事实,那出现什么灾难都不奇怪。
数据库的基本操作包括增删改查,对数据库,数据表,表里的字段、记录进行操作。
这对SQL注入有很大的帮助,一定要学好。
Ax 数据库
/** Information
* Author: Enomothem
* Date: 2020-12-17 11:34
* Update: 2021-01-03 24:00
**/
-- 注释方式1
# 注释方式2
/*
注释方式3
*/
# 使用数据库
use galaxy;
# =================
-- 数据库 --
# =================
-- 增 --
create database galaxy; # 新建数据库
create database if not exists galaxy; # 不存在创建
-- 删 --
drop database galaxy; # 删除数据库
-- 改 --
rename database olddbname to newdbname; # 官方不推荐
-- 查 --
show databases; # 查看所有数据库
show create database galaxy; # 查看创建数据库信息
Bx 数据表
# =================
-- 数据表 --
# =================
-- 增 --
create table square(id int); # 创建表,多个表使用,分隔
alter table square CHARSET=utf8; # 设置字符集
-- 删 --
drop table time; # 删除表
-- 改 --
alter table square rename square_rename; # 改名
rename table square_rename to squared; # 改名
-- 查 --
show tables; # 查看数据库所有表
desc squared; # 展示表
show tables like 'tim%'; # 模糊查询:% 通配 _ 只能代表一个字符
show table status; # 查看数据表属性
show create table squared; # 查看创建的表
Cx 字段
# =================
-- 数据段 --
# =================
-- 增 --
alter table squared add type int; # 添加字段,多个字段用,分隔开。
-- 删 --
alter table squared drop type; # 删除字段
-- 改 --
alter table squared change test name varchar(32); # 修改字段
alter table squared modify name varchar(32); # 修改类型、名不变
alter table squared modify id varchar(32) first; # 置顶
alter table squared add type int after name; # 在id后面新建一个type字段
alter table squared modify name smallint after id; # 修改位置
-- 查 --
show full columns from squared; # 查看数据表结构
Dx 数据
# =================
-- 数据 --
# =================
-- 增 --
insert squared values(1, '关羽', '6666'); # 给所有字段添加记录
insert squared (name,id) values(2,'百里守约'); # 给部分字段添加记录,因为存在允许NULL字段
insert squared (id) value(3); # 只添加一个字段
insert squared (type,id) values(66,32768); # 整形可以填写32768大小的数据
insert squared values(6, '曹操', 888),(7, '小乔',888),(8, '大乔', 1888); # 给所有字段插入多行数据
insert squared (id,name,type) values(11,'安琪拉',5888),(12,'雅典娜',18888); # 给部分字段插入多行数据
-- 删 --
delete from time; # 删除表数据
delete from squared where id = '3'; # 删除记录
delete from squared where type is null; # 删除字段值为null的记录
-- 改 --
update squared set id = '22' where id = '11'; # 修改记录中某些字段值
update squared set id = '30', name = '关羽' where id = 20; # 修改记录中多个字段值
update squared set id = '30', name = '关羽' where id > 3 && id < 8; # 修改记录中多个字段值 条件判断
-- 查 --
select * from squared; # 查询表中所有字段记录
select id,name from squared; # 查询表中部分字段所有记录
select * from squared where id = 6;
select * from squared where id > 3;
select id,name from squared where id > 3;
select id,name from squared where id > 3 || id =2;
select id,name from squared where name = '关羽';
select * from squared where name like '%拉%'; # 关键字 在中间
insert squared (type,id) values(32768, 4); # 越界测试:不能通过,因为32768越界
# 使用语句处
update squared set name = '武圣',id = 6 where id = 22;
Ex 联合查询
# =================
-- 联合查询 --
# =================
-- 子查询 --
select csubject,cscore from cource
where cnumber = (
select snumber from student where sname = "李军"
);
-- 子查询 --
select csubject,cscore from cource
where cnumber in (
select snumber from student where ssex = "男"
);
-- 内连接 --
select s.snumber,s.sname,s.sclass,c.csubject,c.cscore from student s
inner join cource c on s.snumber = c.cnumber;