MySQL基础_第4节_运算符、函数、索引、图形化管理工具

MySQL中的运算符

算数运算符

在这里插入图片描述

  • MySQL接受数据类型转换
    SELECT 1 + '3MAIZI'
    
    • WARNING信息中显示,把3MAIZI转化为了3。
      在这里插入图片描述
  • 3/0,3 DIV 0 结果都是 NULL
  • 对于 NULL 的所有操作都为 NULL

比较运算符

在这里插入图片描述

  • 结果之能为真(1)或者假(0)
  • <>、IS NOT NULL 不等于 NULL
  • <=>、IS NULL 等于NULL。
  • 判断表格中的值
    -- 判断表格中的用户名是否为king
    SELECT username, username != 'king' FROM studnet;
    
    在这里插入图片描述

逻辑运算符

在这里插入图片描述

  • &&、AND
    在这里插入图片描述
  • ||、OR
    • 1为真,所以1||NULL结果为真
    • 0为假,所以0||NULL结果为假
      在这里插入图片描述
  • !、NOT
    在这里插入图片描述
  • XOR,二者不同则为真
    在这里插入图片描述

运算符的优先级

在这里插入图片描述

  • 可以通过括号()改变优先级

MySQL中的函数

数学函数

在这里插入图片描述

  • CEIL() 进一取整
    在这里插入图片描述

  • FLOOR() 舍一取整
    在这里插入图片描述

  • MOD(N,M) 返回N除以M余值

    • 如果 N < M 则返回N
      在这里插入图片描述
      在这里插入图片描述
  • POWER() 幂运算
    在这里插入图片描述

  • ROUND() 四舍五入
    在这里插入图片描述

  • TRUNCATE() 数字截取
    在这里插入图片描述

  • ABS() 取绝对值

  • PI() 圆周率
    在这里插入图片描述

  • RAND() 随机数 和RAND(X) 固定随机数
    在这里插入图片描述

    • 随机排序
      在这里插入图片描述
    • 固定随机数
      在这里插入图片描述
  • SIGN(X) 得到数字的符号:负数返回-1,0返回0,正数返回1。
    在这里插入图片描述

  • EXP(X) e的X次方。
    在这里插入图片描述

字符串函数

在这里插入图片描述

  • 返回字符串长度:CHAR_LENGTH(S)、LENGTH(S)
    在这里插入图片描述
    • 中文长度两种方式计算不同
      在这里插入图片描述
  • CONCAT(S1, S2, …) 将字符串合并为一个字符串
    在这里插入图片描述
    • 如果字符串中有 NULL ,则结果为 NULL
      在这里插入图片描述
  • CONCAT_WS(X, S1, S2):以X来分割链接字符串
    在这里插入图片描述
    • 如果分割符为 NULL ,则结果为 NULL
      在这里插入图片描述

    • 如果字符串中有 NULL,则结果部位 NULL
      在这里插入图片描述

  • LEFT(S, N),RIGHT(S, N) 返回前几个字符串
    在这里插入图片描述
  • LPAD(S1, LEN, S2),RPAD(S1, LEN, S2) 将字符填充至几位长度
    在这里插入图片描述

在这里插入图片描述

  • TRIM

    • 去掉空格
      在这里插入图片描述
    • 去掉开头和结尾的字符
      在这里插入图片描述
  • REPEAT(S, N):重复字符串S,N次
    在这里插入图片描述

  • SPACE(N):返回N个空格
    在这里插入图片描述

  • REPLACE(S, S1, S2) 在S中搜索S1,替换成S2。如果没找到的话,返回原来的字符串。

    • 搜索的时候是区分大小写的
      在这里插入图片描述
  • STRCMP(S1, S2) 比较字符串。

    • 如果S1、S2相等返回0,如果S1根据当前的排序顺序比S2小则返回-1,否则返回1
    • 不区分大小写
      在这里插入图片描述
  • SUBSTRING(S, N, LEN):在S字符串中,从N位置开始,截取LEN长度的字符串。

    • 字符串下标从1开始,包含起始字符。
      在这里插入图片描述
  • REVERSE(S):反转字符串
    在这里插入图片描述

  • ELT(N, S1, S2, …):返回指定位置N的字符串
    在这里插入图片描述

