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

MySQL系列专题(2)-MySQLSQL语句和高级特性

查询 5 行记录 #查询表五名员工所有信息 SELECT * FROM t_employees LIMIT 0,5; 注意:起始行是从 0 开始,代表了第一行。...,做第二次查询 查询得到一行一列结果才能作为外部查询等值判断条件不等值条件判断 2.13 查询(作为枚举查询条件) SELECT 列名 FROM 表名 Where 列名 in(查询结果);...存储过程是为了完成特定功能SQL语句集,经编译创建并保存在数据库,用户可通过指定存储过程名字并给定参数(需要时)来调用执行。...DELIMITER $$ DELIMITER // 这个代表当前sql语句结尾符号不是 ; 而是变成了指定 $$ 或者 // 因为存储过程创建过程,我们会有;代表一行语句结尾 3.1.1...不使用索引 1.查询很少使用到列 不应该创建索引,如果建立了索引然而还会降低mysql性能和增大了空间需求. 2.很少数据列也不应该建立索引,比如 一个性别字段 0或者1,查询,结果集数据占了表数据行比例比较大

3.7K10

MySQL常用字符串函数

字符串函数是最常用一种函数,一个具体应用通常会综合几个甚至几类函数来实现相应应用: 1、LOWER(column|str):将字符串参数值转换为全小写字母后返回 MySQL> select...  PIPES_AS_CONCAT:将“||”视为字符串连接操作符而非运算符   || 管道连接符: 基本格式:   mysql> select  列名1 || 列名2 || 列名3  from...  表名; mysql,进行上式连接查询之后,会将查询结果集一列显示(字符串连接),列名是‘列名1 || 列名2 || 列名3’; mysql> select s_no || s_name |...,|| 默认是or意思,查询结果是一列显示是1。...hi | +-------------------+ 10、RPAD(str, len, padstr):字符串右边填充给定字符padstr到指定长度len,返回填充字符串

1.6K10
您找到你想要的搜索结果了吗?
是的
没有找到

2-SQL语言中函数

# INSTR(str,substr) ,返回字符串字符串索引 SELECT INSTR('Hello World','Wor') AS result; # TRIM([{BOTH |...分组查询筛选可以分为两类 分组筛选:分组筛选也就是筛选内容在数据库中就存在, 可以直接利用对应列筛选,利用where语句筛选,位置group_by字句前面 分组后筛选:分组后筛选是利用已经重新分配组内信息进行筛选...分组筛选:分组筛选也就是筛选内容在数据库中就存在, 可以直接利用对应列筛选,利用where语句筛选,位置group_by字句前面 2....,所以不能用标量子查询(多行多列00列都不可以) # 列子查询(多行查询,因为查询结果是一列多行) /* 多行操作符: IN/NOT IN 等于/不等于列表任意一个 ANY/SOME...1 */ # 判断employees是否存在employee_id这一列 SELECT EXISTS(SELECT employee_id FROM employees); # 判断是否存在工资为30000

2.8K10

数据库基础,看完这篇就够了!

数据库面试基本属于必考内容,最多就是手写SQL口述SQL,面试官会给你出一个场景,比如班级、分数、课程之类,一般考察表查询语句居多,例如多表查询、连接查询、查询等。...约束条件 含义 UNSIGNED 无符号,值从0开始,无负数 ZEROFILL 零填充,当数据显示长度不够时候可以使用填补0效果填充至指定长度,字段会自动添加UNSIGNED NOT NULL 非空约束...TABLE user_info_tab ADD phone VARCHAR(11); PS: 默认自动添加到数据表字段末尾; 如果要加在第一列最后加个FIRST; 如果要加在某一列后面,最后面加个...如果列为主键,count(列名)优于count(1) 如果列不为主键,count(1)优于count(列名) 如果表存在主键,count(主键列名)效率最优 如果表只有一列,则count(*)效率最优...如果表中有多列,且不存在主键,则count(1)效率优于count(*) count(*):包括所有列,返回表总行数,统计结果时候,不会忽略值为Null行数。

2.7K31

Mysql 架构和索引

