1、 Mysql 常见的命令介绍
启动和停止Mysql服务
启动:net start mysql 【服务的名称】
停止:net stop mysql 【服务的名称】
Mysql 登录/退出
登录:mysql -h 主机名 -P 端口号 -u用户名 -p密码
【例如】mysql -h localhost -u root -proot
退出:exit 或 ctrl+c
mysql 常见命令
1、进入mysql,在命令行中输入
mysql -uroot -proot
例 : mysql -uroot -proot
2、查看mysql有哪些数据库
show databases;
3、新建一个数据库
create database 数据库名;
例:create database user;
4、选择一个数据库
use 数据库名称;
例: use mydatabase;
5、查询当前数据库中的所有数据表
show tables;
6、新建一个数据表
create table user(
id int,
name varchar(20)
);
7、查看表的结构
desc 表名名称;
例:desc user;
8、查看表中的所有记录
select * from 表名;
例:select * from user;
9、向表中插入记录
insert into 表名(列名) values (列对应的值的列表);
注意:插入 varchar 或 data 型的数据要用单引号引起来
例: insert into user (id,name) values(1,"Tom");
10、修改记录
update 表名 set 列1 = 新值, 列2 = 新值 where ...
例:update user set name="Jerry" where id = 1;
11、删除记录
delete from 表名 where ...
例: delete from user where id = 1;
12、删除数据库中的表
drop table 表名;
例:drop table user;
查看mysql服务端版本的命令
登录到mysql服务端
select version();
没有登录到mysql服务端
在cmd 命令界面输入:mysql --version
mysql规范
- 不区分大小写,但建议关键字大写,表名,列名小写
- 每句话用 ";"或\G结尾,最好分好结尾
- 每条命令根据需要,可以进行缩进或换行
- 注释:①单行注释:#注释文字;②单行注释:--注释文字(后方要有一个空格);③多行注释: 注释文字/* */。
sql语言的分类
-
DQL(Data Query Language):数据查询语言,用于检索数据库中的数据,主要是
SELECT
语句; -
DML(Data Manipulation Language):数据操纵语言,用于改变数据库中的数据,主要包括
INSERT
、DROP
、ALERT
语句; -
DDL(Data Definition Language):数据库定义语言,用于数据库和表的创建,修改,删除。主要包括
CREATE
、DROP
、ALERT
语句; -
DCL (Data Control Language ):数据控制语言,用于定义用户的访问权限和安全级别。主要包括
GRANT
和REVOKE
语句; -
TCL(Transaction Control Language):事务控制语言,用于维护数据的一致性,包括COMMIT、ROLLBACK和SAVEPOINT语句。
2、Mysql DQL语言
1 去重
# select distinct 字段名 from 表名;
#案例:查询员工表中涉及的所有部门编号
select distinct department_id from employees;
2 +号的作用
#案例:查询员工的名和姓,并显示为姓名
select 100+90; 两个操作都为数值类型,做加法运算
select '123+90';其中一方为字符型,试图将字符型数值类型转换为数值类型如果转换成功,则继续做加法运算
select 'john + 90';如果转换失败,这件字符类型数值转换为0
select null+0;只要其中一方为null,则结果肯定为null;
SELECT last_name + first_name AS 姓名 FROM employees;
3 concat 函数
# 功能:拼接字符
select concat('a','b','c') AS 结果 from employees;
select concat(last_name,first_name) AS 姓名 from employees;
4 ifnull 函数
# IFNULL(expression_1,expression_2),如果expression_1不为null返回expression_1,否则返回
expression_2. select ifnull(ccommission_pct,0) from employees;
between and 包含左右边界
字符函数具体案例:
#一.字符函数
#1.length 获取参数值的字节值
SELECT LENGTH('subei');
SELECT LENGTH('鬼谷子qwe');
SHOW VARIABLES LIKE '%char%';
#2.concat 拼接字符串
SELECT CONCAT(last_name,'_',first_name) 姓名 FROM employees;
#3.upper:变大写、lower:变小写
SELECT UPPER('ton');
SELECT LOWER('ton');
#示例:将姓变大写,名变小写,然后拼接
SELECT CONCAT(UPPER(last_name),LOWER(first_name)) 姓名 FROM employees;
#4.substr、substring
#注意:索引从1开始
#截取从指定所有处后面的所以字符
SELECT SUBSTR('吴刚伐桂在天上',4) out_put;
#截取从指定索引处指定字符长度的字符
SELECT SUBSTR('吴刚伐桂在天上',1,2) out_put;
#案例:姓名中首字符大写,其他字符小写,然后用_拼接,显示出来
SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),'_',LOWER(SUBSTR(last_name,2))) out_put FROM employees;
#5.instr:获取子串第一次出现的索引,找不到返回0
SELECT INSTR('MySQL技术进阶','技术') AS out_put;
#6.trim:去前后空格
SELECT LENGTH(TRIM(' 霍山 ')) AS out_put;
SELECT TRIM('+' FROM '++++李刚+++刘邦+++') AS out_put;
#7.lpad:用指定的字符实现左填充指定长度
SELECT LPAD('梅林',8,'+') AS out_put;
#8.rpad:用指定的字符实现右填充指定长度
SELECT RPAD('梅林',5,'&') AS out_put;
#9.replace:替换
SELECT REPLACE('莉莉伊万斯的青梅竹马是詹姆','詹姆','斯内普') AS out_put;
数学函数具体案例:
#1.round:四舍五入
SELECT ROUND(1.45);
SELECT ROUND(1.567,2);
#2.ceil:向上取整,返回>=该参数的最小整数
SELECT CEIL(1.005);
SELECT CEIL(-1.002);
#3.floor:向下取整,返回<=该参数的最大整数
SELECT FLOOR(-9.99);
#4.truncate:截断
SELECT TRUNCATE(1.65,1);
#5.mod:取余
SELECT MOD(10,3);
#6.rand:获取随机数,返回0-1之间的小数
SELECT RAND();
日期函数具体案例:
#1.now:返回当前系统时间+日期
SELECT NOW();
#2.year:返回年
SELECT YEAR(NOW());
SELECT YEAR(hiredate) 年 FROM employees;
#3.month:返回月
#MONTHNAME:以英文形式返回月
SELECT MONTH(NOW());
SELECT MONTHNAME(NOW());
#4.day:返回日
#DATEDIFF:返回两个日期相差的天数
SELECT DAY(NOW());
SELECT DATEDIFF('2020/06/30','2020/06/21');
#5.str_to_date:将字符通过指定格式转换成日期
SELECT STR_TO_DATE('2020-5-13','%Y-%c-%d') AS out_put;
#6.date_format:将日期转换成字符
SELECT DATE_FORMAT('2020/6/6','%Y年%m月%d日') AS out_put;
SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日') AS out_put;
#7.curdate:返回当前日期
SELECT CURDATE();
#8.curtime:返回当前时间
SELECT CURTIME();
其他函数具体案例:
#version 当前数据库服务器的版本
SELECT VERSION();
#database 当前打开的数据库
SELECT DATABASE();
#user当前用户
SELECT USER();
#password('字符'):返回该字符的密码形式
SELECT PASSWORD('a');
#md5('字符'):返回该字符的md5加密形式
SELECT MD5('a');
流程控制函数具体案例:
#1.if函数: if else效果
SELECT IF(10<5,'大','小');
SELECT last_name,commission_pct,IF(commission_pct IS NULL,'没奖金!!!','有奖金!!!') 备注 FROM employees;
#2.case函数
#使用一:switch case 的效果
/*
java中
switch(变量或表达式){
case 常量1:语句1;break;
...
default:语句n;break;
}
mysql中
case 要判断的变量或表达式
when 常量1 then 要显示的值1或语句1
when 常量2 then 要显示的值2或语句2
...
else 要显示的值n或语句n
end
#案例:查询员工的工资,要求:
部门号=30,显示的工资为1.1倍
部门号=40,显示的工资为1.2倍
部门号=50,显示的工资为1.3倍
其他部门,显示的工资为原工资
*/
SELECT salary 原始工资,department_id,
CASE department_id
WHEN 30 THEN salary*1.1
WHEN 40 THEN salary*1.2
WHEN 50 THEN salary*1.3
ELSE salary
END AS 新工资
FROM employees;
#3.case函数的使用二:类似于多重if
mysql中:
case
when 条件1 then 要显示的值1或语句1
when 条件2 then 要显示的值2或语句2
...
else 要显示的值n或语句n
end
#案例:查询员工的工资的情况
/*
如果工资>20000,显示A级别
如果工资>15000,显示B级别
如果工资>10000,显示c级别
否则,显示D级别
*/
SELECT salary,
CASE
WHEN salary>20000 THEN 'A'
WHEN salary>15000 THEN 'B'
WHEN salary>10000 THEN 'C'
ELSE 'D'
END AS 工资等级
FROM employees;