last

mysql数据库技术1——基本的增删查改的sql语句

爱⌒轻易说出口 提交于 2020-02-12 12:39:02
1、数据库语言的分类 DDL:数据库定义语言 data Definition language 用于创建、修改、和删除数据库内的数据结构,如: 1:创建和删除数据库(CREATE DATABASE || DROP DATABASE); 2:创建、修改、重命名、删除表(CREATE TABLE || ALTER TABLE|| RENAME TABLE||DROP TABLE,TRUNCATE TABLE); 3:创建和删除索引(CREATEINDEX || DROP INDEX) DML:数据操控语言 data Manipulation language 修改数据库中的数据,包括插入(INSERT)、更新(UPDATE)和删除(DELETE) DCL:数据控制语言 (管理用户权限)data Control language 用于对数据库的访问,主要包括创建用户、给用户授权、对用户撤销授权、查询用户授权和删除用户等 ,如:1.创建用户(create user)2:给用户授予访问权限(GRANT);3:取消用户访问权限(REMOKE),4删除用户(drop user)。 DQL:数据查询语言 data Query language 从数据库中的一个或多个表中查询数据(SELECT) 下面一一来介绍这四种类型的语言 2、DDL:数据库定义语言 data Definition

Mysql 基础(三)排序查询及常用函数

冷暖自知 提交于 2020-02-10 18:20:06
Mysql基础(三) 进阶三: 排序查询: 语法: select 查询列表 from 表 【where 筛选条件】 order by 排序的字段|表达式|函数|别名 【asc|desc】 特点: ​ 1、asc代表的是升序,desc代表的是降序,如果不写,默认是升序 ​ 2、order by 子句中可以支持多个字段,多个字段、表达式、函数、别名 ​ 3、order by 子句一般是放在查询语句的最后面,limit子句除外 语句执行顺序是: ​ 1、from 表 2、where 筛选条件、3、select 查询、4、order by 排序 #案例一:查询员工信息,要求工从高到低排序 SELECT * FROM employees ORDER BY salary DESC; #如果不写 ASC 或DESC,默认是升序 SELECT * FROM employees ORDER BY salary; #案例二【添加筛选条件】:查询部门编号>=90的员工信息,按入职时间的先后排序 SELECT * FROM employees WHERE department_id>=90 ORDER BY hiredate ASC; #案例三【按表达式排序】:按年薪的高低显示员工的信息和年薪 SELECT *,salary*12*(1+IFNULL(commission_pct,0)) 年薪 FROM

MySQL索引策略及优化

别说谁变了你拦得住时间么 提交于 2020-02-10 16:38:04
MySQL的优化主要分为结构优化(Scheme optimization)和查询优化(Query optimization)。本章讨论的高性能索引策略主要属于结构优化范畴。本章的内容完全基于上文的理论基础,实际上一旦理解了索引背后的机制,那么选择高性能的策略就变成了纯粹的推理,并且可以理解这些策略背后的逻辑。 1. 示例数据库 为了讨论索引策略,需要一个数据量不算小的数据库作为示例。本文选用MySQL官方文档中提供的示例数据库之一:employees。这个数据库关系复杂度适中,且数据量较大。下图是这个数据库的E-R关系图(引用自MySQL官方手册): MySQL官方文档中关于此数据库的页面为 http://dev.mysql.com/doc/employee/en/employee.html 。里面详细介绍了此数据库,并提供了下载地址和导入方法,如果有兴趣导入此数据库到自己的MySQL可以参考文中内容。 2. 最左前缀原理与相关优化 高效使用索引的首要条件是知道什么样的查询会使用到索引,这个问题和B+Tree中的“最左前缀原理”有关,下面通过例子说明最左前缀原理。 这里先说一下联合索引的概念。在上文中,我们都是假设索引只引用了单个的列,实际上,MySQL中的索引可以以一定顺序引用多个列,这种索引叫做联合索引,一般的,一个联合索引是一个有序元组<a1, a2, …, an>

[LeetCode]58、Length of Last Word