binary 和 varbinary:保存二进制字符串,他们保存是字节而不是字符,填充是\0而不是空格 blob 和 text: 不能索引这些类型完整长度,也不能为排序使用索引 排序时只按照max_sort_length...PRIMARY SUBQUERY SELECTWHERE列表包含了查询,该查询被标记为SUBQUERY DEPEDENT SUBQUERY 依赖外部查询查询 DERIVD FROM列表包含查询被标记为...从最好到最差: (唯一非唯一)组合索引一部分:select * from t where unique_or_not_unique_combined_index_1 = 'abc' 非唯一组合单列索引全部...: NULL:MySQL优化过程中分解语句,执行时甚至不用访问表索引, 比如id=-1, min(id) max(id)????...Scan, MySQL将遍历全表以找到匹配行 possible_keys 指出MySQL能使用哪个索引表中找到行,查询涉及到字段上若存在索引,则该索引将被列出,但不一定被查询使用 key 显示MySQL

1.4K90

Explain详解与索引最佳实践

额外还有 filtered 列,是一个半分比值,rows * filtered/100 可以估算出将要和 explain 一个表进行连接行数(一个表指 explain id值比当前表id...4. type列 这一列表示关联类型访问类型,即MySQL决定如何查找表行,查找数据行记录大概范围。...如果想强制mysql使用忽视possible_keys列索引,查询中使用 force index、ignore index。...7. key_len列 这一列显示了mysql索引里使用字节数,通过这个值可以算出具体使用了索引哪些列。...8. ref列 这一列显示了key列记录索引,表查找值所用到常量,常见有:const(常量),字段名(例:film.id) 9. rows列 这一列mysql估计要读取并检测行数

79020

mysql学习总结04 — SQL数据操作

前提是对应两张表连接字段同名(类似自然连接自动匹配) 如果使用using关键字,对应同名字段结果只会保留一个 基本语法: inner,left,right join using...当一个查询是另一个查询条件时,称之为查询 查询和主查询关系 查询嵌入到主查询 查询辅助主查询,作为条件数据源 查询是一条完整可独立存在select语句 查询按功能分类 标量子查询...:结果是一个数据(一行一列) 列子查询:结果是一列一列多行) 行查询:结果是一行(一行多列) 表查询:结果是多行多列(多行多列) exists查询:返回结果10(类似布尔操作) 查询按位置分类...where查询:查询出现位置where条件(标量、列、行查询) from查询:查询出现位置from数据源,做数据源(表查询) 11.1 标量子查询 标量子查询:查询结果是一个数据...; 11.5 exists查询 exists查询:根据查询结果进行判断,1代表结果存在0代表不存在 基本语法: where exists(); -- where 1:永远为真

5.2K30

SQL 与 MySQL 基础

分号是在数据库系统中分隔每条 SQL 语句标准方法,这样就可以在对服务器相同请求执行一条以上 SQL 语句。 逗号通常用来分隔列名表达式、值查询等元素。...---- 以下数据类型用于字符串存储: CHAR(n):可以存储任意字符串,但是是固定长度为n,如果插入长度小于定义长度时,则用空格填充。...VARCHAR(n):也可以存储任意数量字符串,长度不固定,但不能超过n,不会用空格填充。...(值1, 值2) 例如: MySQL 表格 SC : Sno Cno Grade 200215121 1 92 插入一条数据 {200215122, 2, 90} INSERT INTO SC...是指当创建后,如果更新视图中数据,是否要满足查询条件表达式,不满足将无法插入,创建后,我们就可以使用 SELECT 语句来直接查询视图上数据了,因此,还能在视图基础上,导出其他视图。

1.8K20

10 分钟掌握 MySQL 索引查询优化技巧

当表某列字符串类型数据长度差别较大时适合使用varchar。 char实际占用空间是固定,当表字符串数据长度相差无几很短时适合使用chart类型。...,比如创建内存临时表时(某些查询会导致MySQL自动创建临时表),会分配固定大小空间存放数据。...如果表中有一列存储较长字符串,假设名字为URL,在此列上创建索引比较大,有个办法可以缓解:创建URL字符串数字哈希值索引。...'),16), 16, 10) 前缀索引 如果字符串列存储数据较长,创建索引也很大,这时可以使用前缀索引,即:只针对字符串几个字符做索引,这样可以缩短索引大小,不过,显然,此类索引执行order...如果一个表已经存在索引(A),现在又想创建索引(A,B),那么只需扩展就索引就可以,没有必要创建索引。

96620

MySQL 索引查询以及优化技巧

