基础SQL-DQL语句-SELECT查询的简单使用以及IFNULL函数 分类 描述 关键字 DQL(Data Query Language)数据查询语言 (掌握) DQL语言并不是属于MYSQL官方的分类...,但是对数据库的操作最多就是查询,所以我们的程序员把查询语句的语句称作为DQL语言 SELECT 等 查询不会对数据库中的数据进行修改.只是一种显示数据的方式 1....简单查询 备用数据: ----------------运行下面的sql语句,生成相关的数据库表 # 创建商品表: CREATE TABLE product( pid INT, pname VARCHAR...字段名1 as 别名,字段名2 别名 from 表名 as 表别名; as关键字可以省去不写 -- 需求3.别名查询.使用的关键字是as(as可以省略的). -- 3.1表别名:查询商品名称和价格...如果想要计算,此时就需要使用 IFNULL 函数,判断当查询的值为 NULL,可以设置为 0 ,操作如下: select 列名1 + 固定值 from 表名; -- 需求:将所有商品的价格+10元进行显示
在本教程中,我们将学习: 什么是Python SQL注入以及如何防止注入 如何使用文字和标识符作为参数组合查询 如何安全地执行数据库中的查询 了解Python SQL注入 SQL注入攻击是一种常见的安全漏洞...使用fetchone()返回一个带有单个结果的元组。然后,将这个元组解压缩到变量admin中。...admin from users where username = ''; select true; --' 结果文本包含三个语句。...例如,如果大家在登录页面中使用此函数,则入侵者可以使用用户名'登录;选择正确的;,他们将被允许进入。 更可怕的是了解表结构的入侵者可以使用Python SQL注入来造成永久性损害。...我们对用户名参数了解多少?我们只知道它应该是一个表示用户名的字符串,但是我们实际上并没有检查或执行这个断言。这可能很危险!攻击者试图利用这些东西入侵我们的系统。
搜索模式(search pattern):由字面值、通配符或两者组合构成的搜索条件。 为在搜索子句中使用通配符,必须使用 LIKE 操作符。...BY cust_contact; 使用通配符的技巧 SQL 的通配符很有用,但这种功能是有代价的,即通配符搜索一般比前面讨论的其他搜索要耗费更长的处理时间。...这个返回供应商名称和地址的 SELECT 语句很简单,但我们是如何创建这个组合值的呢? 思路 解决办法是把两个列拼接起来。在 SQL 中的 SELECT 语句中,可使用一个特殊的操作符来拼接两个列。...根据你所使用的 DBMS ,此操作符可用加号(+)或两个竖杠(||)表示。Access 和 SQL Server 使用 + 号。...这可以使用 SQL 的 RTRIM() 函数来完成,如下所示: # 加号写法 SELECT RTRIM(vend_name) + ' (' + RTRIM(vend_country) + ')' FROM
4; 此 SQL 语句检索由供应商 DLL01 制造且价格小于等于 4 美元的所有产品的名称和价格。...此问题的解决方法是使用圆括号对操作符进行明确分组: SELECT prod_name, prod_price FROM Products WHERE (vend_id = 'DLL01' OR vend_id...搜索模式(search pattern)由字面值、通配符或两者组合构成的搜索条件。 通配符实际上是 SQL 的 WHERE 子句中有特殊含义的字符。...这样做一般对数据及其使用没有影响,但是可能对上述 SQL语句有负面影响。 子句WHERE prod_name LIKE 'F%y'只匹配以 F 开头以 y 结尾的 prod_name。...屏幕快照 2018-05-27 12.40.46.png 下面 SELECT 语句使用%通配符,返回三行产品: SELECT prod_id, prod_name FROM Products WHERE
为了明确地排序用select语句检索出来的数据,可使用order by子句取一个或者多个列的名字,来对输出结果进行排序。...笔记:由字面值、通配符或者两者组合构成的搜索条件。 为了在搜索子句中使用通配符,必须使用LIKE操作符 ⚠️通配符搜索只能用于文本字段(字符串),对于非文本数据类型不能使用通配符搜索。...要注意测试每个联结 十四、组合查询UNION 什么是组合查询 SQL允许执行多个查询(多条SELECT语句),并将结果作为一个查询结果集返回,这些组合通常称为并union或者复合查询;通常两种情况下需要使用组合查询...: 在一个查询中从不同的表返回结构数据 对一个表执行多个不同的查询,按照一个查询返回数据 创建组合查询 可以用UNION操作符来组合数条SQL查询。...ALL 实现 对组合结果进行排序 SELECT语句的输出用ORDER BY子句排序。
PgSQL 使用 Python 操作 PgSQL,需要先安装依赖包「 psycopg2 」 # 安装依赖包 pip3 install psycopg2 接下来,就可以使用 Python 来操作数据库了...2-1 数据库连接及游标对象 使用 psycopg2 中的「 connect() 」方法连接数据库,创建数据库连接对象及游标对象 import psycopg2 # 获得连接对象 # database...,进而操作数据库了 2-2 插入数据 首先,编写插入数据的 SQL 语句及参数( 可选 ) # 构建SQL语句 # 方式一:直带参数 sql = "INSERT INTO student (name...,条件查询与上面的插入操作类似,条件语句可以将参数分离出来 # 条件查询 SQL语句 sql = """SELECT * FROM student where id = %s;""" # 对应参数,...(datas) 2-4 更新数据 更新操作和上面操作一样,唯一不同的是,执行完 SQL 后,需要使用连接对象提交事务,才能将数据真实更新到数据库中 def update_one(conn, cursor
在实际操作数据库的时候,经常使用将update和select结合使用,例如使用select统计数据,然后update到对应的表,按照常规的实现方式,先select出来对应的数据,然后再执行update语句...先建两个测试表table1和table2,两个表的数据很简单,其记录条数分别为2和4,具体如下: 假如现在要统计table1的id对应在table2中有多少条记录,保存在total字段里,这是经常会遇到的需求...如果按照常规的实现,就会先用select语句从table2中统计好数值,然后再写一个update语句更新到table1中,更新语句还得循环。...这个过程还有很多问题,例如如果更新语句中,有些成功,有些失败,这时怎么处理,这是比较难搞的问题。 可以如下实现: 执行完成之后,table1中的total字段的值就会被改成2和4。...其实就是update可以和inner join联合使用,这样就可以使用另一个表的数据更新到当前的表。 这个很实用,只是以前一直没有注意。
SELECT 语句,无论是顶级语句还是嵌套子查询,包含了未与查询中的其他 FROM 元素连接的 FROM 元素,导致结果集中出现所谓的“笛卡尔积”,即每个未连接的 FROM 元素之间的所有可能组合的行...另请参阅 使用 raiseload 来防止延迟列加载 #4826 ### 使用 psycopg2 进行 ORM 批量插入现在在大多数情况下批量处理带有 RETURNING 的语句 psycopg2 方言特性的变化...另请参见 使用 raiseload 阻止延迟列加载 #4826 使用 psycopg2 进行 ORM 批量插入现在在大多数情况下批量执行带有 RETURNING 的语句 psycopg2 方言特性“execute_values...”默认使用 RETURNING 进行 INSERT 语句的更改在 Core 中添加了对“executemany” + “RETURNING”同时支持的功能,现在默认情况下为 psycopg2 方言启用了使用...这一变化的另一半是 ORM 批量插入现在在大多数情况下使用带有 RETURNING 的 psycopg2 批量语句,这使得 ORM 能够利用 executemany(即批量插入语句)的 RETURNING
1、安装 psycopg2 pip install psycopg2 -i https://pypi.tuna.tsinghua.edu.cn/simple 2、连接数据库 每条完整的sql执行步骤如下...语句 建表 sql ="""SELECT * FROM student;""" # 执行语句 cursor.execute(sql) # 抓取 row = cursor.fetchone() print...语句 建表 sql ="""SELECT * FROM student;""" # 执行语句 cursor.execute(sql) # 抓取 #row = cursor.fetchone() rows...语句 建表 sql ="""SELECT * FROM student where id = %s;""" params = (1,) # 执行语句 cursor.execute(sql,params)...# 事物提交 conn.commit() # 关闭数据库连接 cursor.close() conn.close() 8、异常处理 使用psycopg2的 Error 进行异常捕获,能捕获到sql执行时期的所有异常
案例:显示 hosts 表查询结果的前 3 行,SQL 语句和运行结果如下。...,SQL 语句和运行结果如下。...带有“%”通配符的查询 %”是 MySQL 中最常用的通配符,它能代表任何长度的字符串,字符串的长度可以为 0。例如,a%b表示以字母 a 开头,以字母 b 结尾的任意长度的字符串。...因为 MySQL 对通配符的处理一般会比其他操作符花费更长的时间。 在确定使用通配符后,除非绝对有必要,否则不要把它们用在字符串的开始处。把通配符置于搜索模式的开始处,搜索起来是最慢的。...SQL 语句和运行结果如下。
防止PythonSQL注入的关键是确保该值是不是我们的意愿使用。在前面的示例中,我们打算username用作字符串。实际上,它被用作原始SQL语句。...数据库适配器将变量视为字符串或文字,但是表名不是普通的字符串。所以这就是SQL组合的用武之地。 现在已经知道使用字符串插值表达式来编写SQL是不安全的。...首先,使用sql()来组合查询。然后,使用sql.Identifier()来注释参数值table_name。(标识符是列或表名。)...在接下来的步骤中,我们将使用这个异常来表明函数不会受到Python SQL注入攻击。 为了将它们放在一起,添加一个选项来将表中的行数计数到一定的限制, 这个特性对非常大的表很有用。...---- 新手python书籍推荐: ---- 学到的: 什么是Python SQL注入以及如何利用它 如何使用查询参数防止Python SQL注入 如何安全地编写使用文字和标识符作为参数的SQL语句
SQL DELETE 语句 SQL DELETE 语句用于删除表中的现有记录。 DELETE 语法 DELETE FROM 表名 WHERE 条件; 注意:在删除表中的记录时要小心!...Oracle 语法: SELECT column_name(s) FROM table_name WHERE ROWNUM <= number; 带有 ORDER BY 的旧版 Oracle 语法:...SQL Server / MS Access 的 SELECT TOP 选择 "Customers" 表的前 3 条记录: SELECT TOP 3 * FROM Customers; 使用 MySQL...的 LIMIT 以下 SQL 语句展示了 MySQL 的等效示例: 选择 "Customers" 表的前 3 条记录: SELECT * FROM Customers LIMIT 3; 使用 Oracle...FIRST 3 ROWS ONLY; 使用旧版 Oracle 的 ROWNUM 以下 SQL 语句展示了旧版 Oracle 的等效示例: 选择 "Customers" 表的前 3 条记录: SELECT
psycopg2的安装 安装方法1: 1)使用psycopg2-2.4.2.win-amd64-py2.7-pg9.0.4-release.exe安装,下载地址:http://vdisk.weibo.com...2.3)运行上边的代码,确认是否删除成功。 安装方法2: 使用.whl安装,下载地址:https://pypi.python.org/pypi/psycopg2/ ?...想要使用psycopg2,必须用import语句导入该包: import psycopg2 connection类 connection类表示数据库连接对象。...3 cursor.execute(sql [, optional parameters]) 此例程执行SQL语句。可被参数化的SQL语句(即占位符,而不是SQL文字)。...curosr.executemany(sql, seq_of_parameters) 该程序执行SQL命令对所有参数序列或序列中的sql映射。
在实际应用中,可以根据需要组合多个条件来实现更复杂的数据过滤。 使用逻辑运算符 逻辑运算符在SQL中用于结合多个条件,从而实现更复杂的条件过滤。...这对于需要排除特定情况的查询和更新操作非常有用。 1.3 模糊查询 使用 LIKE 匹配模式 LIKE 是 SQL 中用于匹配模式的关键字,通常与通配符一起使用。...% 和 _ 的使用 在 SQL 中,% 和 _ 是通配符,用于在 LIKE 操作符中进行模式匹配。它们分别表示不同的匹配规则: 描述示例%(百分号):% 通配符用于表示零个、一个或多个字符。...使用 wildcard 字符 在 SQL 中,通配符字符是用于进行模糊搜索和匹配的特殊字符。主要的通配符字符是 % 和 _,但有时候也提到了 [] 和 ^。...匹配不以 ‘A’ 或 ‘B’ 开头的字符串:SELECT * FROM products WHERE product_name LIKE '[^AB]%'; 这些通配符可以根据实际需求组合使用,提供更灵活的模糊搜索和匹配功能
使用频率最高的SQL语句应该就是select语句了,它的用途就是从一个或多个表中检索信息,使用select检索表数据必须给出至少两条信息:想选择什么,以及从什么地方选择 一、检索数据 1、检索单个列 select...SQL语句 SQL语句不区分大小写(对所有SQL关键字使用大写,对所有列和表明使用小写,这样更易于阅读和调试) 2、检索多个列 select column1,column2,column3 from table...通配符(wildcard):用来匹配值的一部分的特殊字符,利用通配符可以创建比较特定数据的搜索模式(实际上是SQL的where子句中带有特殊含义的字符) 搜索模式(search pattern):由字面值...、通配符或两者组合构成的搜索条件 为在搜索子句中使用通配符,必须使用like操作符;like指示MySQL后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较 1、百分号(%)通配符 在搜索串中,%表示任何字符出现任意次数...;通配符可以在搜索模式中任意位置使用,并且可以使用多个通配符 select column1, column2 from table where column1 like ‘test%’ 上面的SQL语句表示任意以
使用通配符的技巧 SQL的通配符很有用。...但这种功能是有代价的,即通配符搜索一般比前面讨论的其他搜索要耗费更长的处理时间。因此不要过度使用通配符。 在确实需要使用通配符时,也尽量不要把它们用在搜索模式的开始处。...带有文本值的 BETWEEN 操作符实例 下面的 SQL 语句选取 name 以介于 'A' 和 'H' 之间字母开头的所有网站: SELECT * FROM Websites WHERE name...对组合查询结果排序 SELECT 语句的输出用 ORDER BY 子句排序。...在用 UNION 组合查询时,只能使用一条ORDER BY 子句,它必须出现在最后一条SELECT语句之后 SELECT INTO 语句 我们可以复制所有的列插入到新表中: SELECT * INTO
每个SQL语句多有一个或者多个关键字组成,最经常使用的就是select关键字。它的用途是从一个或者多个表中检索出来信息。...下面关于SQL的语句做几点笔记: 多条SQL语句必须是以分号;结尾;如果是单条不加分号也是可以的,但是最好加上 SQL语句不区分大小写,即:SELECT和select是相同的。...为了明确地排序用select语句检索出来的数据,可使用order by子句取一个或者多个列的名字,来对输出结果进行排序。...笔记:由字面值、通配符或者两者组合构成的搜索条件。 为了在搜索子句中使用通配符,必须使用LIKE操作符 ⚠️通配符搜索只能用于文本字段(字符串),对于非文本数据类型不能使用通配符搜索。...使用子查询 任何SELECT语句都是查询,SQL还允许在查询中嵌套查询。
它的语句都是由简单的、具有描述性的英文单词组成的 3、SQL虽然简单,但是实际上是一种很强有力的语言,灵活使用去语言元素,可以进行复杂和高级的数据库操作 检索数据 本章中介绍的是如何使用select语句从表中检索一个或者多个数据列...每个SQL语句多有一个或者多个关键字组成,最经常使用的就是select关键字。它的用途是从一个或者多个表中检索出来信息。...下面关于SQL的语句做几点笔记: 多条SQL语句必须是以分号;结尾;如果是单条不加分号也是可以的,但是最好加上 SQL语句不区分大小写,即:SELECT和select是相同的。...为了明确地排序用select语句检索出来的数据,可使用order by子句取一个或者多个列的名字,来对输出结果进行排序。...笔记:由字面值、通配符或者两者组合构成的搜索条件。 为了在搜索子句中使用通配符,必须使用LIKE操作符 ⚠️通配符搜索只能用于文本字段(字符串),对于非文本数据类型不能使用通配符搜索。
Select查询 4.1 查询基础知识 查询是对存储在 SQL Server 中的数据的一种请求。...使用 SQL Server Management Studio 或 osql 实用工具的用户可发出 SELECT 语句。...SELECT 语句从 SQL Server 中检索出数据,然后以一个或多个结果集的形式将其返回给用户。结果集是对来自 SELECT 语句的数据的表格排列。与 SQL 表相同,结果集由行和列组成。...like通配符 使用通配符时应着重考虑对性能的影响。如果表达式以通配符开头,则无法使用索引。...从 SQL Server 2005 开始,SQL Server 允许在 FROM 子句中指定对 SELECT 列表中未指定的表中的列进行排序。
领取专属 10元无门槛券
手把手带您无忧上云