MYSQL命令总结大全(并不是)

--MYSQL8.0.16
--进入MYSQL
mysql -u root -p
--然后会提示输入密码,输入即可进入mysql

--退出
quit
--或者
exit

--如果不想执行正在输入的命令,即,在命令输入到一半时,使其停止
\c

--查看数据库版本
SELECT VERSION();

--展示用户
SELECT USER();

--创建数据库
CREATE DATABASE new_database_name;

--删除数据库
DROP DATABSE database_name;

--展示所有数据库
SHOW DATABESES;

--选择某个数据库进行操作
USE database_name;

--展示操作警告,类似于展示错误信息
SHOW WARNINGS;

--展示所有表
SHOW TABLES;

--创建表
CREATE TABLE table_name
(filed type, filed type, ..., filed type);
--应用变化
CREATE TABLE IF NOT EXISTS mytable
(id1 INT UNSIGNED AUTO_INCREMENT,
id2 VARCHAR(100) NOT NULL,
id3 VARCHAR(40) NOT NULL,
id4 DATE,
PRIMARY KEY(id1))ENGINE=InnoDB DEFAULT CHARSET = utf8;
/*
实例解析:
如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。 
ENGINE 设置存储引擎,CHARSET 设置编码。
*/

--删除表格
DROP TABLE table_name;

--删除表格信息,但不删除表格
DELETE FROM table_name;

--展示表格信息,包括filed,type,NULL,key,default,extra
DESCRIBE table_name;

--加载文件信息入表格
--用tab分隔字段值
LOAD DATA LOCAL INFILE '/PATH/FILE_NAME' INTO TABLE table_name;
/*
LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet; 命令报错:
ERROR 1148 (42000): The used command is not allowed with this MySQL version
原因可能是:服务器端,local_infile默认开启;客户端,local_infile默认关闭,因此用的时候需要打开。
官网对此的解释是“if the statement fails, it is likely that your MySQL installation does not have local file capability enabled by default. ”大意是,如果这条命令失败,可能是因为MYSQL安装时没有默认启用local file功能。
退出MYSQL,使用以下命令进入MYSQL,打开local file功能:
mysql --local-infile=1 -u root -p
*/
--涉及FILE的格式,用tab分隔每个字段值,用换行分隔每行记录
--在文本记录中用 \N 表示NULL
LOAD DATA LOCAL INFILE '/PATH/FILE_NAME' INTO TABLE table_name LINES TERMINATED BY '\r\n';

--插入某行信息入表格
INSERT INTO table_name (filed1, filed2, ..., filedN) VALUES(value1, value2, ..., valueN);
--如果插入的是文本值,要带单引号或双引号

--UPDATE更新
--更新表格的方法:1、整个删除再导入已经修改的新文件。2、UPDATE修改部分数据
UPDATE table_name SET filed = new_value WHERE conditions;

--无需进行表格选择,即可开始以下操作
--选择整个表
SELECT * FROM table_name;

--WHERE行筛选
SELECT * FROM table_name WHERE conditions_to_satify;

--WHERE条件组合
SELECT * FROM table_name WHERE condition;
SELECT * FROM table_name WHERE condition1 AND condition2;
SELECT * FROM table_name WHERE condition1 OR condition2;
--AND OR优先处理AND,可以用()调整优先级

--列filed筛选
SELECT filed_a, filed_b, ..., filed_n FORM table_name;

--AS起别名alias,不会改变表格,只是展示和写代码的意义更清晰简洁
SELECT filed_a AS other_name FORM table_name;

--DISTINCT去重复。有一些属性的值重复出现,使用DISTINCT使其只输出一次
SELECT DISTINCT * FROM table_name;

--排序
--默认为升序ASC,可以设定为降序DESC
SELECT * FROM table_name WHERE conditions ORDER BY filed_a;
SELECT * FROM table_name ORDER BY filed_a DESC;
--多列排序,多方向排序。排序字段的先后也决定了排序的优先性。
--filed_a是升序排列,filed_b是降序排列。是在对filed_a排序后,保证filed_a的顺序的情况下,在同一个filed_a的值内部,对filed_b进行排列。也就是,总体上看filed_a是有序的,filed_b可能是无序的,仅仅是部分范围有序。
SELECT * FROM table_name ORDER BY filed_a, filed_b DESC;

--强制对String大小写敏感
--一般对大小写不敏感
SELECT * FROM table_name ORDER BY BINARY filed_a;

--DATE类型
--DATE类型可以用>, <, >=, <=, =, !=比较大小
--还有一些专用的算法函数

--展示当前日期YYYY-MM-DD
SELECT CURRENT_DATE;
SELECT CURDATE();

--展示当前日期时间YYYY-MM-DD HH:MM:SS
SELECT NOW();

--TIMESTAMPDIFF(期待输出的单位,时间1,时间2)计算时间差
SELECT TIMESTAMPDIFF(YEAR, "1999-12-01", CURDATE()) AS alias FROM pet;

--YEAR(),MONTH(),DAYOFMONTH()参数是日期,返回其中的年份/月份/日子
SELECT MONTH(CURDATE());

--日期的计算
SELECT = MONTH(DATE_ADD(CURDATE), INTERVAL 1 MONTH));
SELECT '2018-09-01' + INTERVAL 1 DAY;

--一些简单的数学函数,会在字段名显示式子,在字段值显示计算结果
--MYSQL可用作简单计算器
SELECT SIN(PI())/4,(4+1)*5;

--IS
--NOT
--NULL
SELECT 1 IS NULL, 1 IS NOT NULL;
--所有与NULL的比较的结果都是空值,两个空值在GROUP BY 中被视为相等
SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1> NULL;
SELECT 0 IS NULL, ' ' IS NULL;



 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值