一、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条件函数:
- IF(condition, value_if_true, value_if_false):根据条件返回不同的值。
示例:SELECT IF(10 > 5, 'Yes', 'No'); -- 输出:Yes
- CASE表达式:用于根据条件进行多重分支判断。
示例:
SELECT column_name,
CASE
WHEN condition1 THEN value1
WHEN condition2 THEN value2
...
ELSE default_value
END AS alias_name
FROM table_name;
- COALESCE(value1, value2, ...):返回参数中的第一个非NULL值。
示例:SELECT COALESCE(NULL, 'Value', 'Default'); -- 输出:Value
- NULLIF(expr1, expr2):如果expr1和expr2的值相等,则返回NULL,否则返回expr1的值。
示例:SELECT NULLIF(10, 10); -- 输出:NULL
- IFNULL(expr1, expr2):如果expr1为NULL,则返回expr2的值,否则返回expr1的值。
示例:SELECT IFNULL(NULL, 'Value'); -- 输出:Value
- 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;