sudo apt-get update
sudo apt-get install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev
安装之后测试是否安装成功
sudo netstat -tap | grep mysql
出现以下信息安装成功:
登陆mysql数据库可以通过如下命令:
mysql -u root -p
查看显示所有相关库
show database();
查看当前数据库的版本
select version();
打开指定的库
use 库名;
查看当前库的所有表
show tables;
查看其他库的所有表
show tables from 库名;
创建表
creat table 表名(
列名 列类型,
列名 列类型,
);
查看表结构
desc 表名;
查看服务器的版本
select version();
去重distinct
select distinct job_id from 表名;
+号的作用只有一个:运算符,因此字符串的拼接只能用concat
select cancat(last_name, first_name) as 姓名 from 表名;
将值为null的全部转换为0
select ifnull (字段名, 0) as 重命名 from 表名;
条件查询
select 字段名 from 表名 where 筛选条件;
条件运算符: > < != <>
逻辑运算符:$$ || ! 与或非
模糊查询:
like 一般和通配符搭配:% 任意多个字符, 包含0个字符
_任意单个字符
between and, in , is null
以上运算符都是应用在筛选条件部分
查询第三个字符为n第五个字符为l的名字
select 字段名last_name from 表名 where last_name like '__n_l%';
查询员工名字中第二个字符为_的员工名,需要用到转义字符 \
select 字段名last_name from 表名 where last_name like '_\_%';
排序查询
select 查询列表 from 表名 【where 筛选条件】 order by 排序列表 【asc升序/desc降序】;
常见函数
调用:select 函数名(实参列表)【from 表】
分类:单行函数,分组函数
字符函数
substr:截取从指定索引处后的所有字符
select substr (’字符串‘, 索引);
instr 返回字符串第一次出现的的索引
select instr(‘字符串‘,’要查询的字符串‘);
lpad用指定的字符实现左填充指定长度
rpad右填充
select lpad(’字符串‘,12,’as');
数学函数
round:四舍五入
select round(1.23);
select round(1.23,2);
ceil:向上取整
floor向下取整
select ceil(1.02);
select floor(1.02);
truncate:截断
select truncate(1.02, 1);
mod:取余;
select mod(10,3);
select 10%3;
日期函数
now返回当前系统该日期+时间
select now();
curdate:返回当前系统日期,不包含时间
curtime
select curdate();
select curtime();
流程控制函数
if 函数,if else的效果
select if(10<5, ’大‘, ’小‘);
case函数使用一
case 要判断的字段或者表达式 when 常量1 then 要显示的值1或者语句1;
case 要判断的字段或者表达式 when 常量1 then 要显示的值1或者语句1;
…
else 要显示的值n或者语句n;
end
select salary 原始工资, department——id,
case 30 then salary *1.1
case 40 then salary * 1.2
else salary
end as 新工资
from employees;
case函数使用二
case
when 条件1 then 要显示的值1
when 条件1 then 要显示的值2
…
else 要显示的值n或者语句n
end
select salary,
case
when salary >20000 then 'a'
whtn salary >15000 then 'b'
else 'd'
end as 工资级别
from employees;
分组函数
sum, avg, max,min,count
select sum(salary)from employees;
计算两个日期相差多少天
select datediff('2020-10-1', '1995-1-1')
分组查询group by
select 分组函数,列(要求出现在goup by的后面)
from 表
【where筛选条件】
group by
【order by 句子】;
注意:查询列表必须特殊,要求是分组函数和group by后出现的字段
例1:查询每个工种的最高工资,分组前的筛选
select max(salary), job_id from employees group by job_id
查询那个部门的员工个数大于2 , 分组后筛选, 用having
select count(*),department_id
from employees
group by
having count(*)>2;
该部分仅为mySQL基础学习的一部分,还有很多知识需要学习,每天进步一点点
参考文献
Linux(Ubuntu)安装mysqlMySQL 基础+高级篇- 数据库 -sql -尚硅谷