欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > mysql数据库SQL语句大全(上)

mysql数据库SQL语句大全(上)

2025/6/18 23:06:24 来源:https://blog.csdn.net/m0_66995023/article/details/139957635  浏览:    关键词:mysql数据库SQL语句大全(上)

一、数据库操作

  1. 创建数据库

  2. CREATE DATABASE database_name;
    

    创建一个名为 database_name 的数据库。

  3. 1、删除数据

  4. DROP DATABASE database_name;
    

    删除一个名为 database_name 的数据库。

  5. 2、选择数据库

  6. USE database_name;
    

  7. 选择一个名为 database_name 的数据库进行操作。

  8. 二、表操作

  9. 1、创建表

  10. CREATE TABLE table_name (column1 datatype [constraints],column2 datatype [constraints],...
    );
    

    创建一个名为 table_name 的表。

    示例:

    CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL,email VARCHAR(100),created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
    

    2、删除表

  11. DROP TABLE table_name;
    

    删除一个名为 table_name 的表。

  12. 3、修改表

  13. 添加列:

  14. ALTER TABLE table_name ADD column_name datatype [constraints];
    

    删除列:

  15. ALTER TABLE table_name DROP COLUMN column_name;
    

    修改列:

  16. ALTER TABLE table_name MODIFY COLUMN column_name datatype [constraints];
    

    4、重命名表

  17. ALTER TABLE old_table_name RENAME TO new_table_name;
    

    三、数据操作

  18. 1、插入数据

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

    示例:

  20. INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com');
    

    2、查询数据

  21. SELECT column1, column2, ... FROM table_name [WHERE condition] [ORDER BY column1, column2, ...] [LIMIT number];
    

    示例:

  22. SELECT id, username, email FROM users WHERE username = 'john_doe';
    

    3、更新数据

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

    示例:

  24. UPDATE users SET email = 'new_email@example.com' WHERE username = 'john_doe';
    

    4、删除数据

  25. DELETE FROM table_name WHERE condition;
    

    示例:

  26. DELETE FROM users WHERE username = 'john_doe';
    

    四、高级查询

  27. 1、连接查询

  28. 内连接:

    SELECT columns FROM table1 INNER JOIN table2 ON table1.column = table2.column;
    

    左连接:

  29. SELECT columns FROM table1 LEFT JOIN table2 ON table1.column = table2.column;
    

    右连接:

    SELECT columns FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;
    

    2、子查询

    SELECT columns FROM table WHERE column IN (SELECT column FROM table WHERE condition);
    

    示例:

    SELECT username FROM users WHERE id IN (SELECT user_id FROM orders WHERE amount > 100);
    

    3、分组和聚合

  30. 分组:

    SELECT column1, COUNT(*) FROM table GROUP BY column1;
    

    聚合函数:

    SELECT COUNT(column), SUM(column), AVG(column), MAX(column), MIN(column) FROM table;
    

    五、索引和约束

  31. 1、创建索引

  32. CREATE INDEX index_name ON table_name (column1, column2, ...);
    

    示例:

    CREATE INDEX idx_username ON users (username);
    

    唯一索引:不允许索引列中有重复的值。

    CREATE UNIQUE INDEX index_name ON table_name (column1, column2, ...);
    

    示例:

    CREATE UNIQUE INDEX idx_email ON users (email);
    

    2、删除索引

    DROP INDEX index_name ON table_name;
    

    示例:

    DROP INDEX idx_username ON users;
    

    3、查看索引

  33.  使用 SHOW INDEX 命令可以查看表的索引信息。

  34. SHOW INDEX FROM table_name;
    

    示例:

    SHOW INDEX FROM users;
    

    4、全文索引

  35.  全文索引主要用于文本搜索,可以对大量文本进行高效的关键词搜索。

  36. CREATE FULLTEXT INDEX index_name ON table_name (column1, column2, ...);
    

    示例:

    CREATE FULLTEXT INDEX idx_content ON articles (content);
    

    5、空间索引

  37.  空间索引用于地理数据的查询,需要 MyISAM 或 InnoDB 存储引擎支持。

    CREATE SPATIAL INDEX index_name ON table_name (geometry_column);
    

    示例:

    CREATE SPATIAL INDEX idx_location ON places (location);
    

    6、主键约束

    CREATE TABLE table_name (column1 datatype PRIMARY KEY,column2 datatype
    );
    

    示例:

    CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL
    );
    

    如果在创建表之后添加主键:

    ALTER TABLE table_name ADD PRIMARY KEY (column1, column2, ...);
    

    示例:

    ALTER TABLE users ADD PRIMARY KEY (id);
    

    7、外键约束

  38. 外键约束用于维护表之间的数据一致性。它确保一个表中的值对应另一个表中的值。

    CREATE TABLE table_name (column1 datatype,column2 datatype,CONSTRAINT fk_name FOREIGN KEY (column) REFERENCES other_table (other_column)
    );
    

    示例:

    CREATE TABLE orders (order_id INT AUTO_INCREMENT PRIMARY KEY,user_id INT,amount DECIMAL(10, 2),CONSTRAINT fk_user FOREIGN KEY (user_id) REFERENCES users(id)
    );
    

    如果在创建表之后添加外键:

    ALTER TABLE table_name ADD CONSTRAINT fk_name FOREIGN KEY (column) REFERENCES other_table (other_column);
    

    示例:

    ALTER TABLE orders ADD CONSTRAINT fk_user FOREIGN KEY (user_id) REFERENCES users(id);
    

    8、唯一约束

  39.  唯一约束确保列中的所有值都是唯一的。

  40. CREATE TABLE table_name (column1 datatype UNIQUE,column2 datatype
    );
    

    示例:

    CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,email VARCHAR(100) UNIQUE
    );
    

    如果在创建表之后添加唯一约束:

    ALTER TABLE table_name ADD UNIQUE (column);
    

    9、检查约束

  41.  检查约束用于确保列中的值符合指定的条件。MySQL从8.0.16开始支持CHECK约束。

    CREATE TABLE table_name (column1 datatype,column2 datatype,CONSTRAINT chk_name CHECK (condition)
    );
    

    示例:

    CREATE TABLE products (product_id INT PRIMARY KEY,price DECIMAL(10, 2),CONSTRAINT chk_price CHECK (price > 0)
    );
    

    如果在创建表之后添加检查约束:

    ALTER TABLE table_name ADD CONSTRAINT chk_name CHECK (condition);
    

    示例:

    ALTER TABLE products ADD CONSTRAINT chk_price CHECK (price > 0);
    

    10、默认约束 

  42. 默认约束用于在没有提供值时,为列分配默认值。

    CREATE TABLE table_name (column1 datatype DEFAULT default_value,column2 datatype
    );
    

    示例:

    CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
    

    如果在创建表之后添加默认约束:

    ALTER TABLE table_name ALTER COLUMN column SET DEFAULT default_value;
    

    示例:

    ALTER TABLE users ALTER COLUMN created_at SET DEFAULT CURRENT_TIMESTAMP;
    

    参考例子

    综合使用索引和约束可以提升查询效率和数据完整性。以下是一个综合示例:

    -- 创建数据库
    CREATE DATABASE company;-- 选择数据库
    USE company;-- 创建员工表
    CREATE TABLE employees (id INT AUTO_INCREMENT PRIMARY KEY,               -- 主键约束name VARCHAR(100) NOT NULL,position VARCHAR(50),salary DECIMAL(10, 2) CHECK (salary > 0),        -- 检查约束email VARCHAR(100) UNIQUE,                       -- 唯一约束hire_date DATE DEFAULT CURRENT_DATE              -- 默认约束
    );-- 创建部门表
    CREATE TABLE departments (dept_id INT AUTO_INCREMENT PRIMARY KEY,dept_name VARCHAR(100) UNIQUE
    );-- 创建职位表,包含外键约束
    CREATE TABLE jobs (job_id INT AUTO_INCREMENT PRIMARY KEY,job_title VARCHAR(100),min_salary DECIMAL(10, 2),max_salary DECIMAL(10, 2),dept_id INT,CONSTRAINT fk_dept FOREIGN KEY (dept_id) REFERENCES departments(dept_id)
    );-- 创建索引
    CREATE INDEX idx_emp_name ON employees (name);-- 插入数据
    INSERT INTO departments (dept_name) VALUES ('HR'), ('IT'), ('Finance');
    INSERT INTO employees (name, position, salary, email, hire_date) VALUES ('Alice', 'Manager', 75000, 'alice@example.com', '2020-01-15');
    INSERT INTO employees (name, position, salary, email) VALUES ('Bob', 'Developer', 60000, 'bob@example.com');
    INSERT INTO jobs (job_title, min_salary, max_salary, dept_id) VALUES ('Software Engineer', 50000, 100000, 2);-- 查询数据
    SELECT * FROM employees;
    SELECT * FROM jobs WHERE dept_id = 2;
    

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词