首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL基础SQL编程学习1

,查询前n条/后n条记录(分页常用) */ SELECT 字段 FROM 表名 WHERE 查询条件 LIMIT 起始,结束 /* SQL 多表查询 */ SELECT 数据库.表,mysql.user...*/ -- 空值判断is null:打印编写满足列某值的某行是,如果不满足则返回该标字段及其字段的值为NULL;) mysql> SELECT * FROM information_schema.FILES...子句 描述:SELECT TOP 子句用于规定要返回的记录的数目,它对于拥有数千条记录的大型表来说,是非常有用的。...读作“A交B”(或“B交A”),即 A∩B={x|x∈A,且x∈B} 4.并集:以属于A或属于B的元素为元素的集合称为A与B的并(集),记作AUB(或BUA)读作“A并B”(或“B并A”),即A∪B...2.外连接就好像是为非基准表添加了一行全为空值的万能行,用来与基准表中找不到匹配的行进行匹配,两个没有空值的表进行左连接,左表是基准表,左表的所有行都出现在结果中,右表则可能因为无法与基准表匹配而出现是空值的字段

4.7K20

MySQL从删库到跑路(三)——SQL语言

SQL可与数据库程序协同工作,比如MS Access、DB2、Informix、MS SQL Server、Oracle、MySQL、Sybase以及其他数据库系统。...MySQL用DATE和YEAR类型存储简单的日期值,使用TIME类型存储时间值。日期、时间类型可以描述为字符串或不带分隔符的整数序列。...如果描述为字符串,DATE类型的值应该使用连字号作为分隔符分开,而TIME类型的值使用冒号作为分隔符分开。没有冒号分隔符的TIME类型值,将会被MySQL理解为持续的时间,而不是时间戳。...另外如果插入值的大小写与集合中值的大小写不匹配,MySQL会自动使用插入值的大小写转换成与集合中大小写一致的值。 ENUM类型在系统内部可以存储为数字,并且从1开始用数字做索引。...在SET元素中值被存储为一个分离的“位”序列,SET类型中不可能包含两个相同的元素。 从SET类型字段中找出非法的记录只需查找包含空字符串或二进制值为0的行。

