ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MYSQL与MSSQL比较、MSSQL报错注入

2021-06-26 13:01:04  阅读:215  来源: 互联网

标签:name 数据库 MSSQL mssql 表名 报错 MYSQL ID id


MYSQL与MSSQL比较、MSSQL报错注入

  1. mysql

    1.弱类型语言

  2. mssql

    1. 强类型语言
  3. orcale

    1. 强类型语言
  4. access

1. sql server和mysql数据库的区别

函数的区别

  1. db_name() 和 database()
  2. current_user 和 user()
  3. substring() 和 substr()
  4. char(97) and ascii(97) ascii的转换
  5. mysql中连接多列用 concat(); mssql中是 ‘a’+‘b’
  6. mysql有聚合函数group_concat();mssql无聚合函数,要用到top 1 结合 not in top
  7. mysql用读取一行用limit,mssql用top,orcale用where rownum=1
  8. @@version and version()
    1. mssql使用@@version查版本号,第一个字符是M
    2. mysql使用version查版本号,第一个字符是数字
  9. 在mysql中 information.schama;在mssql中 master…sysdatabases 或 master.dbo.sysdatabases,其中dbo表示用户名

后端语言

  1. asp,aspx 和 mssql组合
  2. jsp 与 orcale 结合
  3. php 和 mysql 结合

2.mssql数据库

2.1 mssql的内置函数

current_user – 返回用户名

host_name() :返回服务器端计算机名称

db_name () :返回当前数据库的名称

subString () :字符串截取函数

@@version:查看数据库版本

ISNULL() :判断查询是否带有NULL,有则替换

CAST(a as type) 字符类型转换,如果转换失败会将a结果显示在页面上

CHAR() :ascii转字符函数

object_id() 根据表名返回数据库表名ID

object_name() 根据ID返回数据库表名

col_name ( object_id , column_id )函数 :返回指定表中指定字段(列)的名称

2.2 mssql内置表

  1. sysdatabases:值存在master数据库,保存了所有的库名以及库的ID。name存放数据库名。
查询库名两种方式
select substring((select top 1 name from master.dbo.sysdatabases 
where name not in (select top 4 name from master..sysdatabases)),1,1);

select substring((select db_name()),1,1) 
  1. sysobjects:每个数据库都有此系统表,它存放该数据库内创建的所有对象

    1. Name:表示数据库对象名

    2. id:对象ID。每个表都唯一对应一个id

    3. xtype:对象类型

    4. uid:所有者对象的用户ID

    5. status:对象的状态。

      ype=‘U’ and status>0代表是用户建立的表,对象名就是表名,对象ID就是表的ID值。

查询表名两种方式
1. 根据内置函数---object_id() 根据表名返回数据库表名ID
2. 查表对应的id 
  1. syscolumns:位于每个数据库中。

    1. name:字段名称

    2. id:表ID号。表示表名,所有表名都用id表示

    3. colid:字段ID号(id是用sysobjects得到的表的id号)

    4. xtype=‘U’:代表是用户建立的表。在查询中,可以用xtype='U’做限制条件,只获取用户创建的表,这些表中的信息更敏感。

      ect name from syscolumns
      where id=(select id from 数据库名…sysobjects where name=‘表名’)
      – 常用语法

3.orcale数据库

  1. 没有数据库的概念
  2. 不同的用户,权限不一样,查询的表不一样

3.1 特殊表

dual表
user_tab
user_tab_columns

1. select banner from sys.v_$version where rownum=1
-- sys.v_$version 用来表示版本

2. select user from dual  
-- 找到当前用户名
3. select username from dba_users
-- 获取所有用户名

3.2 内置函数

mysqlmssqlorcale
length()len()length()
ascii(),char()char()ascii()
limit 0,1top 1rownum=1
substr()substring()substr()
group_concat()group_concat() (与group by联合使用)wm_concat()
SELECT student_id, GROUP_CONCAT(courses_id) AS courses 
FROM student_courses WHERE student_id=2 GROUP BY student_id

SELECT order_num, COUNT(*) AS items FROM OrderItems GROUP BY order_num HAVING COUNT(*) > 3;   //对某些符合的数据进行分组聚合,然后用having过滤

在这里插入图片描述

3.3 字符串拼接

  1. mysql—用concat(’’,‘abc’,’’)
  2. mssql— ‘a’+‘b’
  3. orcale— ‘a’||‘b’

标签:name,数据库,MSSQL,mssql,表名,报错,MYSQL,ID,id
来源: https://blog.csdn.net/weixin_46684578/article/details/118247048

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有