mysql复习

7 篇文章 0 订阅
2 篇文章 0 订阅

mysql基本命令
https://www.cnblogs.com/heyangblog/p/7624591.html

mysql增删改查
https://www.cnblogs.com/heyangblog/p/7624645.html


1.对表结构key值的增删改查


1.1 增
alter table 表名 add 新字段名 数据类型 约束条件 [first|alfter 已存在字段名]
alter table grade1 add age after id;

1.2 删:
alter table 表名 drop 字段名; //删除字段
drop table 表名; //删除表名

1.3 修改表结构(change修改字段名、modify修改字段数据类型)
ALTER TABLE grade RENAME newgrade; //改表名
alter table grade1 change newname2 name varchar(20); //改字段名

alter table grade1 change name int(20); // 改数据类型
alter table grade1 modify age int(20) after name; //修改字段位置

1.4 查
show databases; // 查看所有数据库
show tables; // 查看当前数据库下所有表
show create table grade; // 查看创建命令

select database(); //查看当前连接的数据库
desc table_name; //查看表结构


插入数据,id自增长,从1018开始,
唯一的username
CREATE TABLE t_user (
Id int(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,
username varchar(18) NOT NULL unique,
password varchar(18) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=1018 DEFAULT CHARSET=gbk;

改:
update tablename set username=2 where id=1018;


  1. values的增删改查,不用加table,alter语法都要加table(alter table tablename rename newname;)

2.1 增:
(insert只能增加有字段的value,alter table … add是增加表字段):
insert into 表名(字段1,字段2, …)
values(v1,v2, …),(v1,v2, …),(v1,v2, …);
insert into grade4 set name=‘duan5’, age=45, grade=5;

2.2 删:DELETE FROM 表名 [WHERE 条件表达式
DELETE FROM student WHERE id=7; //删掉一条
DELETE FROM student;// 删除全部

2.3改:
update 表名 set 字段1=val1, 字段2=val2, where 条件表达式;
在UPDATE 语句中若不使用WHERE 子句,则会将表中所有记录的指定字段都进行更新。

举例:更新student表中全部记录,将grade字段都更新为80
命令:UPDATE student SET grade=80;

2.4查:
2.4.1
select * from 表名 where 条件;
select 字段3,字段2,字段1 from 表名;

2.4.2 in 关键字,效率比or高
SELECT * FROM student2 WHERE id IN (1,2,3);

2.4.3 BETWEEN … AND … 关键字的查询
SELECT id,name FROM students WHERE id BETWEEN 2 AND 5;

2.4.4 空值查询
SELECT * FROM student2 WHERE gender IS NULL;
select distinct gender from student2;

2.4.5 重复数据返回一个 distinct gender
select distinct gender from student2;
在这里插入图片描述
2.4.6 like, not like 模糊查询
(1)百分号(%)通配符
%y% ”表示包含字符“ y ”的字符串,无论“ y ”在字符串的什么位置。
字符串“ c% ”匹配以字符 c 开始,任意长度的字符串
%c,以c结尾的字符串。

(2)下划线(_)通配符
匹配单个字符,若要匹配多个字符,需要使用多个下划线通配符。
命令:SELECT * FROM student2 WHERE name LIKE ‘wu_ong’;
在这里插入图片描述

2.4.7 AND 多条件查询,必须全部满足
SELECT id,name FROM student2 WHERE id<5 AND gender=‘女’;
在这里插入图片描述

2.4.8 OR 多条件查询,只要满足一个就行
SELECT id,name ,gender FROM student2 WHERE id<3 OR gender=‘女’;
在这里插入图片描述

2.4.9 or 和and一起用
AND 的优先级高于 OR,因此二者一起使用时,会先运算 AND 两边的表达式,再运算 OR 两边的表达式。
SELECT * FROM student2 WHERE gender=‘女’ OR gender=‘男’ AND grade=100;
在这里插入图片描述

4.3 高级查询(计算、排序)
4.3.1 聚合函数
函数名称 作用
    COUNT()     返回某列的行数
    SUM()     返回某列值的和
    AVG()     返回某列的平均值
    MAX()     返回某列的最大值
    MIN()     返回某列的最小值
select count(*) from 表名;
select count(字段名age) from 表名;

4.3.2对查询结果进行排序
order by 字段1(asc | desc)
SELECT * FROM student2 ORDER BY age;
SELECT * FROM student2 ORDER BY age asc; // 降序

4.3.3分组查询
(1)group by 字段 单独使用GROUP BY 关键字,查询的是每个分组中的一条记录
SELECT * FROM student2 GROUP BY gender;
在这里插入图片描述

可能会报错 mysql 1055错误,解决办法如下:
在 /etc/my.cnf (linux) 或my.ini(window)文件里加上如下:
sql_mode=‘NO_ENGINE_SUBSTITUTION’
或者用any_values
在这里插入图片描述

(2)单独使用 GROUP BY 进行分组:
一个大数据集,拆分成小的
返回2列,1统计列,2sex列
SELECT COUNT(*) ,gender FROM student2 GROUP BY gender;
在这里插入图片描述
(3)GROUP BY 和 HAVING 关键字一起使用
HAVING关键字和WHERE关键字的作用相同,区别在于HAVING 关键字可以跟聚合函数,而WHERE 关键字不能。通常HAVING 关键字都和GROUP BY一起使用,用于对分组后的结果进行过滤。
举例:将student2表按照gender字段进行分组查询,查询出grade字段值之和小于300的分组
命令:SELECT sum(grade),gender FROM student2 GROUP BY gender HAVING SUM(grade) < 300;
在这里插入图片描述

4.34 使用 LIMIT 限制查询结果的数量
limit后面可以跟2个参数,第一个起始位置,第二个数量。默认第一个可以不写,代表从0开始。
SELECT * FROM student LIMIT 4; // 从0开始,查询4个
SELECT * FROM student LIMIT 1,4;// 从1开始,查询4个

4.4 为表和字段取别名
SELECT * FROM 表名 [ AS ] 别名;
4.4.1为表取别名
语法:SELECT * FROM 表名 [ AS ] 别名;
举例:为student2表起一个别名s,并查询student2表中gender字段值为“女”的记录
命令:SELECT * FROM student2 AS s WHERE s.gender=‘女’;
在这里插入图片描述

4.4.2为字段取别名
语法:SELECT 字段名 [ AS ] 别名 [ ,字段名 [AS] 别名,…] FROM 表名 ;
举例:查询student2表中的所有记录的name和gender字段值,并未这两个字段起别名stu_name和stu_gender

命令:SELECT name AS stu_name,gender AS stu_gender FROM student2;
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端段

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值