1.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【MySQL】01_运算符、函数

    n次,至多m次,如果 n为0,此参数为可选参数 b{2,4}匹配含最少2个、最多4个b的字符串 bb,bbb,bbbb # 1.查询以特定字符或字符串开头的记录 字符‘^’匹配以特定字符或者字符串开头的文本...# 在fruits表中,查询f_name字段值出现字母‘x’至少2次的记录,SQL语句如下: SELECT * FROM fruits WHERE f_name REGEXP 'x{2,}'; # 在fruits...如果我们知道返回结果只有 1 条,就可以使用 LIMIT 1 ,告诉 SELECT 语句只需要返回一条记录即可。...如果是 SQL Server 和 Access,需要使用 TOP 关键字,比如: SELECT TOP 5 name, hp_max FROM heros ORDER BY hp_max DESC 如果是...日期和时间函数 获取日期、时间 日期与时间戳的转换 获取月份、星期、星期数、天数等函数 日期的操作函数 EXTRACT(type FROM date)函数中type的取值与含义: 时间和秒钟转换的函数

    2.5K30

    故障分析 | 一条本该记录到慢日志的 SQL 是如何被漏掉的

    背景生产环境中 select count(*) from table 语句执行很慢,已经远超 long_query_time 参数定义的慢查询时间值,但是却没有记录到慢日志中。... = 100  #该SQL检索的行数小于100则不会记录到慢日志select count(*) 执行原理可以总结如下:InnoDB 存储引擎在执行 select count...因此,慢查询日志不应该没有记录到执行时间超过long_query_time 的 select count(*) 语句。...函数返回的是当前时间,如果当前时间大于这条 SQL 执行的开始时间加 long_query_time 参数定义的时长,则更新这条 SQL 的 server_status 为 SERVER_QUERY_WAS_SLOW...所以要想把慢的 select count(*) 记录到慢查询日志中,min_examined_row_limit 这个参数必须保持为默认值 0。

    50620

    故障分析 | 一条本该记录到慢日志的 SQL 是如何被漏掉的

    ---- 背景 生产环境中 select count(*) from table 语句执行很慢,已经远超 long_query_time 参数定义的慢查询时间值,但是却没有记录到慢日志中。...= 100 #该SQL检索的行数小于100则不会记录到慢日志 select count(*) 执行原理可以总结如下:InnoDB 存储引擎在执行 select count...函数返回的是当前时间,如果当前时间大于这条 SQL 执行的开始时间加 long_query_time 参数定义的时长,则更新这条 SQL 的 server_status 为 SERVER_QUERY_WAS_SLOW...n 3219 } 跟踪源码执行到 log_slow_applicable 函数时,可以发现函数 thd->get_examined_row_count() 的返回值为 0。...所以要想把慢的 select count(*) 记录到慢查询日志中,min_examined_row_limit 这个参数必须保持为默认值 0。

    22520

    Mssql常用经典SQL语句大全完整版–详解+实例

    随机读取若干条记录,测试过 Access语法:SELECT top 10 * From 表名 ORDER BY Rnd(id) Sql server:select top n * from 表名 order...根据SQL语句执行后是否返回记录集,该方法的使用格式分为以下两种:   1.执行SQL查询语句时,将返回查询得到的记录集。...criteria参数为一个表达式,用于指定哪些记录应该被删除的表达式。 可以使用 Execute 方法与一个 DROP 语句从数据库中放弃整个表。不过,若用这种方法删除表,将会失去表的结构。...如果返回行[row-returning]查询语句,那么结果将被存储在一个新的记录对象中;如果它不是一个返回行[row-returning]查询语句,那么它将返回一个关闭的记录对象。...它仅指明了指令文本仅是一条不返回任何行的指令或现存程序(如:一条只执行数据插入的指令)。如果没有任何行被提取,那么他们将放弃执行并不返回任何值。

    1.3K10

    MySQL基础SQL编程学习2

    2.NOT NULL : 指示某列不能存储 NULL 值; 如果不向字段添加值就无法插入新记录或者更新记录,否则会报错; 3.UNIQUE : 保证某列的每行必须有唯一的值; 在设置字段为UNIQUE...非活动默认(NO ACTION)、(约束/限制)RESTRICT: 当取值为No Action或者Restrict时,则当在主键表中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除。...---- 0x01 SQL 基础函数 描述:SQL 拥有很多可用于计数和计算的内建函数,可以帮助我们更方便的存储以及获取数据; Date 函数 描述:在处理日期的时候我们需要确保所插入的日期的格式,与数据库中日期列的格式相匹配...但是如果涉及时间部分,情况就有点复杂了需要采用内置的函数进行转换后进行匹配; 内建日期处理函数: MySQL Date 函数 函数 描述 语法 NOW() 返回当前的日期和时间 CURDATE() 返回当前的日期...,4 位,与 %V 使用 %x 年,其中的星期一是周的第一天,4 位,与 %v 使用 %Y 年,4 位 %y 年,2 位 SQL Server Date 函数 函数 描述 GETDATE() 返回当前的日期和时间

    7.3K30

    常用经典SQL语句大全完整版–详解+实例

    首先,你取出1到500范围之内的一个随机数(假设500就是数据库内记录的总数)。然后,你遍历每一记录来测试ID 的值、检查其是否匹配RNumber。...随机读取若干条记录,测试过 Access语法:SELECT top 10 * From 表名 ORDER BY Rnd(id) Sql server:select top n * from 表名 order...根据SQL语句执行后是否返回记录集,该方法的使用格式分为以下两种:   1.执行SQL查询语句时,将返回查询得到的记录集。...criteria参数为一个表达式,用于指定哪些记录应该被删除的表达式。 可以使用 Execute 方法与一个 DROP 语句从数据库中放弃整个表。不过,若用这种方法删除表,将会失去表的结构。...如果返回行[row-returning]查询语句,那么结果将被存储在一个新的记录对象中;如果它不是一个返回行[row-returning]查询语句,那么它将返回一个关闭的记录对象。

    1.3K10

    炸裂!MySQL 82 张图带你飞!

    如果不能将给定的值插入到事务表中,则放弃该语句。对于非事务表,如果值出现在单行语句或多行语句的第1行,则放弃该语句。...select 'x' regexp '[^xyz]'; n* 表示匹配零个或者多个 n 字符串,如下 select 'aabbcc' regexp 'd*'; 没有 d 出现也可以返回 1 ,因为...n+ 表示匹配 1 个或者 n 个字符串 select 'aabbcc' regexp 'd+'; n? 的用法和 n+ 类似,只不过 n?...FLOOR(x) : 返回小于 x 的最大整数,用法与 CEIL 相反 TRUNCATE(x,y): 返回数字 x 截断为 y 位小数的结果, TRUNCATE 知识截断,并不是四舍五入。...(date) : 返回 UNIX 的时间戳 FROM_UNIXTIME(date) : 返回 UNIXTIME 时间戳的日期值,和 UNIX_TIMESTAMP 相反 DATE_FORMAT(date,

    76420

    MySQL慢查询功能详解

    ,在MySQL服务器阶段(不是在存储引擎阶段)等待表锁时间     Rows_sent,查询返回的行数     Rows_examined,查询检查的行数,越长就当然越费时间 第四行,设置时间戳,没有实际意义...分析慢查询的软件 虽然慢查询日志已经够清晰,但是往往我们的日志记录到的不是只有一条sql,可能有很多很多条,如果不加以统计,估计要看到猴年马月,这个时候就需要做统计分析了。...参数解析: -s:是表示按照何种方式排序,子参数如下:     c、t、l、r:分别是按照记录次数、时间、查询时间、返回的记录数来排序,     ac、at、al、ar:表示相应的倒叙; -t:返回前面多少条的数据...--filter  对输入的慢查询按指定的字符串进行匹配过滤后再进行分析 --limit限制输出结果百分比或数量,默认值是20,即将最慢的20条语句输出,如果是50%则按总响应时间占比从大到小排序,输出到总和达到...--since 从什么时间开始分析,值为字符串,可以是指定的某个”yyyy-mm-dd [hh:mm:ss]”格式的时间点,也可以是简单的一个时间值:s(秒)、h(小时)、m(分钟)、d(天),如12h

    1.1K10

    oracle 常用command

    "+"的用法   外部联接"+"按其在"="的左边或右边分左联接和右联接.若不带"+"运算符的表中的一个行不直接匹配于带"+"预算符的表中的任何行,则前者的行与后者中的一个空行相匹配并被返回.若二者均不带...=D.DSNO); 8.返回表中[N,M]条记录: 取得某列中第N大的行 select column_name from (select table_name....*,dense_rank() over (order by column desc) rank from table_name) where rank = &N;  假如要返回前5条记录:...select * from tablename where rownum != 10;返回的是前9条记录。 不能用:>,>=,=,Between...and。...---- 在数据库触发器中几乎总是要使用触发器基表的列值,如果某条语句需要某列修改前的值,使用:OLD就可以了,使用某列修改后的新值,用:NEW就可以了。

    1.1K30

    MySql基础之DQL-数据查询语言

    如果等号两边的值、字符串或表达式中有一个为NULL,则比较结果为NULL。...逻辑异或运算符 逻辑异或(XOR)运算符是当给定的值中任意一个值为NULL时,则返回NULL; 如果两个非NULL的值都是0或者都不等于0时,则返回0;如果一个值为0,另一个值不为0时,则返回1。...,外连接还可以查询某一方不满足条件的记录 内连接: 合并具有同一列的两个以上的表的行, 结果集中不包含一个表与另一个表不匹配的行 外连接: 两个表在连接过程中除了返回满足连接条件的行以外还返回左(或右)...即左或右外连接中,(+) 表示哪个是从表。 Oracle 对 SQL92 支持较好,而 MySQL 则不支持 SQL92 的外连接。...分、秒 NOW() / SYSDATE() 返回当前系统日期和时间 UTC_DATE() 返回UTC(世界标准时间)日期 UTC_TIME() 返回UTC(世界标准时间)时间 7.4、日期与时间戳的转换

    15310

    Mysql慢查询日志的使用 和 Mysql的优化

    注:如果想关闭慢查询日志,只需要执行 set global slow_query_log = off; 即可 2、临时设置慢查询时间临界点 查询时间高于这个临界点的都会被记录到慢查询日志中(如果需要长时间开启...如果值设置为ON,则会记录所有没有利用索引的查询(性能优化时开启此项,平时不要开启) 5、使用慢查询日志示例 cat -n /data/mysql/mysql-slow.log ?...从慢查询日志中,我们可以看到每一条查询时间高于1s钟的sql语句,并可以看到执行的时间是多少。...比如上面,就表示 sql语句 select * from comic where comic_id 时间为3.902864秒,超出了我们设置的慢查询时间临界点1s,所以被记录下来了...还有,值得注意的地方是:count() 计算时,count(*)会将这一列中的null值但也算进去,而count(comic_id)则不会将null算进去。

    1K20

    mysql分析慢查询_开启慢查询日志

    global slow_query_log = off; 即可 2、临时设置慢查询时间临界点 查询时间高于这个临界点的都会被记录到慢查询日志中(如果需要长时间开启,则需要更改mysql配置文件,第6...log_queries_not_using_indexes 如果值设置为ON,则会记录所有没有利用索引的查询(性能优化时开启此项,平时不要开启) 5、使用慢查询日志示例 cat -n /data/...mysql/mysql-slow.log 从慢查询日志中,我们可以看到每一条查询时间高于1s钟的sql语句,并可以看到执行的时间是多少。...比如上面,就表示 sql语句 select * from comic where comic_id 时间为3.902864秒,超出了我们设置的慢查询时间临界点1s,所以被记录下来了...还有,值得注意的地方是:count() 计算时,count(*)会将这一列中的null值但也算进去,而count(comic_id)则不会将null算进去。

    3.9K30

    MySQL基础及原理

    如果x的值不在-1到1之间,则返回NULL COS(x) 返回x的余弦值,其中,参数x为弧度值 ACOS(x) 返回x的反余弦值,即获取余弦为x的值。...如果x的值不在-1到1之间,则返回NULL TAN(x) 返回x的正切值,其中,参数x为弧度值 ATAN(x) 返回x的反正切值,即返回正切值为x的值 ATAN2(m,n) 返回两个参数的反正切值 COT...(x) 返回x的余切值,其中,X为弧度值 举例: ATAN2(M,N)函数返回两个参数的反正切值。...UTC(世界标准时间)日期 UTC_TIME() 返回UTC(世界标准时间)时间 日期与时间戳的转换 函数 用法 UNIX_TIMESTAMP() 以UNIX时间戳的形式返回当前时间。...No action方式:如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作。 Restrict方式 :同no action, 都是立即检查外键约束。

    3.9K20

    MySQL基础篇(DDL,DML,DQL,DCL详细讲解)

    s1,s2 等多个字符串合并为一个字符串 FIND_IN_SET(s1,s2) 返回在字符串s2中与s1匹配的字符串的位置 FORMAT(x,n) 函数可以将数字 x 进行格式化 “#,###.##”...s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1返回 -1 # 字符串函数 # ASCII 查看第一个字符的ASCII值 select ascii('ABC'),ascii...(d,n) 计算起始日期 d 加上 n 天的日期 ADDTIME(t,n) 时间 t 加上 n 秒的时间 DATE() 从日期或日期时间表达式中提取日期值 DAY(d) 返回日期值 d 的日期部分 DATEDIFF...(t,n) 时间 t 加上 n 秒的时间 select ADDTIME('2022-01-02 11:11:11',59),ADDTIME(now(),60*60) # DATE() 从日期或日期时间表达式中提取日期值...时返回一个值,如果条件为FALSE则返回另一个值。

    1.6K20

    rolling invalidation对子游标产生的影响

    一条SQL,使用了绑定变量,查看V$SQLAREA发现version_count是2, ? 查看V$SQL,发现有两条记录,分别对应了0和1两个child cursor: ?...2.下次某个session需要解析这个标记为rolling invalidation的cursor游标时,会设置一个时间戳,其取值为_optimizer_invalidation_period定义的最大值范围内的一个随机数...记录这次解析时间为T1,时间戳值为Tmax。但此时,仍是重用了已有游标,不会做硬解析,不会使用更新的统计信息来生成一个新的执行计划。...3.接下来这个游标(标记了rolling invalidation和时间戳)的每次使用时,都会判断当前时刻T2是否超过了时间戳Tmax。如果未超过,则仍使用已存在的cursor。...3.频繁使用的游标,在超过时间戳Tmax值后,下次解析时就会被置为失效。 很明显,上面的这些方法是有效的,因为失效标记仅仅适用于这些频繁重用的游标,对于其他场景的游标可以忽略,未有影响。

    1K10
    领券