当表某列字符串类型数据长度差别较大时适合使用varchar。 char实际占用空间是固定,当表字符串数据长度相差无几很短时适合使用chart类型。...,比如创建内存临时表时(某些查询会导致MySQL自动创建临时表),会分配固定大小空间存放数据。...如果表中有一列存储较长字符串,假设名字为URL,在此列上创建索引比较大,有个办法可以缓解:创建URL字符串数字哈希值索引。...'),16), 16, 10) 前缀索引 如果字符串列存储数据较长,创建索引也很大,这时可以使用前缀索引,即:只针对字符串几个字符做索引,这样可以缩短索引大小,不过,显然,此类索引执行order...如果一个表已经存在索引(A),现在又想创建索引(A,B),那么只需扩展就索引就可以,没有必要创建索引。

1.2K00

mysql小结(1) MYSQL索引特性小结

2.3 Mysql聚簇索引 B-树和B+树区别在于B+树所有键值全部保存在叶子节点,而B-树则不然,B-树键值根据结构分布整个树上。 而Mysql为什么要采用B+树索引呢?...1.遍历方便.B+树可以将键值保存在(线性表【数组链表】),遍历线性表比索引树要快,因为保存在线性表数据存储更加密集,B-Tree分散存储会导致更多随机I/O,对于磁盘访问,随机I/O是比顺序...,那么只能使用其中之一索引,具体使用哪个索引,要看mysql统计信息,mysql执行计划包括索引选择,具体选择要看哪个索引选择率更高【唯一值/总记录数=选择率,0<选择率<=1  选择率越大...可以考虑不建索引,或者将其作为联合索引第一项 7.Mysql对于唯一性检查即声明unique列,自动建立唯一性索引,不需要再额外建立索引 8.不应该对where每一个查询条件都建立上索引,mysql...PRIMARY:查询最外层查询,注意并不是主键查询。 SIMPLE:除查询UNION之外其他查询。 SUBQUERY:查询内层查询第一个SELECT,结果不依赖于外部查询结果集。

1.1K30

python数据科学系列:pandas入门详细教程

字典(用于重命名行标签和列标签) reindex,接收一个新序列与已有标签列匹配,当原标签列存在相应信息时,填充NAN或者可选填充值 set_index/reset_index,互为逆操作,...自然毫无悬念 dataframe:无法访问单个元素,只能返回一列、多列多行:单值多值(多个列名组成列表)访问时按列进行查询,单值访问不存在列名歧义时还可直接用属性符号" ....isin/notin,条件范围查询,即根据特定列值是否存在于指定列表返回相应结果 where,仍然是执行条件查询,但会返回全部结果,只是将不满足匹配条件结果赋值为NaN其他指定值,可用于筛选屏蔽值...loc和iloc应该理解为是series和dataframe属性而非函数,应用loc和iloc进行数据访问就是根据属性值访问过程 另外,pandas早些版本,还存在loc和iloc兼容结构,即...需注意对空值界定:即Nonenumpy.nan才算空值,而空字符串、空列表等则不属于空值;类似地,notna和notnull则用于判断是否非空 填充空值,fillna,按一定策略对空值进行填充,如常数填充

13.8K20

