Mysql数据库简单常用语句

Mysql数据库简单常用语句

1、命令连接数据库

mysql -h 127.0.0.1 -u root -p

2、新增用户

GRANT SELECT on 数据库.* to 用户名@登录主机 identified by "密码";

3、创建数据库

CREATE DATABASE databaseName;

4、使用数据库

USE databaseName;

5、删除数据库

DROP DATABASE databaseName;

6、创建表

CREATE TABLE person(
           id int(10) not null auto_increment UNIQUE,
           name varchar(25),
           age int(10));

7、查看表结构

DESC person;

8、插入数据

INSERT INTO person(name,age)  VALUES('张三',30);

9、批量插入数据

INSERT INTO person  VALUES(3,'李5',30),(4,'李6',30),(5,'李7',30);

10、删除数据

DELETE FROM person where id=4;

11、修改数据

UPDATE person SET age=50 WHERE name='李7';

12、查询数据

SELECT * FROM person WHERE id=5 AND name='李7';

13、升序排序

SELECT * FROM person ORDER BY age;

默认升序ASC可以省略。

14、降序排序

SELECT * FROM person ORDER BY age DESC; 

降序必须写上DESC。

15、数据分组

SELECT age,COUNT(age) FROM person where age>30 GROUP BY age;

查询出年龄大于30岁的人数有还有哪些年龄段,并统计出来各个年龄段的人数个数。

 16、分组条件查询

SELECT age,COUNT(age) FROM person where age>30 GROUP BY age HAVING COUNT(age)>2;

查询出年龄大于30岁的人数有还有哪些年龄段,并统计出来各个年龄段的人数个数,最后筛选出来年龄段的人数大于2人的年龄段人数信息。
HAVING 是用来设置分组条件的条件表达式,用来分组查询后指定一些条件来输出查询结果。
WHERE 语句在聚合前先筛选记录,也就是说作用在GROUP BY和HAVING字句前,
而HAVING子句在聚合后对组记录进行筛选,HAVING只能用于GROUP BY。
WHERE 用于过滤数据行,而 HAVING用于过滤分组。
WHERE 在数据分组前进行过滤,而 HAVING 在数据分组后进行过滤。
WHERE 查询条件中不可以使用聚合函数,而 HAVING 查询条件中可以使用聚合函数。
WHERE 查询条件中不可以使用字段别名,而 HAVING 查询条件中可以使用字段别名。

17、限制查询数量LIMIT

SELECT * FROM user LIMIT 5;

检索前5行记录,
只给一个参数,它表示返回最大的记录行数目。

SELECT * FROM person LIMIT 2,2;

从第2条数据开始,检索出2条数据。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。
初始记录行的偏移量是从
0开始(不是 1)。

18、添加字段

ALTER TABLE person add phoneNumber varchar(25) not Null;

19、重命名字段

ALTER TABLE person change phoneNumber telephoneNumber varchar(25);

20、条件查询过滤

(1)AND(与查询)

用AND进行查询的时候,查询出来的数据要求条件都得满足。

SELECT * FROM person WHERE `name`='赵四' and age=50;

 

(2)OR(或查询)

用OR进行查询的时候,查询出来的数据只要求满足其中任意一个条件就可以查询出来。

SELECT * FROM person WHERE `name`='赵四' OR age=30;

查询出来名字是‘赵四’的,或者age在30岁的所有人信息。

(3)IN(在给定范围内)

用IN进行查询的时候,查询出来的数据在这个IN后边括号里边给定的值当中。

SELECT * FROM person WHERE age IN(30,55);

只查询出来年龄是30岁和55岁的人数信息。

(4)NOT IN(不在范围内)

用NOT IN进行查询的时候,查询出来的数据不在这个给定的范围内。

SELECT * FROM person WHERE age NOT IN(30,40,50);

查询出来所有年龄不是30岁,40岁,50岁的人。

(5)IS(为空)

用IS NULL进行查询的时候,是用来查询某字段为空时用is null,而不能使用"=null",因为mysql中的null不等于任何其他值,也不等于另外一个null。

优化器会把"=null"的查询过滤掉而不返回任何数据,查询某字段为非空时使用is not null。

