Mysql基础(一)

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):数据操纵语言,用于改变数据库中的数据,主要包括 INSERTDROPALERT 语句;

  • DDL(Data Definition Language):数据库定义语言,用于数据库和表的创建,修改,删除。主要包括 CREATE 、DROPALERT 语句;

  • 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;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值