MySQL入门
1、MySQL的基本介绍
数据库(database),数据库是存储数据的仓库,本质是一个系统文件,我们可以对这个文件(数据库)数据进行增删改查操作(crud)。
数据是直接存在数据库中还是数据表中?存在数据表中。
数据表结构及原理:
数据表:由行和列组成。
列:字段
行:记录
2、MySQL数据库的安装与卸载
安装:
在网上可以找到安装教程,按着安装就行,安装之前必须保证之前没有安装过mysql或已经卸载干净了。
卸载:
注意:如果MySQL卸载不干净,会导致再次安装的不成功。
1、首先找到控制面板,就程序给卸载
2、找到mysql的安装目录将其删除,
3、再去c盘将C:\ProgramData\目录下的MySQL文件夹给删除,
4、删除mysql的注册表,快捷键window+R搜索regedit进入注册表
路径1:\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\eventlog\Application\MySQL
路径2:\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\eventlog\Application\MySQL
删除整个MySQL文件夹即可
SQLYog(图形化界面)
3、数据库的基本操作
1、通过dos直接访问MySQL
使用基本到dos命令登录系统 : mysql -hIP地址 -u用户名 -p密码
例如:mysql -hlocalhost -uroot -proot
如果是本地登录,可以省略掉-h, 如 :mysql -u用户名 -p密码
2、mysql服务的开启与关闭命令
通过视图找到MySQL的服务
我的电脑--右键管理--服务与应用--服务--MySQL。
如果通过命令方式开启和关闭服务:
关闭服务:net stop mysql
开启服务:net start mysql.
3、SQL语言及分类
sql:结构化查询语言。可以用它来对数据进行增删改查(crud)
分为四大类:
DDL(Data Definition Language)数据库定义语言,用来定义数据库对象:数据库,表,列等,关键字:create,alter,drop等,结构上的操作
DML(Data Manipulation Language)数据库操纵语言,用来对表中的数据的增删改,关键字:insert、delete、update等,数据上的操作
DQL数据查询语言:关键字:select、from、where等 结构不会发生变化,数据也不会变化,就是单纯的去查询。
DCL数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户(了解)。
sql通用语法
sql语句可以单行或多行书写,以分号结尾。
可使用空格和缩进来增强语句的可读性。
MySQL数据库的sql语句不区分大小写,关键字建议使用大写
例如:SELECT * FROM user.
同样可以使用/**/的方式完成多行注释
mysql中的数据类型:
int 整型
double 浮点型
varchar(长度) 字符串型
date 日期类型
DDL-操作数据库结构
创建数据库
命令
说明
create database 数据库名;
在当前服务器下创建指定名称的数据库。
配置数据库时我们指定了utf8,那么数据库默认字符集就是utf8
create database 数据库名character set字符集;
在当前服务器下创建指定名称的数据库,并且指定数据库的字符集(很少使用)
代码准备:
#创建数据库day01_1 数据库中数据的编码采用的是安装数据库时指定的默认编码 utf8
#创建数据库day01_2并指定数据库中数据的编码为gbk
查看数据库
use 数据库名 :切换数据库
show databases; 查看MySQL服务器中有哪些数据库
删除数据库
命令
说明
drop database 数据库名称;
从MySQL服务器中永久删除某个数据库
DDL-操作数据表结构
格式
create table 表名 (字段1 类型 【约束】)
注意:多个字段之间要用逗号隔开
查看表
show tables :查看当前数据库中的所有表
desc 表名 :查看某张数据表的表结构
删除表:
drop table 表名 :从当前数据库中永久的删除某张表
修改表结构格式:(了解)
命令
说明
alter table 表名关键字….
修改某张表的某些字段
一般修改表结构,最多进行字段的添加操作
l alter table 表名 add 列名 类型(长度) [约束];
作用:修改表添加列.
例如:
#1,为分类表添加一个新的字段为 分类描述cdesc varchar(20)
ALTER TABLE category ADD cdesc VARCHAR(20);
l alter table 表名 modify 列名 类型(长度) 约束;
作用:修改表修改列的类型长度及约束.
例如:
#2, 为分类表的描述字段进行修改,类型varchar(50)
ALTER TABLE category MODIFY cdesc VARCHAR(50);
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
作用:修改表修改列名.
例如:
#3, 为分类表的分类名称字段进行更换 更换为description varchar(30)
ALTER TABLE category CHANGE cdesc description VARCHAR(30);
alter table 表名 drop 列名;
作用:修改表删除列.
例如:
#4, 删除分类表中description这列
ALTER TABLE category DROP description;
rename table 表名 to 新表名;
用:修改表名
例如:
#5, 为分类表category改名成category2
RENAME TABLE category TO category2;
alter table 表名 character set 字符集(了解);
作用:修改表的字符集
例如:
#6, 为分类表category的编码表进行修改,修改成gbk
ALTER TABLE category CHARACTER SET gbk;
DML-更新表记录(增删改)
插入表记录:insert into
注意:
值于字段必须对应,个数相同,类型相同
值的数据大小必须在字段的长度范围内
除了数值类型,其它的值必须要使用单引号、双引号引起
如果要插入空值,可以忽略不写字段,或者插入null。
更改表记录:update
删除表记录:delete from
delete from 和truncate的区别:
1、delete from:删除表中所有记录,但是不删除表
2、truncate:将整张表删除,然后重新创建一个一模一样的表结构
DQL-查询数据(重点)
----查询并展示表中所有记录
select * from 表名
---查询并展示表中符合要求的记录
select * from 表名 where 条件
条件查询--where
比较运算符
> < <= >= = <> !=
大于、小于、大于(小于)等于、不等于
BETWEEN ...AND...
显示在某一区间的值
相当于 price >=1000 && price <=2000
IN(set)
显示在in列表中的值
bookName in (“西游记”,”红楼梦”)
LIKE ‘张pattern’
模糊查询,Like语句中,
% 代表零个或多个任意字符
_ 代表一个字符
IS NULL
判断是否为空
逻辑运算符
and
多个条件同时成立
or
多个条件任一成立
not
不成立,取反。
单表操作
排序:
order by 字段(需要放置在select语句的最后) asc/desc 默认是升序
两种
升序:asc
降序:desc
聚合函数
聚合函数会忽略null空值
今天我们学习如下五个聚合函数:
count(字段):统计指定列不为NULL的记录行数;、
sum(字段):计算指定列的数值和
max(字段):计算指定列的最大值
min(字段):计算指定列的最小值
avg(字段):计算指定列的平均值
分组函数
格式 :
select 字段1,字段2. from 表名 group by 分组字段
select 字段1,字段2. from 表名 group by 分组字段Having 分组条件;
分组操作中的having子语句,是用于在分组后对数据进行过滤的,作用类似于where条件
where 和having的区别:
1、where是在分组前进行过滤,having是在分组后进行过滤
2、聚合函数可以跟在having后面,聚合函数不可以跟在where后面。
select总结
书写顺序(重点):
select 字段 from 表名 where 条件 group by 字段 having条件 order by 字段
执行顺序:(了解)
From 表名
Where 条件
Group by 字段 字段值相同的数据会划分成一组
Having 条件 对每一组分别进行一次运算
Select 字段 把每组中第一条数据取出来。合并成一张新伪表展示这个新伪表上的部分字段
6. order by 字段 对新伪表进行最后排序