
数据库
爱橙子的OK绷
时刻准备着。。。
展开
-
MySQL正则表达式-使用REGEXP
建立数据库test以及compute_nodes表: 1、REGEXP的使用正则模式: (1)找出以“n”开头的hypervisor_hostname,使用“^”匹配hypervisor_hostname的开始: 将node03,node04修改为NODE03,NODE04: (2)若要区分大小写,可搭配BINARY关键字: (3)找出以“03”结尾的hypervisor_hostname原创 2016-12-18 20:25:48 · 850 阅读 · 0 评论 -
数据库完整性
关系完整性是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。完整性包括:1、域完整性:域完整性是保证数据库字段取值的合理性。包括限制类型(数据类型),格式(通过检查约束和规则),可能值范围(通过外键约束,检查约束,默认值定义,非空约束和规则),在当今的关系DBMS中,一般都有域完整性约束检查功能。也就是指列的值域的完整性,如数据类型、格式、值域范围、是否允许空值等等。2、实体原创 2016-03-17 17:51:42 · 800 阅读 · 0 评论 -
leetcode176---Second Highest Salary
一、问题描述: Write a SQL query to get the second highest salary from the Employee table.+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+For ex原创 2015-12-24 17:01:16 · 2433 阅读 · 2 评论 -
MySQL---IFNULL()函数用法
用法说明IFNULL(expr1,expr2)如果 expr1 不是 NULL,IFNULL() 返回 expr1,否则它返回 expr2。 IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。我们先举一些例子:mysql> SELECT IFNULL(1,0);+-------------+| IFNULL(1,0) |+-------------+|转载 2015-12-24 16:09:01 · 642 阅读 · 0 评论 -
leetcode175---Combine Two Tables(left join的使用)
Table: Person+-------------+---------+| Column Name | Type |+-------------+---------+| PersonId | int || FirstName | varchar || LastName | varchar |+-------------+---------+Person原创 2015-12-22 16:50:39 · 496 阅读 · 0 评论 -
删除重复记录的SQL语句
几个删除重复记录的SQL语句1.用rowid方法2.用group by方法3.用distinct方法1、用rowid方法据据oracle带的rowid属性,进行判断,是否存在重复,语句如下:查数据:select * from table1 a where rowid !=(select max(rowid) from table1 b where a.name1=b.name1 and a.转载 2015-11-16 09:33:48 · 600 阅读 · 0 评论 -
MySQL--- DDL、DML、DCL都包括那些语句?
1、DDL(data definition language):数据定义语言DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。常用的语句关键字包括:(1)CREATE(2)ALTER(3)DROP2、DML(data manipulation language):数据库操纵语言用于添加、删除、更新和查询数据库记录,并检查数据完整原创 2015-11-12 22:33:34 · 15673 阅读 · 1 评论 -
MySQL日期、时间转换函数---date_format、time_format
一、使用格式:(1)date_format(date,format)(2)time_format(time,format) 二、实例:原创 2015-11-12 15:56:54 · 2834 阅读 · 0 评论 -
mysql中的auto_increment的问题(MyISAM,InnoDB)
这是一道很早的面试题: 一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15 。 答案: 如果表的类型是MyISAM,那么是18。!!!!!! 因为MyISAM表会把自增主键的最大ID记录到数据文件里,重启MySQL自增主键的最大ID也不会丢失。 如果表的类型是InnoDB,转载 2015-11-12 15:14:30 · 1051 阅读 · 0 评论 -
MySQL数据库操作---group by、having、where、order by的使用
SUM函数用来求和、group by用来分组查询。一、建表、插入数据1、创建一个student表2、查看student表结构3、插入6条数据4、插入了6条数据后,我们可以发现自增数据(auto_increment)的默认值已变为7。二、操作实例1、给出各个部门最高分数的学生。 要想得到各个部门学生,首先就要分组,按照部门把他们分组,然后在各个部门中找到分数最高的就可以了。2、进一步,分数最高的必须原创 2015-11-12 11:55:07 · 6461 阅读 · 0 评论 -
数据库视图
什么是视图视图(view):从一个或几个基本表中根据用户需要而做成一个虚表。1、视图是虚表,它在存储时只存储视图的定义,而没有存储对应的数据2、视图只在刚刚打开的一瞬间,通过定义从基表中搜集数据,并展现给用户视图与查询的区别视图和查询都是用由sql语句组成,这是他们相同的地方,但是视图和查询有着本质区别:它们的区别在于:1、存储上的区别:视图存储为数据库设计的一部分,而查询则不是。2、更新限制的要求转载 2016-03-30 21:42:12 · 1401 阅读 · 0 评论 -
利用索引优化查询,提高效率
1、索引使用原则1、在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引。2、在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引。3、在条件表达式中经常用到的不同值较多的列上建立检索,在不同值少的列上不要建立索引。比如在雇员表的“性别”列上只有“男”与“女”两个不同值,因此就无必要建立索引。如果建立索引不但不会提高查询效率,反而会转载 2016-04-23 22:03:56 · 2379 阅读 · 0 评论 -
leetcode177-Nth Highest Salary(找出第n大的数据)
问题求解:Write a SQL query to get the nth highest salary from the Employee table.+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+For example,原创 2016-04-11 15:10:49 · 2357 阅读 · 0 评论 -
leetcode197-Rising Temperature
问题描述:Given a Weather table, write a SQL query to find all dates’ Ids with higher temperature compared to its previous (yesterday’s) dates.+---------+------------+------------------+| Id(INT) | Date(DA原创 2016-04-11 11:28:45 · 1521 阅读 · 0 评论 -
leetcode196-Delete Duplicate Emails(删除重复并且id较大的数据)
问题描述:Write a SQL query to delete all duplicate email entries in a table named Person, keeping only unique emails based on its smallest Id.+----+------------------+| Id | Email |+----+-----原创 2016-04-09 16:59:35 · 1723 阅读 · 0 评论 -
leetcode183-Customers Who Never Order
问题描述:Suppose that a website contains two tables, the Customers table and the Orders table. Write a SQL query to find all customers who never order anything.Table: Customers.+----+-------+| Id | Name原创 2016-04-08 14:53:26 · 703 阅读 · 0 评论 -
leetcode182-Duplicate Emails(找出出现重复的数据)
问题描述:Write a SQL query to find all duplicate emails in a table named Person.+----+---------+| Id | Email |+----+---------+| 1 | a@b.com || 2 | c@d.com || 3 | a@b.com |+----+---------+For exa原创 2016-04-08 11:31:29 · 974 阅读 · 0 评论 -
leetcode181-Employees Earning More Than Their Managers
问题描述:The Employee table holds all employees including their managers. Every employee has an Id, and there is also a column for the manager Id.+----+-------+--------+-----------+| Id | Name | Salary |原创 2016-04-08 11:07:12 · 360 阅读 · 0 评论 -
MySQL基本操作(六):建表,插入多条记录,更新表中特定数据
代码如下:#! /usr/bin/env python#coding=utf-8import MySQLdb#create HostCluster database firstdef CreateHostTable(): conn = MySQLdb.connect(host = "localhost", user = "root", passwd = "111111", db = "H原创 2016-02-18 19:36:26 · 953 阅读 · 0 评论 -
数据库引擎
数据库引擎介绍MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MYSQL。在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。如果技术高超,还可以使用MySQL+API自己做一个引擎。下面介绍几种数据库引擎:ISAMISAM是一个定义明确且历经时间考验的数据表格管转载 2016-04-04 19:09:41 · 372 阅读 · 0 评论 -
MySQL基本操作(五)
数据库中有一EMPLOYEE表,对其进行操作。 1、插入记录 2、找出EMPLOYEE表中INCOME最小的数,不能使用min函数 3、找出EMPLOYEE表中INCOME最小的数,可以使用min函数 4、选择EMPLOYEE表中在某一属性上重复的记录(分别按AGE和INCOME) 5、复制表结构及数据到新表CREATE TABLE 新表 SELECT * FROM 旧表6、复制表结构及数原创 2015-11-11 16:15:59 · 328 阅读 · 0 评论 -
MySQL数据分页查询---limit、order by的使用
数据分页查询方面,mysql中没有top,替而代之的是limit关键字。对于EMPLOYEE表如下: 插入两条记录: 一、limit的使用1、取前4条数据或者:2、从第2条开始,一共取4条数据(取第2到第5条)二、limit与order by结合使用1、取出第2到第5条以income排序(默认升序)2、取出第2到第5条以income降序排序原创 2015-11-11 16:55:07 · 2674 阅读 · 0 评论 -
MySQL---外键的用法
可以利用外键创建两个关联的表,代码如下:#!/usr/bin/python# encoding: utf-8import MySQLdb#功能:建数据库和表# 打开数据库连接conn = MySQLdb.connect(host="localhost", user="root", passwd="111111", db="testalchemy")# 使用cursor()方法获取操作游标c原创 2015-09-16 15:59:33 · 1261 阅读 · 0 评论 -
SQLAlchemy---数据库查询
关键词:query() 、filter() 对于之前建好的user表 可以利用以下代码实现查询:#!/usr/bin python#encoding:utf8# 导入:from sqlalchemy import Column, String, create_enginefrom sqlalchemy.orm import sessionmakerfrom sqlalchemy.ex原创 2015-09-16 15:52:55 · 1368 阅读 · 0 评论 -
SQLAlchemy---ORM技术
数据库表是一个二维表,包含多行多列。把一个表的内容用Python的数据结构表示出来的话,可以用一个list表示多行,list的每一个元素是tuple,表示一行记录,比如,包含id和name的user表:[ ('1', 'Michael'), ('2', 'Bob'), ('3', 'Adam')]Python的DB-API返回的数据结构就是像上面这样表示的。但是用tuple原创 2015-09-14 21:40:34 · 591 阅读 · 0 评论 -
SQLAlchemy---操作数据库实例
使用SQLAlchemy可以对原有数据库进行操作,便于管理。1、首先,新建数据库名字为testalchemycreate database testalchemy;2、利用sql语句创建数据表:#!/usr/bin/python# encoding: utf-8import MySQLdb# 打开数据库连接conn = MySQLdb.connect(host="localhost", us原创 2015-09-14 21:00:28 · 3503 阅读 · 0 评论 -
MySQL的UUID()和CAST()函数
一、UUID()UUID()函数返回一个在时间和空间上都独一无二的字符串。 分析: 得到的随机值由5个部分组成,且分隔符位为:中划线 前三组值是时间戳换算过来的 第四组值是暂时性保持时间戳的唯一性。例如,使用夏令时。 第五组值是一个IEE 802的节点标识值,它是空间上唯一的。若后者不可用,则用一个随机数字替换。假如主机没有网卡,或者我们不知道如何在某系统下获得机器地址,则空间唯一性就不能原创 2015-09-01 10:53:30 · 789 阅读 · 0 评论 -
MySQL基本操作(三):全文本搜索
1、MyISAM支持全文本搜索,而InnoDB不支持。因此要在创建表的时候,加上engine=MyISAM;2、一般在创建表时启用全文本搜索。在定义之后,MySQL自动维护该索引。在增加、更新或删除行时,索引随之自动更新。3、不要在导入数据时使用FULLTEXT4、建表并导入数据(1)建表如图 (2)导入数据如图 (3)代码如下#!/usr/bin/python# encoding: utf-原创 2015-08-31 09:38:17 · 786 阅读 · 0 评论 -
MySQL基本操作(四):运算符
一、算术运算符1、加、减、乘、除 2、取商 3、取余 二、比较运算符1、等于 2、不等于 3、安全等于 与“=”的区别在于当两个操作码均为NULL时,其所得值为1而不为NULL,而当一个操作码为NULL时,其所得值为0而不为NULL。4、此外还有 “<”,”<=”,”>”,”>=”5、BETWEEN 6、IN 同理,可知NOT IN.7、IS NULL 同理,可知I原创 2015-09-01 09:59:27 · 505 阅读 · 0 评论 -
MySQL基本操作(三):字符集
MySQL的字符集支持有两个方面:字符集(Character set)和排序方式(Collation)。一、查看字符集的基本操作方法:1、查看MySQL数据库服务器和数据库字符集 2、查看MySQL数据表(table)的字符集 3、查看MySQL数据列(column)的字符集 二、设置及修改字符集1、创建数据库指定数据库的字符集 mysql> create database原创 2015-08-31 20:36:57 · 445 阅读 · 0 评论 -
MySQL基本操作(二)
1、创建、删除数据库命令:create database db; 描述:db可以替换为要建立数据库的名称。 命令:drop database db; 描述:该命令彻底删除名称为db的数据库,所以切记谨慎使用。 2、查看数据库名称命令:select database(); 描述:查看当前正在使用的数据库名称 3、查看当前系统状态命令:select now(); 描述:得知现在的日期和时间原创 2015-08-29 15:28:53 · 380 阅读 · 0 评论 -
SQLAlchemy (一)---创建表、插入数据、查询
一、创建数据库表格建立Python文件alchemy5.py,代码如下:#!/usr/bin/ python#encoding:utf8from sqlalchemy import *from sqlalchemy.orm import *#from sqlalchemy.ext.declarative import declarative_base#功能:创建数据库表格,初始化数据库#定义引原创 2015-09-16 21:28:32 · 20435 阅读 · 0 评论 -
SQLAlchemy (二)---创建映射
建立Python文件alchemy9.py,代码如下:#!/usr/bin/ python#encoding:utf8from sqlalchemy import *from sqlalchemy.orm import *#alchemy5实现创建数据库表格功能from alchemy5 import *#功能:为数据表创建映射class User(object): def __rep原创 2015-09-17 21:10:34 · 936 阅读 · 0 评论 -
聚集索引与非聚集索引
一、聚集索引概念汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字;同样的,如果查“张”字,那您也会将您的字典翻到最后部分,因为“张”的拼音是“zhan转载 2015-11-11 10:24:25 · 553 阅读 · 0 评论 -
什么叫做SQL注入式攻击?如何防范?
所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域页面请求的查询字符串中,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。防范SQL注入式攻击闯入:只要在利用表单输入的内容构造SQL命令之前,把所有输入内容过滤一番就可以了。 过滤输入内容可以按多种方式进行。转载 2015-11-10 17:39:11 · 763 阅读 · 0 评论 -
触发器以及事前触发和事后触发,语句级触发和行级触发
一、触发器概念触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件(增、删、改)进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。触发器是在对表进行增、删、改时,自动执行的存储过程。触发器常用于强制业务规则,它是一种高级约束,通过事件进行触发而被执行。二、触发器分类SQL Server 包括两种常规类型的触发器:数据操作语言 (DML) 触发器和数据原创 2015-11-09 22:09:56 · 4829 阅读 · 0 评论 -
数据库游标
一、什么是游标?是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。每个游标区都有一个名字。用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标充当指针的作用。尽管游标能遍历结果中的所有行,但它一次只指向一行。游标提供了在逐行的基础上操作表中数据的方法。游标总是与一条SQL 选择语句相关联因为游标原创 2015-11-09 13:55:15 · 465 阅读 · 0 评论 -
数据库存储过程及其与函数区别
一、存储过程的概念存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集。经编译后存储在数据库中。存储过程是数据库中的一个重要对象,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是由 流控制 和 SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中。存储过程 可由应用程序通过一个调用来执行,而且允许用户声明变量。同时,存储过程可转载 2015-11-06 22:54:22 · 2434 阅读 · 0 评论 -
数据库事务
一、概述数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。 是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。简单地说,事务是转载 2015-11-06 23:34:56 · 398 阅读 · 0 评论 -
MySQL基本操作(一)
1、创建用户CREATE USER 'username'@'host' IDENTIFIED BY 'password';说明: Username:所创建的用户名 host:指定该用户在哪个主机上可以登陆,本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可使用通配符% password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器注:创建用户时原创 2015-09-18 11:36:37 · 501 阅读 · 0 评论