MySQL介绍
Categories: MySql
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分类
- DDL 数据库定义语言
- DCL 数据控制语言
- DML 数据操作语言
- DQL 数据查询语言
六. SQL常用数据类型
- int 整型
- float、double 浮点型 注: float(5,2) 表示最多5位其中有两位是小数
- decimal 工资类型 注: MySQL5.1后支持
- char 固定长度的字符串
- varchar 可变长度的字符串
- text 字符串
- blob 字节
- date 日期 格式:yyyy-MM-dd
- time 时间 格式:HH:mm:ss
- timestamp 时间戳 格式:yyyy-MM-dd HH:mm:ss 自动赋值
- 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后面不可以