`
pxchen
  • 浏览: 85194 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
USE DATABASE -- 使用数据库
CURRENT_DATE --当前日期
CURRENT_TIME --当前时间
SHOW DATABASES --显示数据库
SHOW TABLES --显示表
DESCRIBE 表名 --显示表结构
LOAD DATA LOCAL INFILE 文件路径 INTO TABLE 表  LINES TERMINATED '\r\n' --把本地文件导入table,字段之间用tab分开
AND优先级大于OR
SELECT DISTINCT 字段 FROM 表 -- 查询唯一
SELECT * FROM 表 ORDER BY 字段一 ASC,字段二 DESC --按字段一升序,字段二降序
YEAR() 年份 MONTH DAYOFMONTH HOUR MINUTE SECOND依次 DATE()当前年月日 TIME()当前时分秒 NOW()当前详细时间CURDATE()当前年月日CURTIMR()当前时分秒
RIGHT(字段,N) --返回字段右侧N个字符LEFT依次
返回BOOLEAN型的表达式 true返回1 false返回0(可以进行加减等数学运算)
IS NULL IS NOT NULL--为空非空
DATE_ADD(CURDATE(), INTERVAL 1 MONTH) --在当前日期上加一个月.可用于全部日期函数,可以为负数
MOD(bar,n) --返回bar按n取模
REGEXP -- 正则匹配
COUNT() GROUP BY--1:仅查询总数不需gb 2:select的其他字段必须group by,可复数
联合查询可以同一个表 from table t1,table t2 where t1.id = t2.id
SELECT DATABASE();查询当前使用的数据库名
SHOW INDEX FROM 表 --返回表 的索引(index)
MAX() 最大值 可以GROUP BY; SELECT * FROM 表 B1 WHERE 字段=(SELECT MAX(字段) FROM 表 B2 WEHRE B1=B2)查询最大值所在的列 ,最小值MIN()依次
使用用户变量@A SELECT @A:=MIN(字段) ,@B:=MAX(字段) FROM 表;SELECT * FROM 表 WHERE 字段=@A OR 字段=@B
创建表时数值型字段:AUTO_INCREMENT 自动增长 UNSIGNED 无符号/未签署(非负) ZEROFILL 零填充 前面不足空位用0补足 ,如001
×× SELECT year,month,BIT_COUNT(BIT_OR(1<<day)) AS days FROM t1 GROUP BY year,month; 该查询计算了在表中按年/月组合的不同天数,可以自动去除重复的询问。BIT_COUNT()返回二进制中‘1’出现次数BIT_OR()二进制进行‘或操作’1<<day位移操作。或操作时同一天即同一位上两个一进行‘或’操作,还是1个‘1’,经典算法
LAST_INSERT_ID() 最后插入的id;插入多行时返回插入的第一条的id;ALTER 表 AUTO_INCREMENT = N 把表的自增长基数改成N;复合主键中有一项自增长时,自增长的主键是相对于另一主键增长而不是全局增长
CONCAT(N个参数)连接函数,把多个字段连接起来,如果中间有NULL,返回NULL;中间有BIT返回BIT ;CONCAT(N个参数)+0 返回数字
\转义符 \0 ascii ;\' \" \\ \% \_ \b退格符 \t tab符 \r回车 \n换行
SELECT 0xNNN 十六进制 NNN转换字符串,转换数字CAST(0xNNN,UNSIGNED);HEX(0x)字符串转换16进制数字
true和1,false和0可以自动转换
可以使用b'value'符号写位字段值。value是一个用0和1写成的二进制值。(b BIT(8)查询时 b+0 十进制 | BIN(b+0)二进制 | OCT(b+0)八进制 | HEX(b+0)十六进制
变量定义:SET
系统变量:系统变量分为GLOBAL和SESSION两种。设置方法:SET SESSION[GLOBAL] PARAM='VALUE'或者SET @@SESSION(@@GLOBAL).PARAM='VALUE'如果不指定默认为session;查询:SELECT @@session.PARAM;SHOW SESSION VARIABLES like 'PARAM';对于SHOW VARIABLES,SELECT @@session MySQL返回SESSION值(如果存在),否则返回GLOBAL值。SHOW SESSION VARIABLES如果不指定GLOBAL、SESSION或者LOCAL,MySQL返回SESSION值。
GREATEST()最大值 RAND()随机数  LEAST()最小值 
a XOR b -- a或b只有一项成立为true
CASE 值/表达式 WHEN 结果1 THEN 执行1 WHEN 结果2 THEN 执行2 ELSE 执行3 END 类似switch case
CASE WHEN 表达式1 THEN 结果1 WHEN 表达式2 THEN 执行2 ELSE 执行3 END
IF(表达式,结果A,结果B)表达式成立么?成立为结果A,不成立为B
STRCMP(STR1,STR2)比较字符串,忽略大小写
IFNULL(expr1,expr2)  expr1是否为NULL,为NLL返回expr2,不是返回EXPR1
1/0 一除以零的结果为NULL
NULLIF(EXPR1,EXPR2)-- EXPR2和EXPR1是否相等,相等返回NULL,否则返回EXPR1
ASCII() --返回字符ascii,如果为字符串,返回第一个字符的,空字符串为0,NULL 返回NULL
BIT_LENGTH() -- bit的长度
CHAR(N1,N2……) -- 按ASCII把数字转换成字符,N为整数,超过255被认为是两个字符
LENGTH(),CHAR_LENGTH() -- length为字节长度,CHAR_LENGTH为字符长度
CONCAT_WS(分隔符,STR1,STR2……)链接字符串,并用分隔符分开,会略null
ELT(M,S1,S2,……SN)-- 返回S数组中的第M个值,如果超出范围返回NULL
FIELD(R,S1,S2,……SN)-- 返回R在S数组中的位置,从1开始,重复则返回第一个位置
FIND_IN_SET(STR,STRLIST) -- 返回str在strlist中的位置,重复则返回第一个位置
INSTR(STR,SUSTR) --返回str在sustr中第一次出现的位置
INSRTY(被插入的字符串,开始位置,长度,插入的字符串) -- 向字符串中插入另一字符串
LOWER()-- 转小写 -- UPPER()转大写
LOAD_FILE()-- 读取文件
LOCATE(STR,SUBSTR)返回str在substr中第一次出现的位置
LOCATE(STR,SUBSTR,BEGIN)从begin的位置开始,返回str在SUBSTR中第一次出现的位置,返回值是相对整个substr来说的
LPAD(STR,len,SUB) 把SUB不断添加到str左边,到str的长度等于len,如果str的开始长度小于len,则从str的左边除去差值 RPAD为右侧添加,其余全一样
LTRIM(),RTRIM(),TRIM()-- 分别去左边,右边,前后空格
SUBSTRING(str,begin,len)/MID(str,begin,len) -- 截取字符串SUBSTRING(str,pos) , SUBSTRING(str FROM pos) SUBSTRING(str,pos,len) , SUBSTRING(str FROM pos FOR len)
REPEAT(str, n); -- 返回str反复叠加N次,n<1时返回 ''
REPLACE(str,from_str,to_str)  -- 把str中的每一个from_str都替换为to_str
REVERSE(STR) str反向排列  ‘abc’-> 'cba'
×××SUBSTRING_INDEX(str,delim,count) -- 返回delim第count次出现之后的字符串,如果为负数则从右边开始算
×××TRIM除了去除空格还可以去除字符,格式为TRIM(LEADING/TRAILING/BOTH 要去除的字符 FROM 字符串)leading位置默认为both
CRC32(STR)-- 返回crc32
××××若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1))。
×××××???select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= date(column_time);查询近一个月内的字段
DAYNAME(DATETIME) 返回星期几
DAYOFWEEK() 周的序列 周日  =1  !!!!DAYOFYEAR(date)
FROM_DAYS(N) 给定一个天数  N, 返回一个DATE值。365以下都是0000-00-00 你运算TO_DAYS(date)
LAST_DAY() 返回这个月的最后一天的日期
MAKEDATE(year,dayofyear) 给出年份值和一年中的天数值,返回一个日期。dayofyear 必须大于 0 ,否则结果为 NULL
MAKETIME(hour,minute,second)
MONTHNAME(date) 返回date 对应月份的全名。
mysql的“周期” --YYYYMM or YYMM PERIOD_ADD(p,n)周期p增加n个月 PERIOD_DIFF(P1,P2)P1,P2相差的月份
QUARTER(date) 返回季度:春夏秋冬1234
SEC_TO_TIME(seconds) 把秒数转换成时间
WEEK(date,model)第几周,model可不写,但是出现跨年周时处理……记参数麻烦--0本年度中有一个周日 1本年度中有3天以上2本年度中有一个周日3 本年度中有3天以上 4本年度中有3天以上5 本年度中有一个周一 6本年度中有3天以上7本年度中有一个周一
------------全文检索-------------------
--表必须是MyISAM的(ENGINE=MyISAM)
--创建索引FULLTEXT( FULLTEXT KEY `title` (`title`,`body`))
--SELECT * FROM 表 WEHRE MATCH(title,body) AGAINST('关键字') MATCH的参数必须对应全部的索引字段
--如果查询MANTH(),返回结果是相关度,按这个结果排列就是按相似性排列
--SELECT id, body, MATCH (title,body)
AGAINST('Security implications of running MySQL as root') AS score
  FROM articles WHERE MATCH (title,body) AGAINST
  ('Security implications of running MySQL as root') order by score desc;
  注意:不能 where score!=0
-- 关键字不能小于4个字符(默认,可更改)
-- 默认停止字不能被搜索(默认,可更改)
-- 出现频率过高的会被认为成停止字,查询结果为0(50%)
-------boolean全文检索---------
-- 列子 :SELECT * FROM articles MATCH(title,body) AGAINST('+MYSQL -YOURSQL' IN BOOLEAN MODE)
-- 不使用50%的限制
-- 相关性强弱不使用,相关就是1,无关就是0
-- 仍然有关键字长度和默认停止字限制
-- ‘+’必须出现的关键字
‘-’一定不出现的关键字
‘’无符号表示可有可无,但是出现的话优先级就高,类似普通检索的相似度。连个无符号同时出现表示至少出现一个
‘>’‘<’优先级高低 如' +(>aaaaa <bbbbb)'。查询有aaaaa或bbbbb的字段,但是有aaaa的优先级高
‘~’含有则优先级低,相当于弱一级的‘-’
‘*’通配符
‘""’短语
-- AGAINST( ‘’WITH QUERY EXPANSION)扩展查询,例如:查database还会查出mysql oracle等
-----------------结束结束--------------------------
BENCHMARK(count,expr) 重复count 次执行表达式 expr
CHARSET(str) 返回字符串自变量的字符集。
ROW_COUNT() -- 操作影响的行数
GET_LOCK(NAME,TIME) 创建锁;IS_FREE_LOCK (NAME)是否存在锁;RELEASE(NAME)解除锁
IS_USED_LOCK(str) 检查名为str的锁是否正在被使用(换言之,被封锁)。若被封锁,则返回使用该锁的客户端的连接标识符。否则返回 NULL。
UUID()独一无二的ID是一个由5位十六进制数的字符串表示的128比特数字 ,其格式为  aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee :
SELECT A,GROUP_CONCAT(B)   FROM T   GROUP BY A;把查询出来的字段连接
group by时,后面加WITH ROLLUP表示最后有汇总项。和ORDER BY不能同时使用
----------触发器--------------
DELIMITER | -- 定义结束符|
CREATE TRIGGER 触发器名称 BEFORE/AFTER INSERT/DELETE/UPDATE ON 表
  FOR EACH ROW
  BEGIN
    SQL语句 -- OLD和NEW:INSERT中只有NEW,DELETE 只有OLD,UPDATE都有
  END
| -- 结束
DELIMITER ; -- 把结束符改回来

-----------视图--------------
CREATE VIEW SELECT * FROM TABLE
------------存储过程----------------
创建存储过程要有proc表
创建:
DELIMITER | -- 定义结束符|
CREATE PROCEDUCE my_proc( OUT param1 INT) -- IN表示传入,OUT表示回传,就是返回值,INOUT就是都是

beginLabel:BEGIN -- 块,beginLabel是别名,可用可不用

DECLARE a VARCHAR(5) DEFAULT 'bob';  -- 定义参数
    DECLARE b INT;
DECLARE c DATETIME;

SELECT t.cola,t.colb,t.colc INTO a,b,c FROM table t;

IF DATE = NOW() THEN -- 条件
ELSEIF 2>0 THEN
ELSE
END IF
WHILE 2<2 DO -- 循环
END WHILE
END beginLabel
执行:
CALL my_proc(@a);
SELECT @a;
| -- 结束存储过程
DELIMITER ; -- 把结束符改回来
















分享到:
评论

相关推荐

    MYSQL复习宝典(超全)

    MYSQL复习宝典MYSQL复习宝典MYSQL复习宝典MYSQL复习宝典MYSQL复习宝典MYSQL复习宝典MYSQL复习宝典MYSQL复习宝典MYSQL复习宝典MYSQL复习宝典MYSQL复习宝典MYSQL复习宝典MYSQL复习宝典MYSQL复习宝典MYSQL复习宝典MYSQL...

    mysql复习资料

    mysql复习资料,非常好的mysql复习资料

    燕十八 刘道成 mysql 复习秘籍.html

    《燕十八 刘道成 mysql 复习秘籍》是一份专为学习MySQL数据库系统设计的复习资料,由知名IT教育人士燕十八和刘道成共同编撰。这份秘籍旨在帮助学生或从业人员巩固MySQL的基础知识,提升在实际工作中的应用能力。HTML...

    MySQL复习资料.pdf

    MYSQL”期末复习总结 30分)、简答题(20分)、综合应用题(表和数据库、查询、存储过程、用 50分) MYSQL概述与系统安装 1)什么是LAMP??? 是开源的,其体积小、速度快、总体拥有成本低。使得很多中...

    mysql复习资料下载

    mysql知识点归总,加深对mysql的巩固,对于从零开始学习的初学者有一定的帮助。

    mysql 复习

    mysql 复习

    数据库mysql复习笔记大全.txt

    数据库 mysql复习笔记大全,基本语法,常见例子,实践操作全部包括在内。适合数据库mysql入门新手以及期末复习。

    MySQL复习笔记七:MySQL官方文档及阅读辅助工具

    ### MySQL复习笔记七:MySQL官方文档及阅读辅助工具 #### MySQL 5.7官方文档概览 本章节将深入解析《MySQL 5.7参考手册》,该文档涵盖了MySQL 5.7版本及其相关的NDB Cluster版本7.5与7.6的详细内容。通过本文档的...

    MYSQL复习题及答案.pdf

    由于文档内容出现了重复的单词“MySQL”和一些OCR扫描错误,我将尽力根据提供的信息来整理和推断相关的知识点。以下是整理后的知识点: 1. 数据库管理 - `Show databases;`:这是一个SQL命令,用于列出当前MySQL...

    mySQl复习资料.docx

    MySQL复习资料概述MySQL是一种流行的开源关系型数据库管理系统(RDBMS),广泛应用于互联网行业中,用于存储和管理数据。本文档将深入探讨MySQL的基础知识,包括DB基本概念、数据库设计步骤、数据库管理系统(DBMS)...

    MySQL复习.xmind

    MySQL复习.xmind

    mysql复习.doc

    mysql复习.doc

    MySQL复习有ER图

    ### MySQL复习知识点详解 #### 一、数据库的基本操作 **创建数据库** ```sql CREATE DATABASE 数据库名; ``` 此命令用于创建一个新的数据库。如果指定的数据库已经存在,则会抛出错误。 **删除数据库** ```sql ...

    mysql复习面试总结题集

    mysql复习面试总结题集

    mysql复习资料和练习题目以及答案

    mysql复习的sql文件 mysql复习的习题 mysql重要的思维导图

    mysql复习笔记-by燕十八.docx

    以上就是MySQL复习笔记中涵盖的关键知识点,它们构成了MySQL数据库操作的基础。通过熟练掌握这些概念和命令,你可以有效地管理和维护数据库,执行复杂的查询,以及对数据进行增删改查。在实际工作中,理解并熟练运用...

    MySQL复习_03_2023.sql

    MySQL复习_03_2023.sql

    第一次高级mysql复习.sql

    第一次高级mysql复习.sql

Global site tag (gtag.js) - Google Analytics