sql语言

sql注入基础讲解

前提是你 提交于 2020-01-23 03:30:00
一,sql注入的本质 SQL注入能使攻击者绕过认证机制,完全控制远程服务器上的数据库。 SQL是结构化查询语言的简称,它是访问数据库的事实标准。目前,大多数Web应用都使用SQL数据库来存放应用程序的数据。几乎所有的Web应用在后台 都使用某种SQL数据库。跟大多数语言一样,SQL语法允许数据库命令和用户数据混杂在一起的。如果开发人员不细心的话,用户数据就有可能被解释成命令, 这样的话,远程用户就不仅能向Web应用输入数据,而且还可以在数据库上执行任意命令了。 注入攻击的本质是:把用户输入的数据当作代码执行。 注入的两个关键条件: 1,用户能控制输入。 2,原本程序要执行的代码,拼接了用户输入的数据。 sql注入就是在自带的系统数据库中查询库,表,字段,内容的过程 mysql内置自带库版本>=5 mysql库 保存账户信息,权限信息,存储过程,event,时区等信息 sys库包含了一系列存储过程,自定义函数以及视图来帮助我们快速了解系统的元数据信息 performance_schema库用于收集数据库服务器的性能参数 information_schema库存储了关于mysql服务器维护的所有其他数据库的信息,如数据库,表,表的数据类型与访问权限等。 查询数据库名称语句 select schema_name from information_schema.schemata 查表

SQL Server 2008 geometry 数据类型

