目录
SQL语句
SQL是用于访问和处理数据库的标准的计算机语言,全称是Structured Query Language。
1.连接数据库
明文连接
mysql -h127.0.0.1 -P3306 -uroot -proot
mysql -uroot -proot
密文连接
mysql -uroot -p
2.退出数据库
EXIT
quit
q
Ctrl+c
注意:SQL语句最后要有分号结尾。
3.常用SQL语句
查询当前数据库版本 select version();
查询当前数据库用户 select user();
查询当前路径 select @@basedir;
查询所有数据库 select databases;
选择一个数据库 use + 数据库名;
查询当前数据库 select database();
查询所有表名 select tables;
创建一个数据库 create database 数据库名;
删除一个数据库 create database 数据库名;
查询一个表的结构 desc 表名;
4.创建表
语法:createtable 数据表名字(字段 类型 约束 [,字段 类型 约束])
SQL语句增删改查
增添数据
1.INSERT语句指定所有字段名
语法:INSERT INTO 表名 (字段名1,字段名2,......) VALUES(值1,值2,.....);
2.INSERT语句不指定所有字段名
语法:INSERT INTO 表名 VALUES(值1,值2,.....);
3.INSERT语句为指定字段添加数据,其他字段为默认值
语法:INSERT INTO 表名(字段1,字段2,…)VALUES(值1,值2,…);
4.同时添加多条数据
语法:INSERT INTO 表名(字段名1,字段名2,…) VALUES (值1,值2,…),(值1,值2);
删除数据
1.删除指定部分数据
语法:DELETE FROM 表名 WHERE 条件表达式;
2.删除全部数据
语法:DELETE FROM 表名;
TRUNCTE [TABLE] 表名;
修改数据
1.更新指定表中的指定记录
语法:UPDATE 表名 SET 字段名1=值1,[ ,字段名2=值2,…] [ WHERE 条件表达式 ];
2.更新全部数据
语法:UPDATE FROM 表名 SET 字段名1=值1,[ ,字段名2=值2,…] ;
查询数据
1.带关系运算符的查询
语法:SELECT 字段名1,字段名2,...FROM 表名 WHERE 条件表达式;
2.带IN关键字的查询
语法:SELECT * 字段名1,字段名2,...FROM 表名 WHERE [NOT] IN (元素1,元素2...);
3.带BETWEEN AND 关键字的查询
语法:SELECT * { 字段名1,字段名2,… FROM 表名WHERE 字段名 [ NOT ] BETWEEN 值1 AND 值2;
4.空值查询
语法:SELECT * 字段名1,字段名2,…FROM 表名 WHERE 字段名 IS [ NOT ] NULL;
5.带DISTINCT关键字的查询
语法:SELECT DISTINCT 字段名 FROM 表名;
6.带LIKE关键字的查询
(1)百分号通配符
语法:SELECT * | 字段名1,字段名2,…FROM 表名 WHERE 字段名 [ NOT ] LIKE ‘匹配字符串’;
eg:SELECT id,name FROM student WHERE name LIKE "s%";
(2)下划线通配符
语法:语法:SELECT * | 字段名1,字段名2,…FROM 表名 WHERE 字段名 [ NOT ] LIKE ‘匹配字符串’;
eg:SELECT * FROM student WHERE name LIKE 'xia_qiao';
7.带AND关键字的多条件查询
语法:SELECT * | 字段名1,字段名2,…FROM 表名;
eg:SELECT id,name FROM student WHERE id<5 AND sex='woman';
8.带OR关键字的多条件查询
语法:SELECT * | 字段名1,字段名2,…FROM 表名 WHERE 条件表达式1 OR 条件表达式2 [ … OR 条件表达式 n ];
9.带AND和OR关键字的多条件查询
语法:SELECT * | 字段名1,字段名2,…FROM 表名;
AND的优先级高于OR
10.聚合函数
(1)COUNT()函数:统计记录的条数
语法:SELECT COUNT(*) FROM 表名;
(2)SUM()函数:求出表中某个字段所有值的总和
语法:SELECT SUM(字段名) FROM 表名;
(3)AVG()函数:求出表中某个字段所有值的平均值
语法:SELECT AVG(字段名) FROM 表名;
(4)MAX()函数:求出表中某个字段所有值的最大值
语法:SELECT MAX(字段名) FROM 表名;
(5)MIN()函数:求出表中某个字段所有值的最小值
语法:SELECT MIN(字段名) FROM 表名;
11.对查询结果进行排序
(1)带ORDER BY关键字的排序
语法:SELECT 字段名1,字段名2,…FROM 表名 ORDER BY 字段名1 [ ASC | DESC ],字段名2 [ ASC | DESC ]…;
注:ASC表示升序,DESC表示降序,默认情况是升序排列。
(2)带GROUP BY关键字的排序
语法:SELECT 字段名1,字段名2,…FROM 表名 GROUP BY 字段名1,字段名2,… [ HAVING 条件表达式 ];
注意:HAVING关键字和WHERE关键字的作用相同,区别在于HAVING 关键字可以跟聚合函数,而WHERE 关键字不能。通常HAVING 关键字都和GROUP BY一起使用,用于对分组后的结果进行过滤。
12.使用LIMIT限制查询结果的数量
语法:SELECT 字段名2,字段名2,…FROM 表名 LIMIT 记录数 [ OFFSET ] 记录数 LIMIT Y OFFSET X 向后偏移 x位。
13.为表和字段取别名
语法:SELECT * FROM 表名 [ AS ] 别名; 为表取别名
SELECT 字段名 [ AS ] 别名 [ ,字段名 [AS] 别名,…] FROM 表名 ; 为字段取别名
子查询
eg:select name from student where id < (select age from student where name='sunce');
联合查询
eg:select version() union select user();
嵌套查询
eg:select count(*) from (select * from student2) as s;
利用内置表查询
eg:select table_name from information_schema.tables;
SQL中的tips
1.符号运用
= 数据库的赋值符号
|| 连接符 比如111||222 实际为111222
or 逻辑或 左右两边有一条成立 那么返回true 否则false
xor 逻辑异或。 如果任一操作数为NULL,则返回NULL。 对于非NULL操作数,如果奇数个操作数非零,则求值为1,否则返回0。
&&/And 逻辑与,并且的意思 左右两边的条件必须同时成立则返回true 否则返回false
NOT/! 逻辑非
+、-、*、/ 运算符 加减乘除
2.常用注释符号
//,-- , /**/, #, --+, -- -, ;,%00,--a
3.内联注释
内联注释符是一种基于注块注释衍生出来的注释风格,它可以用于整个SQL语句中,用来执行SQL语句,内联注释有个特殊点,和MySQL版本息息相关
4.常见空格表示符号
两个空格代替一个空格,用tab代替空格,%0a=空格。
5.SQL注入常见函数
(1)sleep()函数 :对数据库进行延时的函数
语法:后面直接跟需要延时的时间即可,默认单位为s
(2)updatexml() 函数
语法:updatexml(目标xml文档,xml路径,更新的内容)
(3)exp()函数
此函数返回e(自然对数的底)的X次方的值,当传递一个大于709的值时,函数exp()就会引起一个溢出错误。类似的还有pow(),cot()。
(4)length()函数:返回参数的长度
(5)substr()函数:从字符串 s 的 start 位置截取长度为 length 的子字符串,select substr(user(),1,2);
(6)substring()函数,left() ,mid()函数,同substr。
(7)ascii()、ord()函数:返回字符的ascii码。
(8)name_const()函数:构造一个临时列,列名为xx,值为xx。
(9)strcmp()函数:strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串 并根据比较结果返回整数。
基本形式为strcmp(str1,str2),若str1=str2,则返回零;
若str1
若str1>str2,则返回正数。
(10)if(a,b,c)函数:如果a为真,则返回b,否则返回c。
(11)locate()函数:locate(substr,str)返回substr字符串在str中出现的位置,没有返回0。
(12)position()函数:position(substr in str)返回substr字符串在str中出现的位置,没有返回0。
(13)instr()函数:instr(str,substr)返回substr字符串在str中出现的位置,与locate相同,只是参数顺序相反。
标签:函数,SQL,笔记,查询,语法,字段名,表名,SELECT
来源: https://blog.csdn.net/m0_47599604/article/details/114001028