MySQL_库和表使用(部分未完

它们后面跟是这一列数据数据类型 comment是给这个列加备注,可以加可以不加 if not exists 可加可不加,意思是如果Student这个表之前不存在的话,就创建存在的话就不创建,在前面的库创建和删除...SC表Cno列后面新增一列Grade 如果不加after,默认加在最后一列 新增一列之后,此列数据默认为NULL 查看一下表结构,发现列信息被加入进去了: 新增列(字段)时设置默认数据填充 由于一般新增列时候...eg:mysqldump -uroot -p0295 test2 test2_table1 > test_table1.back.sql 其他知识点详见置顶链接 还原命令mysql执行 mysql...; 逻辑运算符 说明 AND 与,相当于 cpp &&,全真为 1,有假为 0 OR ,相当于 cpp ` NOT 逻辑取反,条件为 TRUE(1) 时候结果为 FALSE(0) 使用比较和逻辑运算符...NOT NULL查询: where查询条件不一定必须存在于select要查询字段: 使用where时设置条件字段,可以与select查询要获取结果集字段无关,而是可以根据原有表任意字段进行筛选

10810

MySQL数据库学习

null,则默认使用当前系统时间,来自动赋值 varchar:字符串 name varchar(20):姓名最大20个字符 zhangsan 8个字符 张三 2个字符 创建表 create table...要遵循后面的范式要求,必须先遵循前面的所有范式要求 第一范式(1NF) 每一列都是不可分割原子数据项 第二范式(2NF) 1NF 基础上,非码属性必须完全依赖于码( 1NF 基础上消除非主属性对主码部分函数依赖...右外连接 select 字段列表 from 表1 right [outer] join 表2 on 条件; 查询是右表所有数据以及其交集部分。 查询 查询嵌套查询,称嵌套查询为查询。...操作 开启事务: start transaction; 回滚: rollback; 提交: commit; 自动提交: MySQL数据库事务默认自动提交 一条DML(增删改)语句会自动提交一次事务。...手动提交: Oracle 数据库默认手动提交事务 需要先开启事务,再提交 查看事务默认提交方式: SELECT @@autocommit; 1 代表自动提交 0 代表手动提交 修改默认提交方式: set

4.2K20

Explain详解与索引优化实践

(4)type列 (温馨提示:以下部分理论有可能解释完还是懵逼,没关系,继续往下看,有实践例子) 这一列表示关联类型访问类型,即MySQL决定如何查找表行,查找数据记录大概范围。...extended查看执行计划会比explain多一列filtered,该列给出一个百分比值,这个值和rows列一起使用,可以估计出那些将要和explain一个表进行连接数目,一个表就是指...如果想强制MySQL使用忽视possible_keys列索引,查询中使用force index、ignore index。...(7)key_len列 这一列显示了MySQL索引里使用字节数,通过这个值可以算出具体使用了索引哪些列。...:4字节 datetime:8字节 ④ 如果字段允许为NULL,需要1字节记录是否为NULL (8)ref列 这一列显示了key列记录索引,表查找值所用到常量,常见有:const(常量)、

59120

10分钟掌握数据类型、索引、查询MySQL优化技巧

当表某列字符串类型数据长度差别较大时适合使用varchar。 char实际占用空间是固定,当表字符串数据长度相差无几很短时适合使用chart类型。...,比如创建内存临时表时(某些查询会导致MySQL自动创建临时表),会分配固定大小空间存放数据。...一个使用Hash值创建索引技巧 如果表中有一列存储较长字符串,假设名字为URL,在此列上创建索引比较大,有个办法可以缓解:创建URL字符串数字哈希值索引。...'),16), 16, 10) 2、前缀索引 如果字符串列存储数据较长,创建索引也很大,这时可以使用前缀索引,即:只针对字符串几个字符做索引,这样可以缩短索引大小,不过,显然,此类索引执行order...如果一个表已经存在索引(A),现在又想创建索引(A,B),那么只需扩展就索引就可以,没有必要创建索引。

78820

超详细MySQL三万字总结

MySQL 也可以使用双引号做为分隔符。 不指定列使用 null,表示插入空值。 蠕虫复制 什么是蠕虫复制 将一张已经存在数据复制到另一张表。...sex having COUNT(*) >2; 名 作用 where 子句 1、对查询结果进行分组,将不符合 where 条件行去掉,即在分组之前过滤数据,即先过滤再分组。...一对一 一对一(1:1实际开发应用不多.因为一对一可以创建成一张表。...第二范式特点: 一张表只描述一件事情。 表一列都完全依赖于主键 学生课程表: 存在问题: 1....数据库事务默认自动提交 事务提交两种方式: 1自动提交: mysql就是自动提交 一条DML(增删改)语句会自动提交一次事务。

3.4K30

分析查询语句EXPLAIN详解,一步一步带你了解字段含义

4、type列 这一列表示关联类型访问类型,即MySQL决定如何查找表行,查找数据行记录大概范围。...(阿里巴巴开发手册要求) 1、NULL MySQL能够优化阶段分解查询语句,执行阶段用不着再访问表索引。...不要使用possible_keys列idx_name索引 7、key_len列 这一列显示了mysql索引里使用字节数,通过这个值可以算出具体使用了索引哪些列。...8、ref列 这一列显示了key列记录索引,表查找值所用到常量,常见有:const(常量),字段名(例:film.id) 显示索引一列被使用了,如果可能的话,是一个常数。...9、rows列 MySQL估算会扫描行数,数值越小越好。也就是根据表统计信息及索引选用情况,大致估算找到所需记录需要读取行数。 10、Extra列 这一列展示是额外信息。

32910
领券