MySQL 是一个广泛使用的开源关系型数据库管理系统,它由瑞典的 MySQL AB 公司开发,目前由 Oracle 公司持有和维护,MySQL 被广泛应用于 Web 应用程序开发中,是许多网站和应用程序的后端数据库系统。
一、基础概念
1、数据库:数据库是按照数据结构来组织、存储和管理数据的仓库,每个数据库可以包含一个或多个表,表是数据库的基本组成单位。
2、表:表是数据的矩阵,由行和列组成,每行代表一条记录,每列代表记录的一个字段。
3、字段:表中的每一列称为一个字段,用于定义数据的结构和类型。
4、主键:主键是表中的一个唯一标识符,用于唯一地标识表中的每一行记录。
5、外键:外键用于关联两个表,通过引用另一个表的主键来建立表之间的关系。
二、SQL 语言的主要分类
根据功能和用途,SQL 语言可以分为以下几类:
1、DDL(数据定义语言):包括创建(CREATE)、修改(ALTER)和删除(DROP)数据库、表、索引等的操作。
2、DML(数据操控语言):包括查询(SELECT)、插入(INSERT)、更新(UPDATE)、删除(DELETE)等操作。
3、DQL(数据库查询语言):主要指用于查询数据的命令,如 SELECT。
4、DCL(数据库控制语言):包括提交事务(COMMIT)、回滚事务(ROLLBACK)、设置保存点(SAVEPOINT)等操作。
三、基本用法
增
1、库的操作
创建库:CREATE DATABASE database_name;
实例:create database sun;
创建一个名为 sun 的数据库。
删除库:DROP DATABASE database_name;
实例:drop database sun;
删除名为 sun 的数据库。
2、表操作
创建表:CREATE TABLE table_name (column1 datatype, column2 datatype);
实例:create table student(name varchar(20), age int);
创建一个名为 student 的表,包含 name 和 age 两个字段。
添加列:ALTER TABLE table_name ADD COLUMN column_name datatype;
实例:alter table sun add column age int;
在名为 sun 的表中添加一个名为 age 的整型字段。
删除列:ALTER TABLE table_name DROP COLUMN column_name;
实例:alter table sun drop column age;
从名为 sun 的表中删除 age 字段。
3、值操作
插入数据:INSERT INTO table_name (column1, column2) VALUES (value1, value2);
实例:insert into sun(name, age) values('zhangsan', 18);
向名为 sun 的表中插入一条记录。
删
1、删除库:同上,使用DROP DATABASE database_name;
命令。
2、删除表:DROP TABLE table_name;
实例:drop table good;
删除名为 good 的数据表。
3、删除值:DELETE FROM table_name WHERE condition;
实例:delete from sun where name='sun';
删除名为 sun 的表中 name 等于 'sun' 的记录。
改
1、修改表名:ALTER TABLE old_table_name RENAME TO new_table_name;
实例:alter table sun rename to hello;
将名为 sun 的表重命名为 hello。
2、更新数据:UPDATE table_name SET column1 = value1, ... WHERE condition;
实例:update sun set age=30 where name='zhangsan';
将 sun 表中 name 为 'zhangsan' 的记录的 age 更新为 30。
查
1、输出整张表:SELECT * FROM table_name;
实例:select * from sun;
输出 sun 表中的所有记录。
2、特定的列:SELECT column1, column2 FROM table_name;
实例:select age, name from sun;
输出 sun 表中的 age 和 name 列。
3、条件查询:SELECT * FROM table_name WHERE condition;
实例:select * from sun where age=18;
输出 sun 表中 age 等于 18 的记录。
4、排序查询:SELECT * FROM table_name ORDER BY column_name [ASC|DESC];
实例:SELECT * FROM sun ORDER BY hire_date DESC;
根据 hire_date 列进行降序排序。
5、模糊匹配 LIKE:SELECT * FROM table_name WHERE column_name LIKE pattern;
实例:select * from sun where name like '王%';
查找出姓王的同学。
6、范围查询(between and):SELECT * FROM table_name WHERE column_name BETWEEN value1 AND value2;
实例:select * from sun where age between 13 and 20;
输出年龄在 13 到 20 之间的人所有信息。
7、并且查询(and):SELECT * FROM table_name WHERE condition1 AND condition2;
实例:select * from sun where age='18' and address='北京';
输出年龄为 18 并且地址在北京的人的信息。
8、或查询(or):SELECT * FROM table_name WHERE condition1 OR condition2;
实例:select * from sun where salary=6000 or bonus=1000;
输出工资等于 6000 或者奖金等于 1000 的人的信息。
9、in 查询(in):SELECT * FROM table_name WHERE column_name IN (value1, value2, ...);
实例:select * from sun where math in (80, 90, 100);
输出数学成绩等于 80、90 或 100 的人的信息。
四、其他常用命令
进入特定数据库:USE database_name;
查询所有数据库:SHOW DATABASES;
查询所有表:SHOW TABLES;
五、FAQs
Q1: 如何在 MySQL 中创建一个新的用户并赋予其权限?
A1: 在 MySQL 中,可以使用以下命令创建新用户并赋予其权限:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost'; FLUSH PRIVILEGES;
username
是新用户的用户名,password
是新用户的密码,database_name
是要赋予权限的数据库名称。ALL PRIVILEGES
表示授予所有权限,可以根据需要调整。FLUSH PRIVILEGES
命令用于重新加载权限,使更改生效。
Q2: 如何在 MySQL 中备份和恢复数据库?
A2: 在 MySQL 中,可以使用mysqldump
工具进行数据库备份和恢复。
备份数据库:
mysqldump -u username -p database_name > backup_file.sql
username
是数据库用户名,database_name
是要备份的数据库名称,backup_file.sql
是备份文件的名称,执行该命令后,系统会提示输入密码,输入正确的密码后即可开始备份。
恢复数据库:
mysql -u username -p database_name < backup_file.sql
username
是数据库用户名,database_name
是要恢复的数据库名称(如果数据库不存在,则需要先创建),backup_file.sql
是备份文件的名称,执行该命令后,系统会提示输入密码,输入正确的密码后即可开始恢复,如果数据库已经存在且包含数据,恢复操作将会覆盖现有数据,请谨慎操作。
六、小编有话说
MySQL 作为一款功能强大的关系型数据库管理系统,在数据处理和存储方面发挥着重要作用,掌握其基本用法对于开发人员来说至关重要,通过本文的介绍,相信大家对 MySQL 的基本操作有了更深入的了解,MySQL 还有更多高级特性等待我们去探索和学习,希望本文能为大家的学习之路提供有益的参考和帮助,也欢迎大家分享自己的学习心得和经验,共同进步!