DDL语句(create , drop , alter)
创建数据库
create database 数据库名; //直接创建数据库
create database if not exists 数据库名; //判断是否存在并创建数据库
create database 数据库名 character set 字符集; //创建数据库并指定字符集(编码表)
字符集:ASCII、GB2312、GBK、Unicode、UTF-8
查看数据库
show database; //查看所有数据库
show create database 数据库名; //查看某个数据库的定义信息
修改删除数据库
alter database 数据库名 default character set 字符集; //修改数据库字符集格式
drop database 数据库名; //删除数据库
使用数据库
select database(); //查看正在使用的数据库
use 数据库名; //使用/切换数据库
创建删除表
create table 表名(字段名1 字段类型1,字段名1 字段类型2,…); //创建表
MySQL数据类型:int、double、varchar、data(yyyy-MM-dd)、char…
show tables; //查看所有表
desc 表名; //查看表结构
show create table 表名; //产看创建表的SQL语句
create table 表名 like 旧表名; //快速创建一个结构相同的表
drop table 表名; //直接删除表
drop table if exists 表名; //判断表是否存在并删除
修改表结构
alter table 表名 add 列名 类型; //添加表列
alter table 表名 modify 列名 新的类型; //修改列表类型
alter table 表名 change 旧列名 新列名 类型; //修改列名
alter table 表名 drop 列名; //删除列
rename table 表名 to 新表名; //修改表名
alter table 表名 character set 字符集; //修改字符集
语法基础
- 查看有哪些库:show databases;
- 选择一个库:use 库名;
- 查看选中的库下有哪些表:show tables;
- 增加一张表:
Create table user(
Id int primary key auto_increment,
username char(4) not null,
password char(4) not null);
- 删除表:drop table user;
- 增加一条数据:insert into table (id,username,password) values ('1','admin','123456') ;
- 删除一条数据:Delete from user where id=1;
- 更改一条数据:Update user set id='2',username='test' where id=1;
- 查询一条数据:select password from user where id=1;
- Order by:排序 升序:asc(默认升序) 降序:desc
- Limit:限制
- Limt 数值:只查询(数值)条记录
- Limit 数值1,数值2:数值1代表起始位置,数值2代表限制的长度
例:select * from user order by id asc;
例:select * from user order by id asc limit 2;
- UNION联合查询:
SELECT password FROM user UNION SELECT password FROM user2; OR
SELECT 1,2,3,4 UNION SELECT password FROM user2;
注释
- MySQL/Oracle注释
- 单行注释,#后面直接加内容
- 单行注释,--后面必须要加一个空格(或者任意一个字符)
- 多行注释,/*注释内容,中间可以换行*/
- Access没有专门的注释符,但可以使用空字符"NULL"(%00)代替
- concat(str1,str2…)函数,直接连接
- group_concat(str1,str2…)函数,使用都好做分隔符
- concat_ws(sep,str1,str2…)函数,使用第一个参数作为分隔符
sql注入漏洞产生的条件:
- 参数可控
- 带入数据库