MySQL基础知识

一、数据库操作

      - 连接数据库:

明文 连接
mysql -h127.0.0.1 -P3306 -uroot -proot  -- 明文
如果连接本地数据库 -h可以省略 如果服务器端口是3306,-P端口号也可以省略
mysql -uroot -proot  -- 明文
密文连接
mysql - uroot -p  
Enter password: ****

       

       -查询所有数据库:show batabases;

       -查询当前数据库: select database();

       -查询当前数据库版本: select version();

       -查询当前数据库用户: select user();

       -查询当前路径:select  @@basedir;

       -选择一个数据库: use 数据库名;

       -创建一个数据库:create database 数据库名;

       -删除一个数据库: drop database 数据库名;

       -退出数据库:

                EXIT       --方法一

                quit         --方法二

                 q            --方法三

                 ctrl+c      --方法四

二、数据库表的操作

       -创建表     create table 数据表名字 (字段 类型 约束[, 字段 类型 约束]);

          例如:  class 数据库下创建student表(id、name、age、sex、birthday)

create table student(id int primary key auto_increment,name varchar(20),age int,sex varchar(20),birthday int);
 
primary key   表示主键
auto_increment  表示自动增长
 

       -查询所有表名   show tables;

       -查询一个表的结构  desc 表名;

       -表中添加数据  

        INSERT INTO 表名(字段名1,字段名2,…)VALUES(值1,值2,…); 

        INSERT INTO 表名 VALUES(值11,值2,…);

       -表中删除数据

        DELETE FROM 表名 WHERE 条件表达式

        DELETE FROM 表名;         ——删除所有记录

        -修改表中数据

        UPDATE 表名 SET 字段名1=值1,[ ,字段名2=值2,…] [ WHERE 条件表达式 ] 

        DELETE FROM 表名;

        -查询表中数据

         SELECT 字段名1,字段名2,…FROM 表名 WHERE 条件表达式

         SELECT * 字段名1,字段名2,…FROM 表名 WHERE 字段名 [ NOT ]  IN (元素1,元素2,…);

         SELECT DISTINCT 字段名 FROM 表名

         SELECT * | 字段名1,字段名2,…FROM 表名 WHERE 字段名 [ NOT ] LIKE ‘匹配字符串’;

         SELECT * | 字段名1,字段名2,…FROM 表名;

         SELECT * | 字段名1,字段名2,…FROM 表名 WHERE 条件表达式1 OR 条件表达式2 [ … OR 条件表达式 n ];

          SELECT COUNT(*) FROM 表名;         

          SELECT  SUM(字段名) FROM 表名

          SELECT AVG(字段名) FROM 表名

          SELECT MAX(字段名) FROM 表名

          SELECT MIN(字段名) FROM 表名

          SELECT * FROM student GROUP BY sex;

          SELECT COUNT(*) ,age FROM student GROUP BY age;

          SELECT sum(age),sex FROM student GROUP BY sex HAVING SUM(age) < 300;

          SELECT 字段名2,字段名2,…FROM 表名 LIMIT 记录数 [ OFFSET ] 记录数   LIMIT Y OFFSET X 向后偏移 x位;

          SELECT * FROM 表名 [ AS ] 别名

          SELECT 字段名 [ AS ] 别名 [ ,字段名 [AS] 别名,…]  FROM 表名

三、注入中常见的sql函数

1、rand()函数   //生成一个0~1之间的随机数   

                select rand();

2、floor()函数  //向下取整   

                select floor(rand()*2);

3、concat()函数  //将符合条件的同一列中的不同行数据进行拼接,选择好数据库

                concat(0x3a,database(),0x3a);0x3a为:号

4concat_ws()函数 //第一个参数是其它参数的分隔符。分隔符的位置在连接的两个字符串之间。

                 select concat_ws('!',database(),'haha');

5、floor()函数  //向下取整

                 select group_concat('!',database(),'haha');

6、extractvalue()函数  //对xml文档进行查询的函数 

                  extractvalue(目标xml文档,xml路径);

7、sleep()函数  //对数据库进行延时的函数  语法:后面直接跟需要延时的时间即可,默认单位为s

              select sleep(5);

8、updatexml()  //语法updatexml(目标xml文档,xml路径,更新的内容)

              select  updatexml('anything',concat('~',(select version())),'xxx');

9、 exp()函数  //此函数返回e(自然对数的底)的X次方的值,当传递一个大于709的值时,函数exp()就会引起一个溢出错误。类似的还有pow(),cot()。

               stelect exp(2);

10length()函数 //返回参数的长度

               select length(user());

11、substr()函数  //从字符串 s 的 start 位置截取长度为 length 的子字符串,select substr(user(),1,2);

              select substr(user(),1,2);

12substring()函数,left() ,mid()函数  //同substr

              select substring(user(),1,2);

13ascii()、ord()函数  //返回字符的ascii码

             select ascii(mid(user(),1));

14、name_const()函数  //构造一个临时列,列名为xx,值为xx

            select name_const('name',15);

15strcmp()函数  //strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串  并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若  str1<str2,则返回负数;若str1>str2,则返回正数

              select strcmp(version(),user());

16if(a,b,c) //如果a为真,则返回b,否则返回c

17、BENCHMARK(count,expr) //重复计算expr表达式count次

18geometrycollection(),multipoint(),polygon(),multipolygon(),linestring(),multilinestring()    //几何函数

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值