alter table student change column height high int(3);
复制代码
12.数据列修改数据范例
alter table student modify column high char(10);
复制代码
13.修改表名
alter table student rename to student_table;
复制代码
14.插入数据项
insert into student(id,name,age,sex,high) value (001,"张三",10,"男",160);
复制代码
15.删除数据项
delete from student where high=140;
复制代码
16.更新数据项
update student set age=12;
复制代码
二,逻辑运算符
between 最小值 and 最大值
语法:select * from 表名 where 列名 between 最小值 and 最大值;
select * from student where id between 2 and 5;
复制代码
作用和使用><是一样的
select * from student where id>2 and id<5;
复制代码
2.null
语法:select * from 表名 where 列名 is null;(判断这一列有空值)
select * from student where high is null;
复制代码
in (取值范围)
语法:select * from 表名 where 列名 in (值1,值2,…)
select * from student where age in(9,12);
复制代码
like 似乎
通配符: % 代表恣意字符 _ 一个下划线代替一个字符
语法:select * from 表名 where 列名 like ‘通配符 特性 通配符’;
select * from student where name like '张_';
复制代码
具体参考:mysql的like语句
5.as 为表名称或者列名称指定别名
select id as student_id from student where name like '张_';
复制代码
6.union 归并两个或多个select语句结果集
select id from student as st where st.name like '张_' union select name from student where age=9;
复制代码
三,排序
关键词 order by
排序规则:升序排序 asc (默承认省略) 降序排序 desc
语法:
单列 select * from 表名 order by 列名 asc或者 desc;
多列 select * from 表名 order by 列名 asc或者 desc,列名2 asc或者desc,…;
select * from student order by age asc,name desc;
复制代码
四,去重
GROUP BY 和 DISTINCT 都是用于从数据库中选择唯一值的 SQL 子句
两者的不同请参考:mysql的distinct和group by的区别
select distinct age from student;
复制代码
select age,count(*) from student group by age;
复制代码
五,统计函数
语法:select 统计函数(列名),统计函数(列名2)… from 表名;
MySQL中的统计函数,也叫聚合函数,用于在查询中执行聚合操作,比方盘算总和、平均值、最大值、最小值等。下面是MySQL中常用的聚合函数及其解释:
COUNT:盘算指定列或表达式的行数,可以用于统计记载数量。
比方:SELECT COUNT(*) FROM table_name; 将返回表中的记载数。
SUM:盘算指定列或表达式的总和。
比方:SELECT SUM(salary) FROM employees; 将返回 employees 表中 salary 列的总和。
AVG:盘算指定列或表达式的平均值。
比方:SELECT AVG(age) FROM students; 将返回 students 表中 age 列的平均值。
MAX:返回指定列或表达式的最大值。
比方:SELECT MAX(price) FROM products; 将返回 products 表中 price 列的最大值。
MIN:返回指定列或表达式的最小值。
比方:SELECT MIN(quantity) FROM inventory; 将返回 inventory 表中 quantity 列的最小值。
这些聚合函数可以与其他SQL语句结合使用,如WHERE子句用于筛选特定条件的行,GROUP BY子句用于按列进行分组,并可用于盘算每个组的聚合值,ORDER BY子句用于对结果进行排序等。
必要注意的是,聚合函数通常会天生单个结果值,并且假如没有GROUP BY子句,它们将作用于整个结果集。而在有GROUP BY子句的情况下,聚合函数将根据分组进行盘算,天生每个组的聚合结果。
别的,还可以使用HAVING子句对分组后的结果进行进一步的筛选,雷同于WHERE子句对原始数据进行筛选。通过使用这些聚合函数,可以对数据进行统计和汇总,从而得出有关数据集的有用信息。
1.count(列名) 统计这一列的非空总行数
MySQL的子查询是指在一个查询语句内部嵌套另一个完备的查询语句。子查询通常用作外部查询的条件、过滤器或盘算字段的泉源。它可以返回一个结果集,供外部查询使用。
子查询可以出现在SELECT、FROM、WHERE、HAVING和INSERT语句的各个部门。
还可以别名结合join使用:
select * from 表名 as 别名1 join 表名 as 别名2 on 别名1.列名=别名2.列名;
SELECT子查询:子查询可以作为SELECT语句的一部门,用于在查询结果中天生一个或多个列。比方:
SELECT column1, column2, (SELECT COUNT(*) FROM table2) AS count FROM table1;
SELECT * FROM (SELECT column1, column2 FROM table1) AS subquery;
复制代码
在这个例子中,子查询 (SELECT column1, column2 FROM table1) 返回一个假造表,然后外部查询可以使用这个假造表进行进一步的操作。
WHERE子查询:子查询可以作为WHERE子句的一部门,用于根据子查询的结果过滤外部查询的行。比方:
SELECT column1, column2 FROM table1 WHERE column1 IN (SELECT column1 FROM table2);
复制代码
在这个例子中,子查询 (SELECT column1 FROM table2) 返回一组值,然后外部查询根据这些值过滤出符合条件的行。
子查询使用当前过滤条件:
SELECT
id,
COUNT(*) AS xxx,
max(SELECT song_title FROM online_song_onlinesongmodel AS o WHERE o.id = main.id) as bbb
FROM
online_song_onlinesongmodel AS main
WHERE
id LIKE '%3%'
GROUP BY
id;
复制代码
在这个例子中,子查询SELECT song_title FROM online_song_onlinesongmodel AS o WHERE o.id = main.id使用外部变量作为过滤条件,使用 o.id = main.id作为匹配条件。
HAVING子查询:子查询可以作为HAVING子句的一部门,用于根据子查询的结果过滤外部查询的行(通常与GROUP BY一起使用)。比方:
SELECT column1, COUNT(*) FROM table1 GROUP BY column1 HAVING COUNT(*) > (SELECT AVG(count) FROM table2);
复制代码
在这个例子中,子查询 (SELECT AVG(count) FROM table2) 返回一个平均值,然后外部查询根据这个平均值过滤出满意条件的行。
INSERT子查询:子查询可以作为INSERT语句的一部门,用于将子查询的结果插入到目的表中。比方:
INSERT INTO table1 (column1, column2) SELECT column1, column2 FROM table2;
在 MySQL 中,WHERE 和 HAVING 是用于筛选数据的两个关键字。
WHERE
WHERE 关键字用于在查询中筛选数据,并返回满意指定条件的行。WHERE 关键字可以使用比较运算符(如 =、<、>、<=、>=、<> 等)和逻辑运算符(如 AND、OR、NOT 等)来指定筛选条件。
以下是一个使用 WHERE 关键字的示例:
SELECT customer_name, city
FROM customers
WHERE city = 'New York';
复制代码
在上面的示例中,WHERE 关键字用于筛选出位于纽约市的顾客,并返回其名称和地点都会。
HAVING
HAVING 关键字用于在 GROUP BY 子句中筛选分组数据。它与 WHERE 关键字雷同,但它是在分组后进行筛选的,而不是在查询的所有行上进行筛选的。
以下是一个使用 HAVING 关键字的示例:
SELECT customer_id, COUNT(order_id)
FROM orders
GROUP BY customer_id
HAVING COUNT(order_id) > 2;
复制代码
在上面的示例中,GROUP BY 关键字用于按顾客 ID 进行分组,并盘算每个顾客的订单数量。然后,HAVING 关键字用于筛选出订单数量大于 2 的顾客。请注意,HAVING 关键字只能用于聚合函数(如 COUNT、SUM、AVG、MIN 和 MAX)所返回的数据。
总之,WHERE 和 HAVING 关键字都是用于筛选数据的关键字,但 WHERE 关键字用于筛选行,而 HAVING 关键字用于筛选分组数据。