mysql数据库操作

1.创建数据库

create database [if not exists] `abc` charset=‘utf8mb4‘;

1. 如果多次创建会报错

2. 字符编码不指定默认 utf8mb4

3. 给数据库命名?定要习惯性加上反引号, 防?和关键字冲突

2.查看数据库

show databases;

3.选择数据库

use `数据库名称`;

4.修改数据库

alter database `数据库名称` charset=‘字符集‘;

只能修改字符集

5.删除数据库

drop database [if exists] `数据库名称`;

 6.数据库查询语句关键字

1.select:字段表达式

SELECT 既可以做查询, 也可以做输出

select rand(); -- 随机数 
select unix_timestamp(); -- 显示Unix时间戳
select id, name from student;

2. FROM ?句

    • select 字段 from 表名;

      from 后面是数据源,数据源可以写多个,数据源一般是表名,也可以是一个查询结果

      SELECT student.name, score.math FROM student, score;
      select a.name,a.city,a.math from v_math as a where (city,math) in (select city,min(math) from v_math group by city);

3. where和having?句: 按指定条件过滤

    • 语法: select 字段 from 表名 where /having条件;

    • WHERE 是做条件查询, 只返回结果为 True 的数据

    • 空值判断: is null | is not null

    • 范围判断:

      • between ... and ... (闭区间)

      • not between ... and ...

    • having和where差别:

      having where
      从select后筛选的字段再筛选,(如果having后的判断字段在select后的字段里没有,则报错),having后面可以跟聚合函数 如:select name from users having age> 15 //报错!!!因为前面并没有筛选出age字段 where后跟的是数据表里存在的字段 如:select id , avg(price) as ag from users where ag>100 group by city //报错!!因为from users 这张数据表里面没有ag这个字段

      where 后面要跟的是数据表里的字段,如果我把ag换成avg(price)也是错误的!因为表里没有该字段。而having只是根据前面查询出来的是什么就可以后面接什么。

4. GROUP BY : 分组查询

按照某?字段进?分组, 会把该字段中值相同的归为?组, 将查询的结果分类显示, ?便统计。

如果有 WHERE 要放在 WHERE 的后?

语法: select 字段 from 表名 group by 分组字段;

select sex, count(id) from student group by sex;
-- 在group将需要的结果通过 “聚合函数” 拼接
select sex, group_concat(name) from student group by sex;
-- 添加where语句
-- 按性别分组, 将上海地区的男???姓名连接起来
select sex, group_concat(name) from student where city=‘上海‘ group by sex;

6. ORDER BY : 按字段排序

语法: select 字段 from 表名 order by 排序字段 asc|desc; (默认asc升序)

7. LIMIT : 限制取出数量

语法 :

select 字段 from 表名 limit m; -- 从第 1 ?到第 m ? 
select 字段 from 表名 limit m, n; -- 从第 m ?开始,往下取 n ?
select 字段 from 表名 limit m offset n; -- 跳过前 n ?, 取后?的 m ?

8. DISTINCT : 去重

select distinct city from student;

9. dual

dual 是?个虚拟表, 仅仅为了保证 select ... from ... 语句的完整性

select now() from dual;

 

mysql数据库操作

上一篇:Docker安装mysql5.7


下一篇:Oracle Database字符集(2)--基本概念