Mysql基础命令

发布于:2022-10-16 ⋅ 阅读:(304) ⋅ 点赞:(0)

数据库的一些命令:
退出mysql:exit quit
注释:使用-- 添加单行注释时,–后面一定要加空格,而#没有要求。
多行注释: /* 注释 */

1.DDL操作数据库

1.查询所有的数据库

查询所有的数据库:SHOW DATABASES;

2.创建数据库

创建数据库:CREATE DATABASE 数据库名称;
创建数据库(判断,如果不存在则创建):CREATE DATABASE IF NOT EXISTS 数据库名称;

3. 删除数据库

删除数据库:DROP DATABASE 数据库名称;
删除数据库(判断,如果存在则删除:DROP DATABASE IF EXISTS 数据库名称

4.使用数据库

使用数据库:USE 数据库名称;
查看当前使用的数据库:SELECT DATABASE();

2. DDL操作表

操作表也就是对表进行增(Create)删(Retrieve)改(Update)查(Delete)。

1.查询表

查询当前数据库下所有表名称:SHOW TABLES;

2.查询表结构

DESC 表名称;

3.创建表

创建表:
CREATE TABLE 表名 (
字段名1 数据类型1,
字段名2 数据类型2,

字段名n 数据类型n
);
注意:最后一行末尾,不能加逗号

4.删除表

删除表:DROP TABLE 表名;
删除表时判断表是否存在:DROP TABLE IF EXISTS 表名;

5.修改表

1.修改表名:ALTER TABLE 表名 RENAME TO 新的表名;
2.添加一列:ALTER TABLE 表名 ADD 列名 数据类型;

-- 给stu表添加一列address,该字段类型是varchar(50)
alter table stu add address varchar(50);

3.修改数据类型:ALTER TABLE 表名 MODIFY 列名 新数据类型;

-- 将stu表中的address字段的类型改为 char(50)
alter table stu modify address char(50);

4.修改列名和数据类型:ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;

-- 将stu表中的address字段名改为 addr,类型改为varchar(50)
alter table stu change address addr varchar(50);

5.删除列:ALTER TABLE 表名 DROP 列名;

-- 将stu表中的addr字段 删除
alter table stu drop addr;

3.DML

DML主要是对数据进行增(insert)删(delete)改(update)操作。

1.添加数据

1.给指定列添加数据:INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…);
2.给全部列添加数据:INSERT INTO 表名 VALUES(值1,值2,…);
3.批量添加数据:
INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;
INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;

2.修改数据

1.修改表数据:
UPDATE 表名 SET 列名1=值1,列名2=值2,… [WHERE 条件] ;

注意:
1. 修改语句中如果不加条件,则将所有数据都修改!
2. 像上面的语句中的中括号,表示在写sql语句中可以省略这部分

3. 删除数据

1.删除数据:DELETE FROM 表名 [WHERE 条件] ;

4.DQL

1.基础查询

1.查询多个字段:
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名; – 查询所有数据
2.去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;

2.条件查询

SELECT 字段列表 FROM 表名 WHERE 条件列表;

条件列表可以使用以下运算符:
在这里插入图片描述

3.模糊查询

模糊查询使用like关键字,可以使用通配符进行占位:1)_ : 代表单个任意字符
(2% : 代表任意个数字符

查询姓’马’的学员信息:

select * from stu where name like '马%';

查询第二个字是’花’的学员信息:

select * from stu where name like '_花%';

查询名字中包含 ‘德’ 的学员信息:

select * from stu where name like '%德%';

4.排序查询

SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2] …;

  • ASC : 升序排列 (默认值)
  • DESC : 降序排列
注意:如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序

5.聚合函数

函数名 功能
count(列名) 统计数量(一般选用不为null的列)
max(列名) 最大值
min(列名) 最小值
sum(列名) 求和
avg(列名) 平均值

语法:
SELECT 聚合函数名(列名) FROM 表;

根据id统计人数:
select count(id) from stu;
如果该字段某一行的值为null的话,将不会被统计。但是count(*)却可以统计所有的包括含有null的

6. 分组查询

注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义
举例:查询男同学和女同学各自的数学平均分:

select sex, avg(math) from stu group by sex;

select name, sex, avg(math) from stu group by sex; -- 这里查询name字段就没有任何意义

举例:查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组,分组之后人数大于2个的

select sex, avg(math),count(*) from stu where math > 70 group by sex having count(*) > 2;

where 和 having 区别:

  • 执行时机不一样:where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过
    滤。
  • 可判断的条件不一样:where 不能对聚合函数进行判断,having 可以。

7.分页查询

如下图所示,大家在很多网站都见过类似的效果,如京东、百度、淘宝等。分页查询是将数据一页一页的展示给用户看,用
户也可以通过点击查看下一页的数据。
在这里插入图片描述
语法:

 SELECT 字段列表 FROM 表名 LIMIT 起始索引 , 查询条目数;

起始索引 = (当前页码 - 1) * 每页显示的条数

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到