Mysql 常用语句及用法记录

一、mysql简介-常用命令:

MySQL是一种关系型数据库管理系统,它提供了许多命令和用法来管理和操作数据库。以下是一些常用的MySQL命令及其用法:

1. 连接数据库:

 mysql -u username -p

用于连接到MySQL服务器,其中username是您的用户名。然后,系统会提示您输入密码来访问数据库。

2. 创建数据库:

CREATE DATABASE database_name;

用于创建一个新的数据库,其中database_name是您想要创建的数据库的名称。

3. 选择数据库:

 USE database_name;

用于选择要使用的数据库,其中database_name是您要选择的数据库的名称。

4. 创建表:

   CREATE TABLE table_name (
   column1 datatype constraint,
   column2 datatype constraint,
   ...
   );

用于创建一个新的表,其中table_name是您想要创建的表的名称,column1、column2等是表的列名和数据类型。

5. 插入数据:

  INSERT INTO table_name (column1, column2, ...)
   VALUES (value1, value2, ...);

用于向表中插入新的数据,其中table_name是您要插入数据的表的名称。

6. 查询数据:

SELECT column1, column2, ...
   FROM table_name
   WHERE condition;

用于从表中检索数据,其中column1、column2等是您要检索的列名,table_name是您要检索数据的表的名称。

7. 更新数据:

 UPDATE table_name
   SET column1 = value1, column2 = value2, ...
   WHERE condition;

用于更新表中的数据,其中column1、column2等是您要更新的列名,table_name是您要更新数据的表的名称。

8. 删除数据:

  DELETE FROM table_name
   WHERE condition;

用于从表中删除数据,其中table_name是您要删除数据的表的名称。

9. 删除表:

  DROP TABLE table_name;

用于删除一个表,其中table_name是您要删除的表的名称。

二、更改MySQL用户的权限和属性命令:

1. 查看当前用户:

SELECT user, host FROM mysql.user;

这将显示当前已经创建的用户列表以及他们的主机。您可以在这里找到要更改的用户。

2. 更改用户密码:

   ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';

将 'username' 替换为要更改密码的用户的用户名,'host' 是用户的主机,'new_password' 是新的密码。

3. 修改用户权限:

 GRANT permissions ON database_name.table_name TO 'username'@'host';

permissions 是要授予用户的权限,可以是ALL PRIVILEGES、SELECT、INSERT、UPDATE、DELETE等,database_name 和 table_name 是数据库和表的名称,'username' 和 'host' 分别是要更改权限的用户和主机。

4. 删除用户权限:

 REVOKE permissions ON database_name.table_name FROM 'username'@'host';

permissions、database_name、table_name、'username' 和 'host' 的含义与上述相同,该命令用于从用户上撤销特定权限。

5. 删除用户:

DROP USER 'username'@'host';

用于删除特定用户,将 'username' 和 'host' 替换为要删除的用户和主机。

三、MySQL中常见的MySQL函数及其用法示例:

1. COUNT() 函数:

用于计算指定列的行数

语法:SELECT COUNT(列名) FROM 表名 WHERE 条件;

例如:

 SELECT COUNT(*) FROM employees; -- 计算员工表中的总行数
 SELECT COUNT(DISTINCT department_id) FROM employees; -- 计算员工表中不重复的部门ID数

2. SUM() 函数:

用于计算指定列的总和

 语法:SELECT SUM(列名) FROM 表名 WHERE 条件;
 例如:SELECT SUM(salary) FROM employees; -- 计算员工表中薪水的总和

3. AVG() 函数:

用于计算指定列的平均值

 语法:SELECT AVG(列名) FROM 表名 WHERE 条件;
 例如:SELECT AVG(age) FROM employees WHERE department_id = 1; -- 计算部门1员工的平均年龄

4. MAX() 函数:

用于找出指定列的最大值

语法:SELECT MAX(列名) FROM 表名 WHERE 条件;
例如:SELECT MAX(salary) FROM employees; -- 找出员工表中薪水的最高值

