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、删除数据库:
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、条件查询:
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
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复