目录
SQL通用语法
1、sql语句可以书写单行或者多行,必须以分号结尾(不以分号结尾就会被认为没有写完)
2、不区分大小写,关键字建议使用大写
3、
单行注释: --
或者 #
#
是MySQL特有的
--
和注释的内容之间一定要有一个空格 ,#
不必
多行注释: /* */
SQL分类
DDL-操作数据库
查询: SHOW DATABASES;
创建: CREATE DATABASE 数据库名称;
创建数据库(判断,如果不存在则创建):
CREATE DATABASE IF NOT EXITS 数据库名称;
删除:DROP DATABASE 数据库名称;
删除数据库(判断,如果存在则删除):
DROP DATABASE IF EXISTS 数据库名称;
查看当前使用的数据库:
SELECT DATABASE();
使用数据库(就相当于查看数据库中数据之前,你得要先进入数据库):
USE 数据库名称;
MySQL中系统自带的数据库:
information_schema数据库很特殊,它里面存放数在一种特殊的表中——视图,视图是一种逻辑表,并不存在物理文件。
所以看,information_schema并不存在一个对应数据库的文件夹
information_schema它记录了MySQL里面有哪些数据库,有哪些表。(SQL注入中会经常使用)
SELECT first_name,last_name FROM users WHERE user_id=’1’ union select table_name,table_schema from information_schema.tables where table_schema=’dvwa’#‘
比如看一下这个Union注入,就用到information_schema来查询对应数据库中有哪些表啊
DDL-操作表
查询当前数据库下所有表的名称: SHOW TABLES;
查询表的结构(并不是数据,只是表的结构): DESC 表名称
比如这是sys数据库下session表的结构
创建表:
CREATE TABLE 表名(
字段名1 数据类型1,
字段名2 数据类型2,
……
字段名n 数据类型n
);
最后一行后面,不要加逗号
MySQL数据类型
可以分为三类
数值、日期、字符串
tinyint : 小整数型,占一个字节
int : 大整数类型,占四个字节 eg : age int
double : 浮点类型 使用格式:字段名 double(总长度,数点后保留的位数) eg : score double(5,2)
date : 日期值。只包含年月日 eg :birthday date :
datetime : 混合日期和时间值。包含年月日时分秒
char : 定长字符串 eg : name char(10) 如果存储的数据字符个数不足10个,也会占10个的空间
varchar : 变长字符串。 eg : name varchar(10) 如果存储的数据字符个数不足10个,那就数据字符个数是几就占几个的空间
删除表: DROP TABLE表名;
删除表时,判断表是否存在: DROP TABLE IF EXISTS 表名;
修改表:
修改表名: ALTER TABLE 表名 RENAME TO 新的表名;
添加一列: ALTER TABLE 表名 ADD 列名 数据类型;
修改数据类型: ALTER TABLE 表名 MODIFY 列名 新数据类型;
修改列名和数据类型: ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
删除列: ALTER TABLE 表名 DROP 列名;
图形化客户端工具(Navicat)
用于管理和开发MySQL或MariaDB
点击连接选择,MySQL
对表的操作会容易很多
DML-操作数据
给指定列添加数据: INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…);
给全部列添加数据: INSERT INTO 表名 VALUES(值1,值2,…);
(即使是给全部列添加数据,也是建议使用上一种添加数据的方式,因为比较容易观察)
批量添加数据:
INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…),(值1,值2,…)…;
INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…)…;
修改数据:
UPDATE 表名 SET 列名1=值1,列名2=值2,… [WHERE 条件];
(如果不添加条件,所有数据都将被修改)
删除数据: DELETE FROM 表名 [WHERE 条件];
(如果不添加条件,表中所有数据都会被删除)
DQL-查询数据
查询语法:
SLECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段
HAVING
分组后条件
ORDER BY
排序字段
LIMIT
分组限定