MySQL_基础

Posted yangbocsu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL_基础相关的知识,希望对你有一定的参考价值。

一、 数据库概述

1.1 数据库的好处

1.持久化数据到本地
2.可以实现结构化查询,方便管理

1.2 数据库相关概念

1、DB:数据库(DataBase),保存一组有组织的数据的容器
2、DBMS:数据库管理系统(DataBase Management System),又称为数据库软件(产品),用于管理DB中的数据,像MySql、Orcal
3、SQL:结构化查询语言(Structure Query Language),用于和DBMS通信的语言

1.3 数据库存储数据的特点

1、将数据放到表中,表再放到库中
2、一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性。
3、表具有一些特性,这些特性定义了数据在表中如何存储,类似java中 “类”的设计。
4、表由列组成,我们也称为字段。所有表都是由一个或多个列组成的,每一列类似java 中的”属性”
5、表中的数据是按行存储的,每一行类似于java中的“对象”。

1.4 MySQL的常见命令

1.查看当前所有的数据库 	show databases;
2.打开指定的库  			use 库名;
3.查看当前库的所有表		show tables;
4.查看其它库的所有表		show tables from 库名;  
5.查看当前所在库			select database();
6.创建表
create table 表名(
	列名 列类型,
	列名 列类型,
	。。。
);
6.查看表结构·				desc 表名;
7.查看服务器的版本		方式一:登录到mysql服务端		select version();
					方式二:没有登录到mysql服务端	mysql --version	或	mysql --V

【注解】 一个数据库 里面可以用很多的库(A,B,C,D,…),然后呢,每一个库里面又可以有很多张表

1.5 MySQL的语法规范

1.不区分大小写,但建议关键字大写,表名、列名小写
2.每条命令最好用分号结尾
3.每条命令根据需要,可以进行缩进 或换行
4.注释
	单行注释:#注释文字
	单行注释:-- 注释文字
	多行注释:/* 注释文字  */

二、SQL学习

2.1 SQL的语言分类

DQL(Data Query Language):数据查询语言			select 
DML(Data Manipulate Language):数据操作语言		insert 、update、delete
DDL(Data Define Languge):数据定义语言			create、drop、alter
TCL(Transaction Control Language):事务控制语言	commit、rollback

2.2 DQL语言的学习

进阶1:基础查询

语法:
SELECT 要查询的东西	【FROM 表名】;

类似于Java中 :System.out.println(要打印的东西);
特点:
	①通过select查询完的结果 ,是一个虚拟的表格,不是真实存在
	② 要查询的东西 可以是常量值、可以是表达式、可以是字段、可以是函数

#1查询表中单个字段

SELECT last_name;	//last_name 字段

这样回报错

SELECT last_name FROM employees;


#2查询表中多个字段

SELECT last_name,first_name,email FROM employees;

#3查询表中所有字段

SELECT * FROM employees;

我们在做查询的时候,需要打开指定的库名,use 库名;

#4 查询常量值

select 100;

#5 查询表达式

select 100%98;

#6查询函数

SELECT  VERSION();

#7为字段起别名
方式一:使用as

SELECT 100%98 AS 结果;
SELECT last_name AS,first_name ASFROM employees;


方式二:使用空格

SELECT 100%98  结果;
SELECT last_name 姓,first_name  名 FROM employees;

#8 去重
#案例:查询员工表中涉及到的所有的部门编号

#案例:查询员工表中涉及到的所有的部门编号
SELECT department_id FROM departments;

但是这样查出来会有很多重复值,只需要再字段名前加上distinct

SELECT distinct department_id FROM departments;

#9 +号的作用

/*

java中的+号:
①运算符,两个操作数都为数值型
②连接符,只要有一个操作数为字符串

mysql中的+号:
仅仅只有一个功能:运算符

select 100+90; 两个操作数都为数值型,则做加法运算
select '123'+90;只要其中一方为字符型,试图将字符型数值转换成数值型
			如果转换成功,则继续做加法运算
select 'john'+90;	如果转换失败,则将字符型数值转换成0

select null+10; 只要其中一方为null,则结果肯定为null

*/
SELECT CONCAT(last_name,first_name) AS 姓名 FROM employees;

【习题】

#1.	下面的语句是否可以执行成功  
SELECT last_name , job_id , salary AS sal FROM employees; 

#2.下面的语句是否可以执行成功  
SELECT  *  FROM employees; 


#3.找出下面语句中的错误 (已改正确)
SELECT employee_id , last_name,salary * 12 AS "ANNUAL  SALARY" FROM employees;



#4.显示表departments的结构,并查询其中的全部数据

DESC departments;

SELECT * FROM `departments`;

#5.显示出表employees中的全部job_id(不能重复)
SELECT DISTINCT job_id FROM employees;

#6.显示出表employees的全部列,各个列之间用逗号连接,列头显示成OUT_PUT

SELECT 
	IFNULL(commission_pct,0) AS 奖金率,
	commission_pct
FROM 
	employees;
	
#---------------------------------------------------------------------------------

SELECT
	CONCAT(`first_name`,',',`last_name`,',',`job_id`,',',IFNULL(commission_pct,0)) AS out_put
FROM
	employees;
	

IFNULL(expr1,expr2)


进阶2:条件查询

语法:
	select 
		查询列表
	from
		表名
	where
		筛选条件;

分类:
	一、按条件表达式筛选
	
	简单条件运算符:> < = != <> >= <=
	
	二、按逻辑表达式筛选
	逻辑运算符:
	作用:用于连接条件表达式
		&& || !
		and or not
		
	&&and:两个条件都为true,结果为true,反之为false
	||or: 只要有一个条件为true,结果为true,反之为false
	!not: 如果连接的条件本身为false,结果为true,反之为false
	
	三、模糊查询
		like
		between and
		in
		is null

一、按条件表达式筛选

#案例1:查询工资>12000的员工信息

SELECT * FROM employees WHERE salary>12000;

#案例2:查询部门编号不等于90号的员工名和部门编号

SELECT 
		department_id,first_name 
FROM 
		employees 
WHERE 
		department_id <> 90;


#二、按逻辑表达式筛选

#案例1:查询工资z在10000到20000之间的员工名、工资以及奖金

SELECT
	last_name,
	salary,
	commission_pct
FROM
	employees;
WHERE
	salary > 10000 AND 	salary < 20000;


#案例2:查询部门编号不是在90到110之间,或者工资高于15000的员工信息

SELECT
	*
FROM
	employees
WHERE
	NOT(department_id>=90 AND  department_id<=110) OR salary>15000;

以上是关于MySQL_基础的主要内容,如果未能解决你的问题,请参考以下文章

linux中怎么查看mysql数据库版本

这些 C++ 代码片段有啥作用?

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

VSCode 配置 用户自定义代码片段 自定义自动代码补充

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

[AndroidStudio]_[初级]_[配置自动完成的代码片段]