日期时间函数

在这里插入图片描述

  • CURDATE() \ CURRENT_DATE()
    在这里插入图片描述

  • CURTIME() \ CURRENT_TIME()
    在这里插入图片描述

  • NOW()
    在这里插入图片描述

  • MONTH(D)
    在这里插入图片描述
    在这里插入图片描述

  • MONTHNAME(D)
    在这里插入图片描述

  • DAYNAME(D):返回得到一周的周几。
    在这里插入图片描述

  • DAYOFWEEK(D):返回得到一周的第几天(1~7)。1代表周日,7代表周六
    在这里插入图片描述

  • WEEKDAY(D):0代表星期一,5代表周六
    在这里插入图片描述

  • WEEK(D):返回得到一年内的第几周。
    在这里插入图片描述

在这里插入图片描述

  • DATEDIFF(D1, D2):计算D1、D2两个日期中间相隔的天数。
    在这里插入图片描述

条件判断函数

在这里插入图片描述

  • IF(EXPR, V1, V2):如果表达式EXPR成立,则返回结果V1,否则返回V2。
    在这里插入图片描述
    在这里插入图片描述

  • IFNULL(V1, V2):如果V1的不为NULL,则返回结果V1,否则返回V2。

    -- 如果年龄为NULL的话,则返回100。
    SELECT id, username, age, IFNULL(age, '100') FROM cms_user;
    

    在这里插入图片描述

  • CASE WHEN exp1
    THEN v1 [WHEN exp2 
    THEN v2] [ELSE vn]
    END
    
    • CASE表示函数开始,END表示函数结束。如果表达式exp1成立,则返回v1。如果表达式exp2成立,则返回v2。依此类推,最后遇到ELSE时,返回vn。
      SELECT id, username, score, CASE WHEN score>60 THEN '不错' WHEN score=60 THEN '刚及格' ELSE '没及格' END FROM student;
      
      在这里插入图片描述

系统信息函数

在这里插入图片描述

  • CHARSET(STR)
    在这里插入图片描述

加密函数

在这里插入图片描述

其它常用函数

在这里插入图片描述

MySQL中的索引

什么是索引?

  • 索引由数据库中一列或多列组合而成,其作用是提高对表中数据的查询速度
  • 优点提高检索数据的速度
  • 缺点:创建和维护索引需要耗费时间
  • 提高查询速度,会减慢写入速度

索引的分类?

  • 普通索引:相当于书签
  • 唯一索引:字段的值不可以重复,例如UNIQUE KEY。主键也是一个特殊的唯一索引。
  • 全文索引:只能创建在英文字符类的字段上。
  • 单列索引:在一个字段上创建索引。
  • 多列索引:在多个字段上创建索引。
  • 空间索引:要求数据类型也是空间。

如何创建索引?

  • 创建表的时候创建索引