5. MIN() 函数:

用于找出指定列的最小值

语法:SELECT MIN(列名) FROM 表名 WHERE 条件;
例如:SELECT MIN(age) FROM employees; -- 找出员工表中年龄的最小值

6. CONCAT() 函数:

用于连接多个字符串

语法:SELECT CONCAT(字符串1, 字符串2, ...) FROM 表名 WHERE 条件;
例如:SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM employees; -- 将员工的姓和名连接成全名

7. DATE_FORMAT() 函数:

用于格式化日期

语法:SELECT DATE_FORMAT(日期列, '格式') FROM 表名 WHERE 条件;
例如:SELECT DATE_FORMAT(birth_date, '%Y-%m-%d') FROM employees; -- 将员工的生日日期格式化为年-月-日的形

8. 字符串函数:

  • CONCAT(str1, str2, ...):将多个字符串连接在一起。

示例:SELECT CONCAT('Hello', ' ', 'World'); -- 输出:Hello World

  • LENGTH(str):返回字符串的长度。

示例:SELECT LENGTH('Hello World'); -- 输出:11

  • UPPER(str):将字符串转换为大写。

示例:SELECT UPPER('hello'); -- 输出:HELLO

  • LOWER(str):将字符串转换为小写。

示例:SELECT LOWER('WORLD'); -- 输出:world

  • SUBSTRING(str, start, length):返回字符串的子串。

示例:SELECT SUBSTRING('Hello World', 7, 5); -- 输出:World

  • REPLACE(str, search_str, replace_str):用一个字符串替换另一个字符串。

示例:SELECT REPLACE('Hello World', 'World', 'Universe'); -- 输出:Hello Universe

9. 数值函数:

  • ABS(x):返回x的绝对值。

示例:SELECT ABS(-10); -- 输出:10

  • ROUND(x, d):将x四舍五入到d位小数。

示例:SELECT ROUND(3.14159, 2); -- 输出:3.14

  • CEIL(x):返回大于或等于x的最小整数。

示例:SELECT CEIL(4.25); -- 输出:5

  • FLOOR(x):返回小于或等于x的最大整数。

示例:SELECT FLOOR(4.25); -- 输出:4

  • RAND():返回0到1之间的随机数。

示例:SELECT RAND(); -- 输出:随机数

10. 日期和时间函数:

  • NOW():返回当前日期和时间。

示例:SELECT NOW(); -- 输出:当前日期和时间

  • CURDATE():返回当前日期。

示例:SELECT CURDATE(); -- 输出:当前日期

  • CURTIME():返回当前时间。

示例:SELECT CURTIME(); -- 输出:当前时间

  • DATE_FORMAT(date, format):将日期格式化为指定格式。

示例:SELECT DATE_FORMAT(NOW(), '%Y-%m-%d'); -- 输出:当前日期的年-月-日格式

  • ADDDATE(date, INTERVAL value unit):将日期增加指定的时间间隔。

示例:SELECT ADDDATE(CURDATE(), INTERVAL 1 WEEK); -- 输出:当前日期加1周后的日期

11.if条件函数:

  1. IF(condition, value_if_true, value_if_false):根据条件返回不同的值。

示例:SELECT IF(10 > 5, 'Yes', 'No'); -- 输出:Yes

  1. CASE表达式:用于根据条件进行多重分支判断。

示例:

   SELECT column_name,
          CASE
             WHEN condition1 THEN value1
             WHEN condition2 THEN value2
             ...
             ELSE default_value
          END AS alias_name
   FROM table_name;
  1. COALESCE(value1, value2, ...):返回参数中的第一个非NULL值。

示例:SELECT COALESCE(NULL, 'Value', 'Default'); -- 输出:Value

  1. NULLIF(expr1, expr2):如果expr1和expr2的值相等,则返回NULL,否则返回expr1的值。