折月煮酒 提交于 2020-01-23 02:33:40
原文: SQL Server 2008 geometry 数据类型 摘自SQL Server 2008帮助 平面空间数据类型 geometry 是作为 SQL Server 中的公共语言进行时 (CLR) 数据类型实现的。此类型表示欧几里得(平面)坐标系中的数据。 注册 geometry 类型 geometry 类型已进行预定义,并可在每个数据库中使用。您可以创建 geometry 类型的表列并对 geometry 数据进行操作,就像使用其他 CLR 类型一样。 示例 以下两个示例显示了如何添加和查询几何图形数据。第一个示例创建了带有标识列和 geometry 列 GeomCol1 的表。第三列将 geometry 列呈现为其开放地理空间联盟 (OGC) 熟知文本 (WKT) 表示形式,并使用 STAsText() 方法。接下来将插入两行:一行包含 geometry 类型的 LineString 实例,一行包含 Polygon 实例。 IF OBJECT_ID ( 'dbo.SpatialTable', 'U' ) IS NOT NULL DROP TABLE dbo.SpatialTable; GO CREATE TABLE SpatialTable ( id int IDENTITY (1,1), GeomCol1 geometry, GeomCol2 AS GeomCol1

Go Web 编程之 数据库

痞子三分冷 提交于 2020-01-22 11:14:35
概述 数据库用来存储数据。只要不是玩具项目,每个项目都需要用到数据库。现在用的最多的还是 MySQL, PostgreSQL 的使用也在快速增长中。在 Web 开发中,数据库也是必须的。本文将介绍如何在 Go 语言中操作数据库,基于 MySQL。本文假定大家已经掌握了数据库和 MySQL 的基础知识。关于 MySQL 有一个非常详细的免费教程我放在 参考 中了,需要的自取。 Go 语言标准库 database/sql 只是提供了一组查询和操作数据库的接口,没有提供任何实现。在 Go 中操作数据库只能使用第三方库。各种类型的数据库都有对应的第三方库。Go 中支持 MySQL 的驱动中最常见的是 go-sql-driver/mysql 。该库支持 database/sql ,全部采用 go 实现。 数据库操作 准备工作 创建一个数据库 department ,表示公司中的某个部门。在该库中创建两张表 employees 和 teams 。 employees 记录员工信息, teams 记录小组信息。每个员工都属于一个小组,每个小组都有若干名员工。 SET NAMES utf8mb4; CREATE DATABASE IF NOT EXISTS `department` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE

SQL Server2008从入门到精通pdf

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-22 10:38:08
下载地址: 网盘下载 内容介绍 编辑 《SQL Server 从入门到精通》从初学者的角度出发,通过通俗易懂的语言、丰富多彩的实例,详细地介绍了SQLServer2008开发应该掌握的各方面技术。全书共分15章,包括数据库基础、初识SQLServer2008、管理SQLServer2008、创建与管理数据库、操作数据表与视图、维护SQLServer2008、T—SQL概述、SQL数据语言操作、SQL数据查询、存储过程和触发器、索引与数据完整性、游标的使用、SQL函数的使用、SQL中的事务、基于C#的企业ERP管理系统。书中所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,可以使读者轻松领会SQLServer2008的精髓,快速提高开发技能。   第1篇 基 础 知 识   第1章 数据库基础 3   视频讲解:25分钟   1.1 数据库系统简介 4   1.1.1 数据库技术的发展 4   1.1.2 数据库系统的组成 4   1.2 数据库的体系结构 5   1.2.1 数据库三级模式结构 5   1.2.2 三级模式之间的映射 5   1.3 数据模型 6   1.3.1 数据模型的概念 6   1.3.2 常见的数据模型 6   1.3.3 关系数据库的规范化 7   1.3.4 关系数据库的设计原则 7   1.3.5 实体与关系 8   1.4

SQL SERVER 2005中的Schema详解

徘徊边缘 提交于 2020-01-21 05:48:08
以往 SQL Server 内的对象命名是“服务器.数据库.用户名.对象”,但新版的对象命名改为“服务器.数据库.Schema.对象”。这让你规划数据库对象命名时更有弹性。 架构是形成单个命名空间的数据库实体的集合。命名空间是一个集合,其中每个元素的名称都是唯一的。 虽然 SQL Server 2000 包含 CREATE SCHEMA 语句,但实际上并不会像上面所定义的那样创建架构。在 SQL Server 2000 中,数据库用户和架构是隐式连接在一起的。每个数据库用户都是与该用户同名的架构的所有者。对象的所有者在功能上与包含它的架构所有者相同。因而,SQL Server 2000 中的完全限定名称的“架构”也是数据库中的用户。因此,从 SQL Server 2000 数据库中删除用户之前,管理员需要删除该用户所拥有的所有对象或更改这些对象的所有者。以包含此对象的 SQL Server 2000 数据库为例: accounting.ap.george.reconciliation 此对象的所有者为用户“george”。如果管理员需要删除用户“george”,则必须先删除此对象或更改此对象的所有者。在后一种情况下,可以按如下方式将其重命名: accounting.ap.sandra.reconciliation 转让对象的所有权也会更改其完全限定名称。引用 accounting

MySQL SQL优化

匆匆过客 提交于 2020-01-20 15:47:38
SQL优化大全 索引优化 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=0 3.应尽量避免在 where 子句中使用!=或<>操作符,否则引擎将放弃使用索引而进行全表扫描。 4.应尽量避免在 where 子句中使用or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num=10 or num=20可以这样查询:select id from t where num=10 union all select id from t where num=20 http://5.in 和 not in 也要慎用,否则会导致全表扫描,如:select id from t where num in(1,2,3) 对于连续的数值,能用 between 就不要用 in 了:select id from t where num between 1 and 3 6

SQL-基本语法

寵の児 提交于 2020-01-20 12:11:47
SQL语句:关键词、表名和列名等组合而成的一条语句 三种SQL语句种类: (1)DDL(数据定义语言):创建、删除或修改数据库以及数据库中的表等对象。 ①CREATE:创建数据库和表等对象 ②DROP:删除数据库和表等对象 ③ALTER:修改数据库和表对象 (2)DML(数据操作语言):查询或修改表中的记录。 ①SELECT:查询表中的数据 ②INSERT:向表中插入数据 ③UPDATE:修改表中的数据 ④DELETE:删除表中的数据 (3)DCL(数据控制语言):确定或取消对数据库中的数据变更的执行操作,以及对用户的操作数据库中的对象权限进行设定。 基本SQL语法(1) 创建数据库: CREATE DATABASE db_name CHARSET=UTF8; 选择数据库: USE db_name; 创建表: CREATE TABLE table_name( Col1_name type(len) not null PRIMARY KEY, )CHAERSET=UTF8; 删除数据库: DROP DATABASES db_name; 删除表: DROP TABLE table_name;   基本SQL语法(2) 插入数据: 1、INSERT INTO 表名称 VALUES (值1, 值2,…) 2、INSERT INTO table_name (列1, 列2,…) VALUES

SQL语句映射文件(1)resultMap

99封情书 提交于 2020-01-20 08:47:45
SQL 映射XML 文件是所有sql语句放置的地方。需要定义一个workspace,一般定义为对应的接口类的路径。写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用,例如: Xml代码 <mappers> <mapper resource="com/liming/manager/data/mappers/UserMapper.xml" /> <mapper resource="com/liming/manager/data/mappers/StudentMapper.xml" /> <mapper resource="com/liming/manager/data/mappers/ClassMapper.xml" /> <mapper resource="com/liming/manager/data/mappers/TeacherMapper.xml" /> </mappers> 当Java接口与XML文件在一个相对路径下时,可以不在myBatis配置文件的mappers中声明。 SQL 映射XML 文件一些初级的元素: 1. cache – 配置给定模式的缓存 2. cache-ref – 从别的模式中引用一个缓存 3. resultMap – 这是最复杂而却强大的一个元素了,它描述如何从结果集中加载对象 4. sql –

存储过程详解

有些话、适合烂在心里 提交于 2020-01-20 06:43:46
存储过程简介 什么是存储过程 :存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。 存储过程的好处 : 1.由于数据库执行动作时,是先编译后执行的。然而存储过程是一个编译过的代码块,所以执行效率要比T-SQL语句高。 2.一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率。 3.通过存储过程能够使没有权限的用户在控制之下间接地存取数据库,从而确保数据的安全。 小结:总之存储过程是好东西,在做项目时属于必备利器,下面介绍存储过程的基本语法。 存储过程的语法和参数讲解 存储过程的一些基本语法: --------------创建存储过程----------------- CREATE PROC [ EDURE ] procedure_name [ ; number ] [ { @parameter data_type } [ VARYING ] [ = default ] [ OUTPUT ] ] [ ,...n ] [ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS

MyBatis学习 之 二、SQL语句映射文件(1)resultMap

江枫思渺然 提交于 2020-01-20 06:42:49
二、SQL语句映射文件(1)resultMap SQL 映射XML 文件是所有sql语句放置的地方。需要定义一个workspace,一般定义为对应的接口类的路径。写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用,例如: Xml代码 < mappers > < mapper resource = "com/liming/manager/data/mappers/UserMapper.xml" /> < mapper resource = "com/liming/manager/data/mappers/StudentMapper.xml" /> < mapper resource = "com/liming/manager/data/mappers/ClassMapper.xml" /> < mapper resource = "com/liming/manager/data/mappers/TeacherMapper.xml" /> </ mappers > 当Java接口与XML文件在一个相对路径下时,可以不在myBatis配置文件的mappers中声明。 SQL 映射XML 文件一些初级的元素: 1. cache – 配置给定模式的缓存 2. cache-ref – 从别的模式中引用一个缓存 3. resultMap –