MySql基本操作

1.数据库的介绍

1.数据库的优点
–存储数据也是存储到磁盘上
–结构化查询
2.数据库中的相关名词
DB:database–数据库:用来保存数据
DBMS:database management system–数据库管理系统:用来创建和管理数据库
SQL:structure query language–结构化查询语言:用来操作数据库中的数据
3.数据库如何保存数据
1.表用来保存数据,每个数据库可以有多张表
2.表中的每一列称为字段,类似于java中的属性
3.表中每一列的字段值构成了表中的一行,类似于java中的对象
4.常用的数据库
mysql,oracle,db2,sqlserver

2.mySQL

  第一种方式:
  select version()--输出当前数据库的版本
  第二种方式:
  mysql -V或者mysql --version--输出当前数据库的版本

3.SQL

DQL:Data Query language–数据查询语言:用来查询数据表中的数据
DML:Data manipulation language–数据操作语言:用来对数据表中的数据进行操作(增删改)
DDL:Data Define language–数据定义语言:定义数据库中的对象:库,表,字段

4.SQL语法规范

​ 1.不区分大小写,但是建议关键字大写,表格、字段名小写
​ 2.每行语句的结尾最后加上分号
​ 3.我们可以利用空格和缩进对代码进行样式的调整(一般来说关键字占一行,其它语句占一行)
​ 4.注释
​ 单行注释:#注释的内容
​ 单行注释:-- 注释的内容
​ 多行注释:/* 注释的内容 */

常用函数

/*
Mysql中的常见函数:类似于java中的方法
作用:1.隐藏了代码的可见性
2.可以多次调用
3.方便了开发人员的开发效率

   语法:select 函数名(实参列表) 【from 表名】
   
   常见函数的分类
      1.单行函数
         字符函数
      2.聚合函数或者组函数

*/
#字符函数
#1.length():注意汉字在mysql中占3个字节
SELECT LENGTH(“Hello World!”);
SELECT LENGTH(“I love 张三”);

#2.concat():可以指定连接符连接每个字符串
SELECT CONCAT(“Hello”,“World!”);
SELECT CONCAT(“I”,"-",“love”,"-",“wc”);

#3.substr():字符串下标从1开始,如果有三个参数,那么最有一个值规定的是截取的字符长度
SELECT SUBSTR(“我爱张三123”,3);
SELECT SUBSTR(“My name is zhangsan”,4,9);

#4.lower():将字符串的字母变为小写
SELECT LOWER(“HELLO WOrLd!”);

#5.upper():将字符串的字母变为大写
SELECT UPPER(“你好,zhangsan”);

#案例1:将员工的姓变为大写,名变为小写,并查询员工的姓名,按照员工的工资降序排列
SELECT CONCAT(UPPER(last_name),LOWER(first_name)) 姓名,salary FROM employees
ORDER BY salary DESC ;

#案例2:将员工姓名首字母大写,其余字母小写,用_连接,并显示出来

SELECT
CONCAT(UPPER(SUBSTR(CONCAT(last_name,first_name),1,1)),"_",LOWER(SUBSTR(CONCAT(last_name,first_name),2)))
新的员工名
FROM employees;

基础查询

#DQL的学习
#1.基础查询
/*
语法:select 查询列表 from 表名;

*/
#1.查询单个字段
#案例1:从employees表中查询员工的工资
SELECT salary FROM employees;
#案例2:从employees表中查询员工的员工名
SELECT first_name FROM employees;

#2.查询多个字段–字段用逗号进行分割,最后一个不加逗号
#案例1:查询员工的邮箱,电话号码,工资
SELECT email,phone_number,salary FROM employees;
/* SELECT phone_number FROM employees;
SELECT salary FROM employees;*/

#3.查询employees表中的所有字段–*代表选中了所有的字段
#方式1
SELECT employee_id,first_name,last_name,email,phone_numberFROM employees;
#方式2
SELECT * FROM employees;

#4.查询表达式
SELECT 100-88 FROM employees;

#5.查询常量–不区分字符串和字符的,单引号和双引号都表示字符串
SELECT 100;
SELECT ‘H’;
SELECT “T”;
SELECT ‘*’;

#6.查询函数
SELECT VERSION();

#7.去重–使用distinct去除查询结果中的重复数据
SELECT DISTINCT manager_id FROM employees;

#8.起别名–增强了可读性,用来解决多个表之间字段名称相同冲突的问题
#方式1:使用as
#方式2:空格
SELECT last_name 姓,first_name 名 FROM employees;

#9.+号的作用
/*
java中+号的作用:
1.作为运算符
2.拼接字符串
mysql中+号的作用:
在Mysql中+只能用来作为运算符
1.如果两个数都为数值类型,只能做运算
2.如果其中一个值不为数值,那么会将其试图转为数值
如果不能将其转为数值,会将其变为0
3.如果两个值中有一个为null,那么结果一定为null
*/
SELECT 100+809;
SELECT ‘H’+456;
SELECT NULL+678;