霸气de小男生 提交于 2020-02-10 09:19:46
题目描述: Given a string s consists of upper/lower-case alphabets and empty space characters ' ' , return the length of last word in the string. If the last word does not exist, return 0. Note: A word is defined as a character sequence consists of non-space characters only. Example: Input: "Hello World" Output: 5 思路: 给一个字符串,判定最后一个单词的字母的个数。可以从后往前计数,直到遇见空格为止。 预处理:先把字符串后面的空格都去掉: 先用length表示s的长度-1,判定这个s.charAt(length)是否等于空格,即最后一位是否为空格,如果是length--,然后继续判断,直到不是空格开始计数。 从i=length开始,i递减遍历s,如果等于空格则break,如果不等则count++ 返回count即可 1 public class Solution58 { 2 public int lengthOfLastWord(String s){ 3 int count = 0

PHP取得URL的根域名

对着背影说爱祢 提交于 2020-02-09 18:07:58
<? php /* * * 取得根域名 * * @author lonely * @create 2011-3-11 * @version 0.11 * @lastupdate lonely * @package Sl */ class RootDomain{ private static $self ; private $domain = null ; private $host = null ; private $state_domain ; private $top_domain ; /* * * 取得域名分析实例 * Enter description here ... */ public static function instace(){ if ( ! self :: $self ) self :: $self = new self(); return self :: $self ; } private function __construct(){ $this -> state_domain = array ( ' al ' , ' dz ' , ' af ' , ' ar ' , ' ae ' , ' aw ' , ' om ' , ' az ' , ' eg ' , ' et ' , ' ie ' , ' ee ' , ' ad ' , ' ao ' , ' ai

leetcode-744-Find Smallest Letter Greater Than Target(改进的二分查找)

与世无争的帅哥 提交于 2020-02-09 07:34:35
题目描述: Given a list of sorted characters letters containing only lowercase letters, and given a target letter target , find the smallest element in the list that is larger than the given target. Letters also wrap around. For example, if the target is target = 'z' and letters = ['a', 'b'] , the answer is 'a' . Examples: Input: letters = ["c", "f", "j"] target = "a" Output: "c" Input: letters = ["c", "f", "j"] target = "c" Output: "f" Input: letters = ["c", "f", "j"] target = "d" Output: "f" Input: letters = ["c", "f", "j"] target = "g" Output: "j" Input: letters = ["c", "f", "j"] target = "j"

nginx 地址对齐(ngx_align_ptr)

本小妞迷上赌 提交于 2020-02-08 23:05:38
内存池,要在大块连续内存上,分配小块内存,指向小内存块的地址是否对齐,对系统性能有一定影响:因为 cpu 从主存上读取数据很慢的,合理的地址对齐可以减少访问次数,提高访问效率。看看 nginx 的[内存池地址对齐操作: // p 是内存指针,a 是对齐字节数 # define ngx_align_ptr(p, a) \ (u_char *) (((uintptr_t) (p) + ((uintptr_t) a - 1)) & ~((uintptr_t) a - 1)) 该宏的原理详细证明,请参考 《高效算法的奥秘》(第二版)第三章 2 的幂边界 当 $ a = 2^n$ 时, ~((uintptr_t) a - 1)) 的 64 位二进制数,最右边 n n n 位数是 0。所以 x & ~((uintptr_t) a - 1)) 能被 2 n 2^n 2 n 整除。 a 对齐字节数 2 的幂 64位二进制 1 2 0 2^0 2 0 1111111111111111111111111111111111111111111111111111111111111111 2 2 1 2^1 2 1 1111111111111111111111111111111111111111111111111111111111111110 4 2 2 2^2 2 2

LinkedList 源码解析

穿精又带淫゛_ 提交于 2020-02-08 20:24:00
LinkedList 适用于集合元素先入先出和先入后出的场景,在队列源码中被频繁使用,面试也经常问到,本小节让我们通过源码来加深对 LinkedList 的了解。 1 整体架构 LinkedList 底层数据结构是一个双向链表,整体结构如下图所示: 上图代表了一个双向链表结构,链表中的每个节点都可以向前或者向后追溯,我们有几个概念如下 : 链表每个节点我们叫做 Node,Node 有 prev 属性,代表前一个节点的位置,next 属性,代表后一个节点的位置; first 是双向链表的头节点,它的前一个节点是 null。 last 是双向链表的尾节点,它的后一个节点是 null; 当链表中没有数据时,first 和 last 是同一个节点,前后指向都是 null; 因为是个双向链表,只要机器内存足够强大,是没有大小限制的。 链表中的元素叫做 Node,我们看下 Node 的组成部分: private static class Node < E > { E item ; // 节点值 Node < E > next ; // 指向的下一个节点 Node < E > prev ; // 指向的前一个节点 // 初始化参数顺序分别是:前一个节点、本身节点值、后一个节点 Node ( Node < E > prev , E element , Node < E > next ) {

视图

痞子三分冷 提交于 2020-02-08 18:35:34
一、基本概念: 虚拟表,和普通表一样使用; mysql5.1版本出现的新特性,是通过表动态生成的数据; 只保存了sql逻辑,不保存查询结果。 比如: 舞蹈班(视图)和普通班级(普通表)的对比。 创建表和视图的对比: 创建语法的关键字 是否实际占用物理空间 使用 视图 create view 只是保存了sql逻辑 增删改查,只是一般不能增删改 表 create table 保存了数据 增删改查 应用场景 多个地方用到同样的查询结果; 该查询结果使用的sql语句较复杂; 案例:查询姓张的学生名和专业名 SELECT stuname , majorname FROM stuinfo s INNER JOIN major m ON s . ` majorid ` = m . ` id ` WHERE s . ` stuname ` LIKE '张%' ; CREATE VIEW v1 AS SELECT stuname , majorname FROM stuinfo s INNER JOIN major m ON s . ` majorid ` = m . ` id ` ; SELECT * FROM v1 WHERE stuname LIKE '张%' ; 二、创建视图 2.1、语法: create view 视图名 as 查询语句 ; 2.2、案例 USE myemployees ;

刷题34. Find First and Last Position of Element in Sorted Array

六眼飞鱼酱① 提交于 2020-02-08 09:04:07
一、题目说明 题目是34. Find First and Last Position of Element in Sorted Array,查找一个给定值的起止位置,时间复杂度要求是Olog(n)。题目的难度是Medium! 二、我的解答 这个题目还是二分查找(折半查找),稍微变化一下。target==nums[mid]后,需要找前面、后面的值是否=target。 一次写出来,bug free,熟能生巧!怎一个爽字了得! #include<iostream> #include<vector> using namespace std; class Solution{ public: vector<int> searchRange(vector<int>& nums, int target){ vector<int> res; if(nums.size()<1){ res.push_back(-1); res.push_back(-1); return res; } int begin = 0; int end = nums.size()-1; int mid = -1; while(begin <= end){ mid = (begin + end) / 2; if(nums[mid] == target){ begin = mid; while(begin>0 && nums