一。准备
1.下载
MySQL :: Download MySQL Community Server
2.解压后进行环境变量配置
3.MYSQL连接
语法:
mysql -u用户名 -p密码 [-h数据库服务器IP地址 -p端口号]
登录:
mysql -uroot -p
4.MYSQL数据模型
①关系数据库(RDBMS):建立在关系模型基础上,由多张相互连接的二维表组成的数据库。
5.SQL简介
SQL:一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准。
通用语法:
①SQL语句可以单行或多行书写,以分号结尾。
②SQL语句可以使用空格/缩进来增强语句的可读性。
③MYSQL数据库的SQL语句不区分大小写。
④注释:
单行注释: -- 注释内容或# 注释内容
多行注释:/*注释内容*/
SQL分类
DDL:(Data Definition Language) 数据定义语言,用来定义数据库对象(数据库,表,字段)。
查询所有数据库:show databases;
查询当前数据库:select database();
使用数据库:use 数据库名;
创建数据库:create database[if not exists] 数据库名;
删除数据库:drop database [if exists] 数据库名;
如果想要启用本地MySQL时
以管理员身份运行cmd
输入mysqld -install(记得要启动MySQL即输入net start mysql)
DML:(Data Maninpulation Language) 数据操作语言,用来对数据库表中的数据进行增删改。
DQL:(Data Query Language) 数据查询语言,用来查询数据库表的记录
DCL :(Data Control Language) 数据控制语言,用来创建数据库用户,控制数据库的访问权限
DML的使用
指定字段添加数据:insert into 表名(字段1,字段2) values(值1,值2);
全部字段添加数据:insert into 表名 values(值1,值2,。。。);
批量添加数据(指定字段):insert into 表名(字段名1,字段名2)values(值1,值2),(值1,值2);
批量添加数据(全部字段):insert into 表名 values(值1,值2...),(值1,值2...);
修改数据: update 表名 set 字段名1=值1,字段名2=值2,....[where 条件];
删除数据:delete from 表名 [where 条件];
DQL的使用
基本查询
查询多个字段:select 字段1,字段2,字段3 from 表名;
查询所有字段(通配符):select * from 表名;(*号代表查询所有字段,在实际开发中尽量少用,不直观,影响效率)
设置别名:select '字段1' [as 别名1],'字段2' [as 别名2] from 表名;
去除重复记录: select distinct 字段列表 from 表名;
条件查询:select 字段列表 from 表名 where 条件列表;
①比较运算符
<>或!= :不等于
between... and... :在某个范围之内(含最值)
in(...) :在in之后的列表中的值,多选一
like 占位符 :模糊匹配(_匹配单个字符,%匹配任意个字符)
is null :是 null
②逻辑运算符
and 或&&:并且
or 或||:或者
not 或|:非,不是
分组查询
将一列数据作为一个整体,进行纵向计算。
语法:select 聚和函数(字段列表)from 表名;
count:统计数量
max:最大值
min:最小值
avg:平均值
sum:求和
注意:
①null值不参与所有聚合函数运算。
②统计数量可以使用:count(*) count(字段) count(常量),推荐使用count(*)。
分组查询:select 字段列表 from 表名[where 条件] group by 分组字段名 [having 分组后过滤条件];
例如:
先查询入职日期在‘2015-01-01’(包含)以前的员工,并对结果根据职位分组,获取员工数量大于等于2的职位
select job,count(*) from tb_emp where entry_date<='2015-01-01' group by job having count(*)>=2;