MySQL常用操作

2023-12-24 15:34:41

入门

停止服务器:net stop mysql80

登录:mysql -uroot -p

密码:123456

基本操作

展示数据库:show databases;

创建新数据库:create database name;

创建表之前要先use 一个数据库

创建表:

CREATE TABLE users (    
	id INT PRIMARY KEY AUTO_INCREMENT,    
    name  VARCHAR(50),    
    age INT,    
    email VARCHAR(100) 
);

展示表结构:

DESCRIBE users;
desc users;

添加信息:

INSERT INTO users (name, age, email)
VALUES ('Alice', 25, 'alice@example.com');

添加多条信息:

INSERT INTO users (name, age, email) VALUES
('John', 30, 'john@example.com'),
('Emily', 28, 'emily@example.com'),
('Michael', 35, 'michael@example.com'),
('Sarah', 32, 'sarah@example.com');

展示表信息:

SELECT * FROM users;

删除表信息:

DELETE FROM users WHERE name = 'Alice';

修改表信息:

UPDATE users SET name = 'world' WHERE id = 2;

查询表信息:

SELECT *FROM users
    -> WHERE id=2
    -> ;

给表中信息起别名:

SELECT id, name AS 姓名, age AS 年龄, email AS 电子邮件 FROM users;

让表中数据按年龄升序排列:

SELECT * FROM users
ORDER BY age ASC;

降序使用DESC

条件查询,只显示年龄大于26岁的人员的信息:

SELECT * FROM users
WHERE age > 26;

等于条件(Equal):使用 “=” 运算符来筛选等于指定值的数据。

SELECT * FROM users
WHERE age = 26;

不等于条件(Not Equal):使用 “<>” 或 “!=” 运算符来筛选不等于指定值的数据。

SELECT * FROM users
WHERE age <> 26;

大于条件(Greater Than):使用 “>” 运算符来筛选大于指定值的数据。

SELECT * FROM users
WHERE age > 26;

小于条件(Less Than):使用 “<” 运算符来筛选小于指定值的数据。

SELECT * FROM users
WHERE age < 26;

大于等于条件(Greater Than or Equal To):使用 “>=” 运算符来筛选大于等于指定值的数据。

SELECT * FROM users
WHERE age >= 26;

小于等于条件(Less Than or Equal To):使用 “<=” 运算符来筛选小于等于指定值的数据。

SELECT * FROM users
WHERE age <= 26;

这些只是条件查询的一些常见示例,你可以根据实际需求进行组合和扩展。在已有的 “users” 表中,你可以尝试使用上述语句来体验不同的条件查询。

模糊查询:

查询邮箱带有example的人员的信息

SELECT * FROM users WHERE email LIKE '%example%';

如果要查找名字以 “John” 开头的用户,可以使用以下查询:

SELECT * FROM users WHERE name LIKE 'John%';

如果要查找名字以 “John” 结尾的用户,可以使用以下查询:

SELECT * FROM users WHERE name LIKE '%John';

增加字段:

向users中增加一个工资字段

ALTER TABLE users ADD salary DECIMAL(10,2);

多个字段排序:

SELECT *FROM users ORDER BY salary DESC,age ASC;

"根据字段位置排序"是指根据数据库表中某个特定字段的位置来进行排序。在SQL中,可以使用ORDER BY子句对查询结果进行排序。默认情况下,ORDER BY子句按照字段的升序(从小到大)进行排序。

例如,假设有一个名为"users"的表,其中包含以下字段:id、name和age。要按照"age"字段的位置进行排序,可以使用以下SQL查询语句:

SELECT * FROM users ORDER BY 3;

这里的"3"表示按照第三个字段"age"进行排序。查询结果将按照"age"字段的值从小到大进行排序。

请注意,根据字段位置排序可能不太可靠,特别是在表结构发生变化时。最好的做法是使用字段名称来进行排序,以确保准确性和可读性。例如,可以使用以下语句按照"age"字段进行排序:

SELECT * FROM users ORDER BY age;

函数

单行处理函数

在"users"表中,常见的单行处理函数可以用于对特定字段进行操作和计算,并在查询结果中返回处理后的值。以下是一些常见的单行处理函数及其在"users"表中的应用示例:

  1. UPPER函数:将字符串字段转换为大写。

    SELECT UPPER(name) FROM users;
    
  2. LOWER函数:将字符串字段转换为小写。

    SELECT LOWER(name) FROM users;
    
  3. LENGTH函数:返回字符串字段的字符数。

    SELECT name, LENGTH(name) FROM users;
    
  4. CONCAT函数:将多个字符串字段连接为一个字符串。

    SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM users;
    
  5. SUBSTRING函数:返回字符串字段的子字符串。

    SELECT SUBSTRING(email, 1, 5) FROM users;
    
  6. TRIM函数:去除字符串字段的前导和尾随空格。

    SELECT TRIM(name) FROM users;
    

这些函数可以根据实际需求进行组合和扩展,以满足对字段的特定处理和计算要求。请根据具体情况选择适当的函数和参数。

分组函数

分组函数是一种用于对数据进行分组计算的函数。它可以对一组数据进行聚合操作,并返回一个单一的结果。常见的分组函数包括 COUNT、SUM、AVG、MIN 和 MAX。

在 “users” 表中,你可以使用分组函数对数据进行统计和计算。例如,你可以使用 COUNT 函数来计算表中的记录数量,使用 SUM 函数来计算某个列的总和,使用 AVG 函数来计算某个列的平均值,使用 MIN 函数来找到某个列的最小值,使用 MAX 函数来找到某个列的最大值等等。

以下是一些使用分组函数的示例查询:

  1. 计算 “users” 表中的记录数量:

    SELECT COUNT(*) FROM users;
    
  2. 计算 “users” 表中年龄列的总和:

    SELECT SUM(age) FROM users;
    
  3. 计算 “users” 表中年龄列的平均值:

    SELECT AVG(age) FROM users;
    
  4. 找到 “users” 表中年龄列的最小值:

    SELECT MIN(age) FROM users;
    
  5. 找到 “users” 表中年龄列的最大值:

    SELECT MAX(age) FROM users;
    

这些示例只是分组函数的一小部分应用场景,你可以根据具体需求使用适当的分组函数来实现更复杂的数据分析和计算。

小练习1

  1. 创建一个管理员工信息的数据库
  2. 添加一张表,要求有员工的id、姓名、工资
  3. 添加五个员工信息
  4. 查询工资在一万以上两万一下的员工的信息
SELECT 
    COUNT(CASE WHEN age BETWEEN 20 AND 30 THEN 1 END) AS age_20_to_30,
    COUNT(CASE WHEN age > 30 THEN 1 END) AS age_above_30
FROM 
    users;

解释THEN 1 END 是什么意思

高级操作一

去重查询

SELECT count(distinct 职位)FROM employees;

关键字:distinct

小项目

-- 创建第二张表
CREATE TABLE t_att (
  attribute INT PRIMARY KEY,
  content VARCHAR(30)
);
-- 创建第一张表
CREATE TABLE t_list (
  ID INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(30),
  deadline DATE,
  attribute INT,
  FOREIGN KEY(attribute) REFERENCES t_att(attribute)
);

生日表

使用int代表生日 1010表示10月10日

条件查询 并排序

文章来源:https://blog.csdn.net/m0_69886881/article/details/135181591
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。