示例:SELECT NULLIF(10, 10); -- 输出:NULL

  1. IFNULL(expr1, expr2):如果expr1为NULL,则返回expr2的值,否则返回expr1的值。

示例:SELECT IFNULL(NULL, 'Value'); -- 输出:Value

  1. CASE WHEN...THEN...ELSE...END函数:用于在查询中进行条件判断。

示例:

   SELECT column_name,
          CASE
             WHEN condition1 THEN value1
             WHEN condition2 THEN value2
             ...
             ELSE value_if_false
          END AS alias_name
   FROM table_name;

四、Mysql存储过程使用:

1. 创建存储过程:

通过CREATE PROCEDURE语句来创建存储过程。

示例:

CREATE PROCEDURE procedure_name()
   BEGIN
       -- 存储过程的SQL语句
   END;

2. 参数传递:

存储过程可以接受输入参数和输出参数。

示例:

 CREATE PROCEDURE procedure_name(IN param1 INT, OUT param2 VARCHAR(255))
   BEGIN
       -- 存储过程的SQL语句
   END;

3. 调用存储过程:

使用CALL语句来调用存储过程。

示例:

 CALL procedure_name();

4. 条件判断:

可以在存储过程中使用条件判断语句,如IF、CASE等来实现逻辑控制。

示例:

 IF condition THEN
       -- 执行的操作
   ELSE
       -- 执行的操作
   END IF;

5. 循环:

可以在存储过程中使用循环语句来实现迭代操作,如WHILE、LOOP等。

示例:

 WHILE condition DO
       -- 执行的操作
   END WHILE;

6. 返回结果:

存储过程可以返回结果集或者单个值。

示例:

 CREATE PROCEDURE procedure_name()
   BEGIN
       SELECT column_name FROM table_name;
   END;

五、MySQL视图的创建和使用:

1. 创建视图:

使用CREATE VIEW语句来创建视图。

示例:

   CREATE VIEW view_name AS
   SELECT column1, column2
   FROM table_name
   WHERE condition;

2. 查看视图:

使用SELECT语句来查询和查看视图的数据。

示例:

 SELECT * FROM view_name;

3. 更新视图:

视图可以通过更新操作来修改基础表的数据。

示例:

 UPDATE view_name
   SET column1 = value
   WHERE condition;

4. 删除视图:

使用DROP VIEW语句来删除视图。

示例:

 DROP VIEW view_name;

5. 视图的替代表达式:

在视图定义中,可以使用计算字段、函数、子查询等来创建复杂的查询逻辑和结果集。

示例:

 CREATE VIEW view_name AS
   SELECT column1, column2, column1 + column2 AS total
   FROM table_name;

6. 视图的嵌套:

可以在一个视图中引用另一个视图,从而创建更复杂的查询结果。 示例:

CREATE VIEW view1 AS
   SELECT column1, column2
   FROM table_name;

   CREATE VIEW view2 AS
   SELECT column1
   FROM view1;
相关推荐
PGCCC5 分钟前
【PGCCC】postgresql 缓存池并发设计
数据库·缓存·postgresql
小爬虫程序猿11 分钟前
如何利用Python解析API返回的数据结构?
数据结构·数据库·python
wowocpp1 小时前
查看 磁盘文件系统格式 linux ubuntu blkid ext4
linux·数据库·ubuntu
C吴新科4 小时前
MySQL入门操作详解
mysql
Ai 编码助手7 小时前
MySQL中distinct与group by之间的性能进行比较
数据库·mysql
陈燚_重生之又为程序员7 小时前
基于梧桐数据库的实时数据分析解决方案
数据库·数据挖掘·数据分析
caridle7 小时前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
白云如幻7 小时前
MySQL排序查询
数据库·mysql
萧鼎7 小时前
Python并发编程库:Asyncio的异步编程实战
开发语言·数据库·python·异步
^velpro^7 小时前
数据库连接池的创建
java·开发语言·数据库