MySQL介绍

Categories:

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。


一. 数据库概述

数据库(DataBase),简称DB,是指长期保存在计算机上的按照一定规则存储数据的集合

二. 数据库管理系统

数据库管理系统(DataBase Management System),是一种操作和管理数据库的软件,用于建立、使用和维护数据库的数据,对数据库进行统一的管理和控制以保证数据库的安全性和完整性,用户通过数据库管理系统访问数据库中的数据进行操作

三. 常用数据库

1.Access  2.Oracle  3.db2  4.sql  5.mysql

四. SQL概述

Structure Query Language是结构化查询语言,被国际化组织(ISO)采纳为关系型数据库语言的国际标准

五. SQL分类

  1. DDL 数据库定义语言
  2. DCL 数据控制语言
  3. DML 数据操作语言
  4. DQL 数据查询语言

六. SQL常用数据类型

  1. int 整型
  2. float、double 浮点型  注: float(5,2) 表示最多5位其中有两位是小数
  3. decimal 工资类型 注: MySQL5.1后支持
  4. char 固定长度的字符串
  5. varchar 可变长度的字符串
  6. text 字符串
  7. blob 字节
  8. date 日期 格式:yyyy-MM-dd
  9. time 时间 格式:HH:mm:ss
  10. timestamp 时间戳 格式:yyyy-MM-dd HH:mm:ss 自动赋值
  11. datetime 时期 格式:yyyy-MM-dd HH:mm:ss

七. SQL语法

//查看数据库
show databases;
//创建数据库
create database 数据库名;
//创建数据库并设置编码集
create database 数据库名 character set utf8;
//修改数据库编码集
alter database 数据库名 character set gbk;
//删除数据库
drop database 数据库名;
//查看当前数据库
select database();
//切换数据库
use 数据库名;
//查看端口
show global variables like 'port';
//查看用户
select distinct concat('user: [', user, '''@''', host, '];') as user_host from user;
//查看密码策略
show variables like 'validate_password%';
//修改密码强度等级
set global validate_password_policy=LOW;
//添加用户
grant all privileges on *.* to 'yht'@'%' identified by '123456aa' with grant option;
//生效用户
flush privileges;
//查看当前库中所有表
show tables;
//创建表
create table 表名(字段名1 数据类型 约束条件, 字段名2 数据类型 约束条件...);
//修改表的字符集
alter table 表名 character set gbk;
//修改列名  只能给字段重命名
alter table 表名 change 旧字段名 新字段名 数据类型;
//修改列属性  只能修改类型和约束
alter table 表名 modify 字段名 字段类型;
//修改表名
alter table 旧表名 rename 新表名;
rename table 旧表名 to 新表名;
//删除表
drop table 表名;
//查看表结构
desc 表名;
//查看创建表的语句
show create table 表名;
//新增字段
alter table 表名 add 字段名 数据类型;
//删除字段
alter table 表名 drop 字段名;
//insert
insert into 表名(列名1,列名2....列名n) values(值1,值2...值n)
//update
update 表名 set 列名1=值1,列名2=值2.... where 列名=值
//delete
delete from 表名 where 列名=值
//select
select * from 表名 where 列名=值
//条件查询符号
>  <  !=  <>  =  >=  <=
between...and.. 两者之间 >= <= 包含边界
in 在xxx范围内
is null 是空的
and 和
or 或者
not 非
//模糊查询
select * from 表名 where 列名 like "%a%"
//排序查询
select * form 表名 order by asc(升序)/desc(降序)
//聚合查询
count() 统计指定列不为null 的行数
max()/min() 最大最小值
sum() 求和
avg() 平均数
//分组查询
select * from 表名 group by 列名 having 条件
//分页查询
select * from 表名 limit 0,10

查询语句书写顺序:
	select -- from -- where -- group by -- having -- order by -- limit
查询语句执行顺序:
	from -- where -- group by -- having -- select -- order by -- limit

having 和 where 的区别

1.having 是在分组后 对数据进行过滤
   where 是在分组前 对数据进行过滤
2.having后面可以使用聚合函数
   where后面不可以