目录
MySQL基本操作
一.对数据库操作
1:创建数据库
2:删除数据库
3:使用数据库
4:查看当前正在操作的数据库
5:创建新用户并授权
二.对数据表操作
1:创建表
2:查看库表
3:查看表结构
4:删除表
5:修改表
三.对表记录操作
1:插入记录
2:修改表记录
3:删除表记录
4:查询记录
小结:
基本操作顺序如下
select 一般在的后面的内容都是要查询的字段
from 要查询到表
where
group by
having 分组后带有条件只能使用having
order by 它必须放到最后面
SELECT COUNT(uid) AS '所有含有长沙列数',uaddress FROM info WHERE uaddress LIKE '%长沙%' GROUP BY uaddress having AVG(salary)>5000 order by desc;
MySQL基本操作
一.对数据库操作
1:创建数据库
CREATE DATABASE 库名;
CREATE DATABASE 数据库名 CHARACTER SET 字符集;
2:删除数据库
DROP DATABASE 库名;
3:使用数据库
USE 库名;
4:查看当前正在操作的数据库
SELECT DATABASE();
5:创建新用户并授权
-- 创建数据库
CREATE DATABASE bos CHARACTER set uft8;
-- 创建新用户
CREATE user mark IDENTIFIED by 'mark';
-- 为新用户授权
GRANT all on bos.* to mark;
二.对数据表操作
1:创建表
create table 表名 (
列表1 数据类型(长度) [约束],
列表2 数据类型(长度) [约束],
列表3 数据类型(长度) [约束],
);
2:查看库表
SHOW TABLES;
3:查看表结构
DESC 表名;
4:删除表
DROP TABLE 表名;
5:修改表
5.1 添加一列
alter table 表名 add 列名 数据类型(长度) [约束];
5.2 修改列名
alter table 表名 change 旧列名 新列名 类型(长度) [约束]
5.3 修改列属性
alter table 表名 modify 要修改的字段名 类型(长度) [约束]
5.4 删除列
alter table 表名 drop 列名
5.5 修改表名
rename table 表名 to 新表名
三.对表记录操作
1:插入记录
向表中添加数据
格式:
insert into 表名(列名1,列名2,列名3) values(值1,值2,值3);
或者
insert into 表名 values(全列值)----主键值也要写
或者
insert into 表名(列名1,列名2,列名3) values(值1,值2,值3),(值1,值2,值3)
注意:
自增主键,可以列名中不出现主键
2:修改表记录
2.1 不带条件(该列的所有记录都更改)
update 表名 set 字段名=值, 字段名=值, 字段名=值……
2.2 带条件
update 表名 set字段名=值, 字段名=值, 字段名=值…… where 条件
3:删除表记录
3.1 带条件(删除后,当插入新数据时,主键ID不会重置)
delete from 表名 where 条件;
3.2 不带条件(删除后,主键ID不会重置)
delete from 表名;
4:查询记录
4.1 简单查询
查询指定字段信息
格式:
SELECT *|字段1,字段2,... [as 列别名] from 表名 [as 表别名];
distinct用于去除重复记录
格式:
SELECT DISTINCT(字段) FROM 表名;
4.2 条件查询
比较运算符 | > < <= >= = <> | 大于、小于、大于(小于)等于、不等于 |
BETWEEN...AND... | 显示在某一区间的值(含头含尾) | |
IN(set) | 显示在in列表中的值,例:in(100,200) | |
LIKE 通配符 | 模糊查询,Like语句中有两个通配符: %用来匹配多个字符;例first_name like ‘a%’; _用来匹配一个字符。例first_name like ‘a_’; | |
IS NULL | 判断是否为空 is null; 判断为空 is not null; 判断不为空 | |
| AND | 多个条件同时成立 |
OR | 多个条件任一成立 | |
NOT | 不成立,例: where not (salary >100); |
查询所有姓名为mark记录
SELECT * FROM student WHERE name = 'mark';
查询出工资大于5000的信息
SELECT * FROM student WHERE money >5000;
查询出工资在2000-5000之间信息
SELECT * FROM student WHERE money >=2000 AND money <=5000;
或
SELECT * FROM student WHERE money BETWEEN 2000 AND 5000;
查询出工资是1000或5000或3500信息
SELECT * FROM student WHERE money =1000 OR money =5000 OR money =3500;
或
SELECT * FROM student WHERE money IN(1000,5000,3500);
查询出地址名称包含”长沙”的信息。
SELECT * FROM student WHERE name LIKE "%长沙%";
查询出地址名称中是五个字的账务信息
SELECT * FROM student WHERE address LIKE "_____"; -- 五个下划线_
查询出姓名不为null账务信息
SELECT * FROM student WHERE name IS NOT NULL;
SELECT * FROM student WHERE NOT (name IS NULL);
4.3 排序查询
order by 用于对指定列排序数据
格式:
SELECT 列名 from 表名 where 条件 order by 列名 [desc][asc];
desc:降序
asc:升序,默认升序
4.4 聚合函数
AVG() 返回某列的平均值
COUNT() 返回某列的行数(不为空)
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某个列之和
4.4 分组
group by 对表中某类别类进行分组
格式:
SELECT 列名 from 表名 group by 列名;
注意:结果集是分组查询后,再次进行筛选,不能使用where,分组后再次过滤,要使用关键词having