如何高效学习Mysql数据库?

MySQL数据库学习包括安装、配置、基础语法、数据类型、表操作等。

MySQL数据库学习

如何高效学习Mysql数据库?

初识数据库

什么是数据库?

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据,数据库技术解决了数据的持久化存储问题,同时利用数据库管理系统解决了对大量数据操作繁琐的问题。

数据库分类

1、关系型数据库:如MySQL、Oracle、SQL Server、DB2等,通过表和表之间的关系进行数据存储。

2、非关系型数据库:如Redis、MongoDB等,数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定。

相关概念

DBMS(数据库管理系统):位于用户与操作系统之间的数据管理软件,用于科学有效地管理、维护和获取我们的数据,MySQL就是一种DBMS。

SQL(结构化查询语言):用于操作关系型数据库的标准语言。

MySQL简介

MySQL是一个广泛使用的关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司旗下产品,它支持大型数据库,可以处理上千万条记录的大型数据库,并且运行于多个系统上,支持多种编程语言。

安装与配置

下载与安装

前往MySQL官网下载适合你操作系统的安装包,安装过程如下:

1、选择合适的版本并下载。

2、运行安装程序,选择适合的安装类型(如开发者默认)。

3、配置MySQL服务器,包括设置root密码、选择默认字符集等。

4、完成安装。

验证安装

打开终端(命令提示符),输入以下命令以检查MySQL是否安装成功:

mysql -u root -p

输入你设置的root密码,如果能够成功登录,说明安装成功。

基本操作

操作数据库

1、创建数据库

   CREATE DATABASE [IF NOT EXISTS] 数据库名;

2、删除数据库

如何高效学习Mysql数据库?

   DROP DATABASE [if EXISTS] 数据库名;

3、使用数据库

   use 数据库名;

4、查看数据库

   SHOW DATABASES;

数据类型

MySQL支持多种数据类型,包括数值类型、字符串类型、日期与时间类型等。

创建数据表


CREATE TABLE IF NOT EXISTSstudent (id INT(4) NOT NULL,name VARCHAR(20) NOT NULL,
    PRIMARY KEY (id)
);

SQL语法

DDL(数据定义语言)

1、查询数据库

   SHOW DATABASES;

2、创建数据库

   CREATE DATABASE my_database;

3、删除数据库

   DROP DATABASE my_database;

4、使用数据库

   USE my_database;

5、查询表

   SHOW TABLES;

6、创建表

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

7、删除表

   DROP TABLE users;

8、修改表

   ALTER TABLE users ADD email VARCHAR(100);

DML(数据操作语言)

1、插入数据

   INSERT INTO users (username, password) VALUES ('alice', 'password123');

2、修改数据

   UPDATE users SET password = 'newpassword123' WHERE username = 'alice';

3、删除数据

   DELETE FROM users WHERE username = 'bob';

DQL(数据查询语言)

1、基础查询

   SELECT * FROM users;

2、条件查询

如何高效学习Mysql数据库?

   SELECT * FROM users WHERE username = 'alice';

3、排序查询

   SELECT * FROM users ORDER BY created_at DESC;

4、聚合函数

   SELECT COUNT(*) FROM users;

5、分组查询

   SELECT username, COUNT(*) AS logins FROM users GROUP BY username;

6、分页查询

   SELECT * FROM users LIMIT 10 OFFSET 0;

7、子查询

   SELECT * FROM users WHERE id IN (SELECT user_id FROM orders);

8、连接查询

   SELECT u.username, o.order_date FROM users u JOIN orders o ON u.id = o.user_id;

9、索引

   CREATE INDEX idx_username ON users(username);

10、视图

    CREATE VIEW user_view AS SELECT username, created_at FROM users;

11、事务

    START TRANSACTION;
    UPDATE accounts SET balance = balance 100 WHERE id = 1;
    UPDATE accounts SET balance = balance + 100 WHERE id = 2;
    COMMIT;

12、存储过程

    DELIMITER //
    CREATE PROCEDURE GetAllUsers()
    BEGIN
        SELECT * FROM users;
    END //
    DELIMITER ;

13、触发器

    DELIMITER //
    CREATE TRIGGER before_insert_users
    BEFORE INSERT ON users
    FOR EACH ROW
    BEGIN
        SET NEW.created_at = NOW();
    END //
    DELIMITER ;

14、备份

    mysqldump -u root -p my_database > backup.sql;

15、恢复

    mysql -u root -p my_database < backup.sql;

16、外键约束

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

17、非空约束

    ALTER TABLE users MODIFY COLUMN username VARCHAR(50) NOT NULL;

18、唯一约束

    ALTER TABLE users ADD CONSTRAINT unique_email UNIQUE (email);

19、主键约束

    ALTER TABLE users ADD PRIMARY KEY (id);

20、默认值

    ALTER TABLE users ALTER COLUMN status SET DEFAULT 'active';

21、删除约束

    ALTER TABLE users DROP FOREIGN KEY fk_user;

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1453786.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希
上一篇 2025-01-03 09:29
下一篇 2025-01-03 09:32

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入