Mysql的基本操作
Mysql数据库是一种比较常见的数据库,今天来把Mysql数据库的基本操作罗列一些
相关概念
- database: 数据库,MySQL里可以有多个database
- table: 表,一个database里可以有多个table
- 记录:表里每一行/每一条数据,称为一条记录
- column: 字段,一个table里可以有多个column
SQL操作MySql
分析
- 管理database,常用的有:
- 创建database
- 查看database
- 修改database
- 使用database
- 删除database
语法
- 创建库:
create database [if not exists] 库名称 [character set 字符集]
- 查询所有库:
show databases
- 查看一个库的创建信息:
show create database 库名称
- 修改库:
alter database 库名称 [default] character set 字符集
- 切换库/使用库:
use 库名称
- 查看现在在哪个库里:
select database()
- 删除库:
drop database 库名称
DDL操作表table
DDL操作table
-
语法
- 创建表:
create table 表名称(字段名 类型 [约束], 字段名 类型 [约束], ...)
- 查看所有表:
show tables
- 查看表结构:
desc 表名称
- 查看表创建信息:
show create table 表名称
- 修改表:
- 重命名表:
rename table 原名称 to 新名称
- 添加字段:
alter table 表名称 add 字段名 类型
- 修改字段类型:
alter table 表名称 modify 字段名 新类型
- 修改字段名称:
alter table 表名称 change 原字段名 新字段名 类型
- 删除字段:
alter table drop 字段名
- 重命名表:
- 删除表:
drop table 表名称
DML语句
语法
- 创建表:
-
插入数据:MySql可以以字符串形式插入一切类型的数据
-
插入所有字段:
insert into 表名称 values (值1, 值2, ...)
注意:
- 值的个数必须等于表里字段的个数
- 值的顺序必须和表里字段的顺序一样
-
插入指定字段:
insert into 表名称 (字段名1, 字段名2, ..., 字段名n) values (值1, 值2, ..., 值n)
注意:
- 值的个数 必须 和前边声明的字段的个数一样
- 值的顺序 必须 和前边声明的字段的顺序一样
-
-
修改数据
update 表名称 set 字段名1=值1, 字段名2=值2,..., 字段名n=值n [where 条件]
-
删除数据
- 删除符合条件的数据:
delete from 表名称 [where 条件]
- 摧毁重建表:
truncate table 表名称
- 删除符合条件的数据:
DQL语句
语法
-
基本语法:
select [distinct] 字段1,字段2..|* from 表名称
-
查询并处理Null值:
ifnull(字段, 默认值)
-
查询并进行运算:
+,-,*,/
-
查询并起别名:
字段名 [as] 别名
-
去重查询:
distinct
distinct后边所有的字段值都一样,才是重复值,是要去掉的。
-
-
注意:查询操作,不会对表里的数据有任何的影响
条件查询
语法
- 条件查询语法:
select * from 表名称 where 条件
- 条件运算符有:
>, <, >=, <=, =, <>
is null
和is not null
- 模糊查询:
like '表达式'
,not like '表达式'
。在表达式里可以写:_
:一个任意字符%
:任意个任意字符
- 范围查询:
between 开始值 and 结束值
,包含开始值和结束值in(值1, 值2, ....)
- 多条件连接符有:
and, or
not(条件)
- 条件运算符有:
排序查询
语法
-
order by 排序字段 排序规则, 排序字段2 排序规则2, ...
-
排序规则有:
ASC
:升序,从小到大,默认的DESC
:降序,从大到小
聚合函数
语法
-
聚合函数:用于进行列数据统计的。常用的聚合函数有:
count(字段)
:统计数量sum(字段)
:求和avg(字段)
:求平均值max(字段)
:求最大值min(字段)
:求最小值
分组查询
语法
- 语法:
group by 分组字段 [having 分组后的过滤条件]
- 注意:select后边,只能跟分组的字段,或者聚合函数。不能查询与分组无关的字段
- where和having的区别:
- where在分组前执行;having在分组后执行
- where过滤原始表的数据;having过滤分组后的数据
- where里不要写聚合函数;having里可以写聚合函数
- 分组查询的顺序:
- 使用where对原始表进行过滤
- 根据分组字段进行分组统计,得到分组后的结果
- 使用having对分组后的结果进行过滤
分页查询
语法
- 语法:
limit 起始索引,查询数量
- select 字段|聚合 from 表名称 where 条件 group by 分组字段 having 分组后过滤 order by 排序字段 排序规则 limit 起始索引,查询数量`
MySql约束
MySql中约束有:
- 主键约束
- 唯一性约束
- 非空约束
- 默认值约束
1. 主键约束
-
主键:一张表里数据的唯一标识。原则上:每张表必须有主键,且只能有一个主键
-
主键约束:
-
作用:唯一性约束的字段,值不能重复,但是可以为null
-
语法:
字段名 类型 unique
3. 非空约束
- 作用:非空约束的字段,值不能为null
- 语法:
字段名 类型 not null
4. 默认值约束
- 作用:默认值约束的字段,如果不指定值,取默认值(如果指定null值,值就是null,不取默认值)
- 语法:
字段名 类型 default 默认值