CREATE TABLE tbl_name(
字段名称 字段类型 [完整性约束条件],,
[UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY [索引名称](字段名称[(长度)] [ASC|DESC])
);
  • 在已经存在的表上创建索引
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名称 ON 表名 {字段名称[(长度)] [ASC|DESC]}

ALTER TABLE tbl_name ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名称(字段名称[(长度)] [ASC|DESC]);

如何删除索引?

  • DROP INDEX 索引名称 ON tbl_name

索引相关测试

  • 创建普通索引
-- 创建表时,创建普通索引
CREATE TABLE test4(
id TINYINT UNSIGNED,
username VARCHAR(20),
INDEX in_id(id) COMMENT '创建普通索引',
KEY in_username(username) COMMENT '创建普通索引'
);

-- 删除索引
DROP INDEX in_id ON test4;
DROP INDEX in_username ON test4;

-- 添加普通索引
CREATE INDEX in_id ON test4(id) COMMENT 'in_id为索引名称,如果不指定,则会自动设置';
ALTER TABLE test4 ADD INDEX in_username(username);

在这里插入图片描述

  • 创建唯一索引:可以有多个唯一性索引,但是只可以有一个主键索引。
-- 创建表时,创建唯一索引
CREATE TABLE test5(
id TINYINT UNSIGNED AUTO_INCREMENT KEY COMMENT '主键,主键也是一个特殊的唯一索引',
username VARCHAR(20) NOT NULL UNIQUE COMMENT '唯一性约束',
card CHAR(18) NOT NULL,
UNIQUE KEY uni_card(card) COMMENT '建立唯一性索引'
);

-- 删除索引
ALTER TABLE test5 DROP INDEX uni_card;
DROP INDEX username ON test5;

-- 添加唯一索引
CREATE UNIQUE INDEX uni_username ON test5(username);
ALTER TABLE test5 ADD UNIQUE INDEX uni_card(card);

在这里插入图片描述

  • 创建全文索引
-- 创建表时,创建全文索引
CREATE TABLE test6(
id TINYINT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL UNIQUE,
userDesc VARCHAR(20) NOT NULL,
FULLTEXT INDEX full_userDesc(userDesc) COMMENT '创建全文索引'
);

-- 删除索引
DROP INDEX full_userDesc ON test6;

-- 添加全文索引
CREATE FULLTEXT INDEX full_userDesc ON test6(userDesc);

在这里插入图片描述

  • 创建单列索引
-- 创建表时,创建单列索引
CREATE TABLE test7(
id TINYINT UNSIGNED AUTO_INCREMENT KEY,
test1 VARCHAR(20) NOT NULL,
test2 VARCHAR(20) NOT NULL,
test3 VARCHAR(20) NOT NULL,
test4 VARCHAR(20) NOT NULL,
INDEX in_test1(test1) COMMENT '创建单列索引'
);
  • 创建多列索引
-- 创建表时,创建多列索引
CREATE TABLE test8(
id TINYINT UNSIGNED AUTO_INCREMENT KEY,
test1 VARCHAR(20) NOT NULL,
test2 VARCHAR(20) NOT NULL,
test3 VARCHAR(20) NOT NULL,
test4 VARCHAR(20) NOT NULL,
INDEX mul_t1_t2_t3(test1,test2,test3)
) COMMENT '创建多列索引';

-- 删除索引
ALTER TABLE test8 DROP INDEX mul_t1_t2_t3;

-- 添加多列索引
ALTER TABLE test8 ADD INDEX mul_ti_t2_t3(test1,test2,test3);


-- 创建表时,创建多列唯一索引
CREATE TABLE test9(
id TINYINT UNSIGNED AUTO_INCREMENT KEY,
test1 VARCHAR(20) NOT NULL,
test2 VARCHAR(20) NOT NULL,
test3 VARCHAR(20) NOT NULL,
test4 VARCHAR(20) NOT NULL,
UNIQUE KEY mul_t1_t2_t3(test1,test2,test3)
);

在这里插入图片描述

  • 创建空间索引:存储引擎必须为MyISAM
-- 创建表时,创建空间索引
CREATE TABLE test10(
id TINYINT UNSIGNED AUTO_INCREMENT KEY,
test GEOMETRY NOT NULL,
SPATIAL INDEX spa_test(test) COMMENT '创建空间索引,禁止为空'
)ENGINE=MyISAM;

-- 删除索引
DROP INDEX spa_test ON test10;

-- 添加空间索引
CREATE SPATIAL INDEX spa_test ON test10(test);

在这里插入图片描述

图形化工具管理MySQL

PHPMyAdmin的安装及使用

  • phpMyAdmin 是一个用PHP编写的软件工具,可以通过web方式控制和操作MySQL数据库
    在这里插入图片描述

SQLyog的安装及使用

  • SQLyog是业界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。
  • 特点
    • 基于C++和MySQLAPI编程
    • 方便快捷的数据库同步与数据库结构同步工具
    • 易用的数据库、数据表备份与还原功能
    • 支持导入与导出XML、HTML、CSV等多种格式的数据
    • 直接运行批量SQL脚本文件,速度极快
    • 新版本更是增加了强大的数据迁
      在这里插入图片描述
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值