SELECT “John”+“Smith”;

#concat函数的使用
SELECT CONCAT(“John”,“Smith”) AS 姓名;

#案例:查询employees中员工姓名和奖金率(要求:没有奖金的显示0)
#ifnull函数的使用:传入两个参数

参数1:需要进行判断是否为空的字段

参数2:如果参数1为空则参数2的值赋值给参数1

SELECT CONCAT(last_name,first_name) 姓名,IFNULL(commission_pct,0) 奖金率 FROM employees;

排序查询

#排序查询
/*
语法:select
查询列表
from
表名
【where 筛选条件】
order by 排序的条件
asc代表升序,desc代表降序,默认升序
大部分情况下order by语句都是写在最后的。除了limit语句。

   排序的条件:1,根据单个字段进行排序
              2. 根据多个字段进行排序,多个字段间使用逗号进行分割
              3. 根据表达式进行排序
              4. 根据别名进行排序
              5. 根据函数进行排序

*/
#案例1:查询员工工资大于7800的员工信息,并按照工资升序排列
SELECT * FROM employees
WHERE salary >=7800
ORDER BY salary ;
#案例2:查询员工的信息,并按照经理编号排序
SELECT * FROM employees
ORDER BY manager_id;
#案例3:查询有奖金的员工的姓名,并按照工资升序和员工号降序进行排列
SELECT CONCAT(last_name,first_name) 姓名,salary,employee_id
FROM employees
WHERE commission_pct IS NOT NULL
ORDER BY salary ASC,employee_id DESC;

#案例4:查询年薪和姓名,月工资在5000~10000之中的员工并按照年薪降序排序
SELECT
CONCAT(last_name,first_name) 姓名,
salary12(1+IFNULL(commission_pct,0)) 年薪,
salary
FROM employees
WHERE salary BETWEEN 5000 AND 10000
ORDER BY 年薪;

#案例5:查询工种号为SA_REP的员工名和员工名的长度,并且按照员工名的长度进行降序排序

length():求字符串的长度

SELECT first_name 员工名,LENGTH(first_name) 长度 FROM employees
WHERE job_id = ‘SA_REP’
ORDER BY LENGTH(first_name) DESC;

条件查询

#条件查询
/*
语法:
select
查询列表
from
表名
where
筛选条件

 按条件运算符进行分类
   >,<,<=,>=,!=(<>),=
 按逻辑运算符进行分类
    && || !
    and or not
 模糊查询:如果输出的内容并不完全,会将查询到含有该内容的所有数据都返回
    like:一般情况下跟占位符一起使用
        _:匹配一个字母
        %:匹配0个或多个字母
        转义字符:\

between and: 1.可以包含临界值
2.只能由小到大进行排列
in:指定一组可选值,要求字段的值在这些可选值中选取
尽量放同一类型的值
is null:判断字段值是否为空
is not null

*/
#案例1:查询员工号大于115号的员工信息
SELECT * FROM employees WHERE employee_id > 115;

#案例2:查询工资不等于2800的员工的姓名
SELECT CONCAT(last_name,first_name) 姓名 ,salary FROM employees WHERE salary<>2800;

#案例3:查询工资为7700和编号为111的员工的邮箱
SELECT email,salary,employee_id FROM employees WHERE salary = 7700 && employee_id =111;
#案例4:查询奖金率为0并且员工号不为110的员工姓名和电话号码
SELECT CONCAT(last_name,first_name) 姓名,phone_number ,
IFNULL(commission_pct,0),employee_id FROM employees
WHERE IFNULL(commission_pct,0) = 0 AND employee_id <>110;

#案例五:查询员工名中的第二个字母为k的员工信息
SELECT * FROM employees WHERE first_name LIKE ‘s%’;
#案例6:查询员工姓中的第二个字母为_的员工姓名和工资
SELECT CONCAT(last_name,first_name) AS 姓名,salary
FROM employees
WHERE last_name LIKE '
_%’;
#案例7:查询员工号大于110小于130的员工名和工资
SELECT first_name,salary,employee_id FROM employees
WHERE employee_id>=110 AND employee_id <=130;

SELECT first_name,salary,employee_id FROM employees
WHERE employee_id BETWEEN 110 AND 130;

#案例8:查询员工的job_id在IT_PROG,FI_MGR,PU_MAN之间的员工工资
SELECT salary,job_id FROM employees
WHERE job_id = ‘IT_PROG’ OR job_id = ‘FI_MGR’ OR job_id = ‘PU_MAN’;

SELECT salary,job_id FROM employees
WHERE job_id IN (‘IT_PROG’,‘FI_MGR’,90);

#案例9:查询有奖金的员工名
/*select first_name from employees
where commission_pct = null; */

SELECT first_name FROM employees
WHERE commission_pct IS NOT NULL;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值