SELECT * FROM person WHERE name is null;

21、模糊查询LIKE

(1)LIKE '李%'

使用LIKE查询该字段以“李”姓开头的数据。

SELECT * FROM person WHERE name like '李%';

(2)LIKE '%明'

使用LIKE查询该字段以“四”结尾的数据。

SELECT * FROM person WHERE name like '%四';

(3)LIKE '%明%'

使用LIKE查询该字段包含“强”的数据。

SELECT * FROM person WHERE name like '%强%';

22、字段控制查询过滤

​(1)DISTINCT

去除重复的数据。

SELECT distinct age FROM person;

(2)AS

可以设置列的别名、也可以省略AS来设置关键字。

SELECT name as 姓名,age 年龄 FROM person;

23、聚合函数

(1)AVG()函数

AVG函数是用来计算某一列的平均值,比如可以用在计算平均薪资、平均年龄等。

SELECT avg(age) FROM person;

(2)COUNT()函数

COUNT()聚合函数是用来统计表中记录的个数或者列中值的总个数,计算内容由SELECT语句指定,例如要获取person表中age > 30岁的人数。

SELECT count(*) FROM person WHERE age >30;

(3)MAX()/MIN()函数

MAX()聚合函数选取最大值,MIN()聚合函数选取最小值。

SELECT max(age) FROM person;
SELECT min(age) FROM person;

(4)SUM()函数

SUM()聚合函数用来计算满足条件的某一列的总和。

SELECT sum(age) FROM person ;

24、表连接查询

25、修改最大连接数

查看当前最大连接数
show variables like '%max_connections%';

查看当前mysql线程服务信息
show status like 'Threads%';

修改最大连接数
set global max_connections=3000;

25、性能调优

1、硬件升级:增加CPU、内存和存储资源。

2、优化数据库结构:使用合适的数据类型,规范化表名和字段名,使用索引。

3、配置文件优化:调整my.cnf或my.ini配置文件。

[mysqld]

# 最大连接数
max_connections = 1000

# 缓冲区大小
query_cache_size = 32M

# 缓冲区类型,0表示不使用缓冲区,1表示使用缓冲区但不会执行解析,2表示完全使用缓冲区
query_cache_type = 1

# 内存表大小
tmp_table_size = 64M

# 线程缓冲区大小
thread_stack = 256K

# 内存排序缓冲区大小
sort_buffer_size = 8M

4、查询优化:使用索引,避免SELECT *,避免子查询,使用JOIN代替。

5、定时优化和清理:定期执行OPTIMIZE TABLE和数据清理。

  在 MySQL 数据库中,OPTIMIZE TABLE 是一个重要的命令,用于优化表的性能和空间利用。通过重新组织表的存储结构,去除碎片,OPTIMIZE TABLE 可以帮助提高查询性能、减少存储空间占用以及减少数据碎片。

6、监控和日志分析:使用SHOW STATUS和SHOW PROCESSLIST,分析慢查询日志。调优是一个持续的过程,需要监控数据库的表现,并根据实时情况进行调整。

  SHOW STATUS 命令就像是一个报告卡,告诉我们MySQL数据库服务器的当前状态。这个命令会提供很多关于MySQL如何运行的信息,比如它已经运行了多长时间,执行了多少次查询,以及是否有任何错误发生。当我们执行SHOW STATUS命令时,MySQL会查看它的内部记录,这些记录保存了数据库服务器的各种状态信息。然后,它会返回一个列表,列出了所有这些状态信息,我们可以查看这些信息来了解数据库的运行情况。

  SHOW PROCESSLIST 命令则像是一个任务管理器,它显示当前正在MySQL数据库服务器上运行的所有任务或进程。这些任务可能是用户正在执行的查询,或者是数据库服务器自己正在进行的一些工作。当我们执行SHOW PROCESSLIST命令时,MySQL会查看当前正在运行的所有进程,并返回一个列表,列出了每个进程的详细信息,比如它是谁启动的,正在执行什么查询,以及它已经运行了多长时间。

 

 

posted @ 2022-04-22 17:12  一级退堂鼓表演艺术家  阅读(123)  评论(0编辑  收藏  举报