mysql常用命令

-- ----- MySQL 基本操作 ------------------
-- 修改表结构
-- 添加列 - 意思:向某张表添加一个字段 不为空默认为空字符串 添加到 test字段后面
-- ALTER TABLE `表名` ADD `字段` VARCHAR(255) NOT NULL DEFAULT '' AFTER `test`;

-- 修改列
-- ALTER TABLE `表名` MODIFY `字段` VARCHAR(60);

-- 修改表名
-- RENAME TABLE `当前表名` TO `新表名`;

-- 修改表的字符集
-- ALTER TABLE `表名` CHARACTER SET utf8;

-- 修改表的某一列名称
-- ALTER TABLE `表名` CHANGE `当前字段名` `新字段名` VARCHAR(32) NOT NULL DEFAULT '';

-- 查看表结构
-- DESCRIBE `表名`;


-- 创建表
-- PRIMARY KEY 主键唯一不能为空不能重复
-- UNIQUE 表示不允许重复
-- FOREIGN KEY 表示外键,主表必须是PRIMARY KEY或者UNIQUE
-- AUTO_INCREMENT 自增长
-- CREATE TABLE `表名`(
--         FOREIGN KEY (`从表字段`) REFERENCES `主表名`(`主表字段`)
-- ) CHARSET utf8 COLLATE utf8_bin ENGINE INNODB;

-- 删除表
-- DROP TABLE `表名`;


-- 存储引擎
-- 常用引擎:
-- INNODB - 支持事务、支持外键、行锁
-- MYISAM - 插入速度快、不支持外键和事务、表锁
-- MEMORY - 数据存在内存中、执行速度超级快、默认支持索引、临时表、表锁、不支持外键和事务

-- 查看所有的存储引擎
-- SHOW ENGINEs;

-- 修改存储引擎
-- ALTER TABLE `表名` ENGINE = 存储引擎;


-- 视图
-- 创建视图
-- CREATE VIEW `视图名` AS SELECT语句;

-- 查看创建视图的命令
-- SHOW CREATE VIEW `视图名`;

-- 删除视图
-- DROP VIEW 视图名1, 视图名2;


-- 索引
-- 索引的类型
-- 1. 主键索引 - 主键自动为主索引 PRIMARY KEY
-- 2. 唯一索引 - UNIQUE
-- 3. 普通索引 - INDEX
-- 4. 全文索引 - FULLTEXT[适用于MyISAM] - 一般开发不用

-- 索引使用
-- 添加索引
-- CREATE [索引类型,不填代表普通索引] INDEX `定义索引名称` ON `表名`(`字段名`);

-- 删除索引
-- DROP INDEX `定义的索引名称` ON `表名`;

-- 删除主键索引
-- ALTER TABLE `表名` DROP PRIMARY KEY;

-- 查询索引
-- SHOW INDEX FROM `表名`;


-- 事务 
-- 脏读 
-- 当一个事务读取到另一个事务未提交的修改、删除、插入时,产生脏读
-- 不可重复读 
-- 同一查询在同一事务中多次进行,由于其他提交事务所做的修改或删除,每次返回不同的结果集,此时发生不可重复读
-- 幻读
-- 同一查询在同一事务中进行多次,由于其他提交事务所做的插入操作,每次返回不同的结果集,此时发生幻读

-- 隔离级别:
-- READ UNCOMMITTED     - 读未提交
-- READ COMMITTED         - 读已提交
-- REPEATABLE READ        - 可重复读
-- SERIALIZABLE              - 可串行化

-- 操作
-- START TRANSACTION;                            - 开始事务
-- SAVEPOINT `定义保存点名`;             - 设置保存点
-- ROLLBACK TO `保存点名`;                 - 事务回退到某个保存点
-- ROLLBACK                                                - 回退到最开始位置
-- COMMIT                                                    - 提交事务

-- 查看当前会话隔离级别 - tx_isolation 老版本 - transaction_isolation - 新版本
-- SELECT @@transaction_isolation;

-- 查看系统当前隔离级别
-- SELECT @@global.transaction_isolation;

-- 设置当前会话隔离级别
-- SET SESSION TRANSACTION ISOLATION LEVEL 级别;

-- 设置系统当前隔离级别
-- SET SESSION TRANSACTION ISOLATION LEVEL 级别;

-- 事务的ACID特性
-- 原子性:是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
-- 一致性:事务必须使数据库从一个一致性状态变换到另一个一致性状态。
-- 隔离性:事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要互相隔离。
-- 持久性:是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发送故障也不应该对其有任何影响。


-- 表数据的CRUD操作
-- 添加数据 
-- INSERT INTO `表名` VALUES (1), (2), (3);

-- 查询某张表
-- SELECT * FROM `表名`;

-- 修改表数据 
-- 小知识:
-- 累加 - `字段名` = `字段名` + 值
-- 修改多个用逗号分割
-- UPDATE `表名` SET `字段名` = 值 WHERE `id` = 1; 

-- 删除表中数据
-- DELETE FROM `表名` WHERE `id` = 1;


-- 表数据的查询
-- 知识:如果查询语句同时包含了 GROUP BY, HAVING, LIMIT, ORDER BY 那么顺序是 GROUP BY, HAVING, LIMIT, ORDER BY
-- 查询表中所有数据
-- SELECT * FROM `表名`;

-- 查询表中所有数据 - 去掉重复
-- SELECT DISTINCT * FROM `表名`;

-- 分页
-- SELECT * FROM `表名` LIMIT 0, 2;

-- 查询特定列
-- SELECT `字段1`, `字段2` FROM `表名`;

-- 查询某几列的总合
-- SELECT (`字段1` + `字段2` + `字段3`) AS `新列名` FROM `表名`;

-- 查询字段以某个字开头的  LIKE - % 0~多个字符  _ 单个字符
-- SELECT * FROM `表名` WHERE `字段` LIKE '哈哈%';

-- 查询字段在某个区间 0 ~ 999 (包含0和999)
-- SELECT * FROM `表名` WHERE `字段` BETWEEN 0 AND 999;

-- 查询字段包含了哪些值
-- SELECT * FROM `表名` WHERE `字段` IN (0, 1, 2);

-- 排序 - 默认升序 - DESC: 降序  升序: ASC
-- SELECT * FROM `表名` ORDER BY `字段` DESC;

-- 多表查询
-- SELECT * FROM `表1`, `表2`;

-- 自连接 - 把同一张表当做两张表使用
-- SELECT * FROM `表名` 别名, `表名` 别名;

-- 子查询 - (嵌套SELECT) 如:
-- SELECT * FROM `表1` WHERE `字段` = (嵌套SELECT);

-- 联合查询 - UNION ALL: 不会去重  UNION: 会去重
-- 查询语句 UNION 查询语句

-- 左外连接 - 左表完整展示
-- SELECT * FROM `左表` LEFT JOIN `右表` ON 表之间的关联条件;

-- 右外连接 - 右表完整展示
-- SELECT * FROM `左表` RIGHT JOIN `右表` ON 表之间的关联条件;


-- 聚合函数
-- 统计总数
-- SELECT COUNT(*) FROM `表名`;

-- 统计和
-- SELECT SUM(`字段`) FROM `表名`;

-- 统计平均值
-- SELECT AVG(`字段`) FROM `表名`;

-- 合计函数 - MAX(最大值) 和 MIN(最小值)
-- SELECT MAX(`字段`), MIN(`字段`) FROM `表名`;

-- 按照某个字段分组查询 - 如果带条件使用 HAVING
-- SELECT MAX(`字段`) FROM `表名` GROUP BY `字段` HAVING 条件;


-- 字符串相关函数 - 字符串可以用字段代替
-- 返回字符串字符集
-- SELECT CHARSET(`字符串`) FROM `string`;

-- 连接字符串
-- SELECT CONCAT(`字符串`, `字符串`, `字符串`) FROM `表名`;

-- 返回特定字符在某个字段出现的位置,没有返回0
-- SELECT INSTR(`字符串`, `字符串`) FROM `表名`;

-- 转换成大写
-- SELECT UCASE(`字符串`) FROM `表名`;

-- 转换成小写
-- SELECT LCASE(`字符串`) FROM `表名`;

-- 从左边取多少个字符
-- SELECT LEFT(`字符串`, 整数) FROM `表名`;

-- 从右边取多少个字符
-- SELECT RIGHT(`字符串`, 整数) FROM `表名`;

-- 获取长度
-- SELECT LENGTH(`字符串`) FROM `表名`;

-- 替换内容
-- SELECT REPLACE(`字符串`, `字符串`, `字符串`) FROM `表名`;

-- 比较字符串大小
-- SELECT STRCMP(`字符串`, `字符串`) FROM `表名`;

-- 从某个位置到某个位置,获取中间的内容
-- SELECT SUBSTRING(`字符串`, 整数, 整数) FROM `表名`;

-- 去除字符串前后空格 - 去除左侧: LTRIM  去除右侧: RTRIM  去除前后 TRIM
-- SELECT TRIM(`字符串`) FROM `表名`;


-- 数学相关函数 - DUAL 模拟库
-- 绝对值
-- SELECT ABS(-10) FROM DUAL;

-- 十进制转二进制
-- SELECT BIN(10) FROM DUAL;

-- 进制转换
-- SELECT CONV(10, 10, 2) FROM DUAL;

-- 向上取整
-- SELECT CEILING(1.1) FROM DUAL;

-- 向下取整
-- SELECT FLOOR(1.1) FROM DUAL;

-- 保留小数位数
-- SELECT FORMAT(12345.6789, 2) FROM DUAL;

-- 转十六进制
-- SELECT HEX(10) FROM DUAL;

-- 求最小值
-- SELECT LEAST(1, 2, 3, 4, 5) FROM DUAL;

-- 求余
-- SELECT MOD(10, 3) FROM DUAL;

-- 返回随机数 - 范围 0 <= ~ <= 1.0
-- SELECT RAND() FROM DUAL;


-- 关于时间的常用函数
-- 当前日期                                               - CURRENT_DATE()
-- 当前时间                                               - CURRENT_TIME()
-- 当前时间戳                                             - CURRENT_TIMESTAMP()
-- 返回datetime的日期部分                        - DATE(datetime)
-- 在date上加上时间或日期                        - DATE_ADD(date, INTERVAL 值 类型)
-- 在date上减去一个时间                            - DATE_SUB(date, INTERVAL 值 类型)
-- 两个日期差(天)                                    - DATEDIFF(时间1, 时间2)
-- 两个时间差(?时?分?秒)                    - TIMEDIFF(时间1, 时间2)
-- 当前时间                                                    - NOW()
-- 返回1970-1-1到现在的秒数                    - UNIX_TIMESTAMP()
-- 把UNIX_TIMESTAMP秒数,转成指定格式日期
-- FROM_UNIXTIME(秒数, '%Y-%m-%d')


-- 加密函数
-- 查询用户                                                    - SELECT USER();
-- 查询当前使用数据库的名称                    - SELECT DATABASE();
-- 为字符串算出一个MD5 32的字符串        - SELECT MD5(字符串);
 
 
 
 
-- 流程控制函数
-- 判断是否为真 返回对应值
-- SELECT IF(TRUE, 'LUE', 'lue');            

-- 判断是否为空,空返回NULL,否则返回对应值
-- SELECT IFNULL(TRUE, 'LUE', 'lue'); 

-- 类似于if else-if else
-- SELECT CASE 
--     WHEN FALSE THEN 'LUE'
--     WHEN TRUE THEN 'lue'
--     ELSE 'hihi' END;


-- MySQL用户管理
-- 创建新用户 - 'lue' 表示用户名 'localhost' 表示登录地址  '123456' 表示密码
-- CREATE USER 'lue'@'localhost' IDENTIFIED BY '123456';

-- 查询MySQL用户表
-- SELECT * FROM mysql.user;

-- 删除用户
-- DROP USER 'lue'@'localhost';

-- 修改自己密码
-- SET PASSWORD = PASSWORD('admin');

-- 修改他人密码,需要权限
-- SET PASSWORD FOR 'lue'@'localhost' = PASSWORD('admin');

-- ----------  结束 ----------------------

-- ----- MySQL 基本命令 -------------------
-- 启动 MySQL
-- net start mysql

-- 关闭 MySQL
-- net stop mysql

-- MySQL 登录
-- mysql -u root -p
-- admin

-- 退出
-- quit

-- 备份数据库 - 命令行直接输入-不用进入mysql
-- mysqldump -u root -p -B test > D:\\test.sql

-- 恢复数据库 - 需要进入mysql命令行执行
-- source D:\\test.sql

-- 查看所有数据库
-- SHOW DATABASES;

-- 创建数据库
-- CREATE DATABASE `test`;

-- 删除数据库
-- DROP DATABASE `test`;
-- ----------  结束  ------------------------

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值