### MySQL基础知识概览 MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),因其高效、可靠且易于使用的特点而深受开发者喜爱。本篇内容主要聚焦于MySQL的基础知识介绍,包括常用的SQL命令、表的创建与管理、数据的增删改查等核心技能。 #### 基础常用命令 1. **登录MySQL** - **本地登录**: `mysql -u root -p` (可直接在命令行中输入密码或省略`-p`后等待命令行提示输入密码)。 - **远程登录**: `mysql -h 登录IP -P 端口 -u 用户名 -p` (默认端口号为3306)。 2. **查看表结构**: 使用`DESC 表名`来查看表中各字段的属性及自增键情况。 3. **备份与恢复数据库** - **导出数据库**: `mysqldump -u 用户名 -p 数据库名 > xx.sql`。 - **导入数据库**: - 直接通过命令行: `mysql -u 用户名 -p 密码 数据库名 < xx.sql` - 或者先登录MySQL后执行: `SOURCE xx.sql` #### 创建命令 1. **删除用户**: `DROP USER 用户名@IP`。 2. **查看数据库**: `SHOW DATABASES;`。 3. **查看表**: `SHOW TABLES;`。 4. **创建数据库**: `CREATE DATABASE 数据库名 DEFAULT CHARACTER SET utf8;`。 5. **创建表** - **基础创建**: `CREATE TABLE 表名 (列名 数据类型 约束, ...)`。 - 数据类型包括但不限于: 数字(`INT`, `TINYINT`, `SMALLINT`, `FLOAT`, `DOUBLE`)、字符串(`CHAR`, `VARCHAR`)、时间(`DATE`, `TIME`, `DATETIME`)、枚举(`ENUM`)、集合(`SET`)。 - **含主键的表**: `CREATE TABLE 表名 (列名 数据类型 PRIMARY KEY AUTO_INCREMENT, ...)`。 - **含外键的表**: `CREATE TABLE 表名 (列名 数据类型 PRIMARY KEY, ... CONSTRAINT FK_外键名 FOREIGN KEY (列名[,]) REFERENCES 表名2 (列名[,]))`。 #### 查表命令 1. **基本查询** - `SELECT * FROM 表名;` - `SELECT 列名 FROM 表名;` - `SELECT 列名 FROM 表名 WHERE 条件;` 2. **条件查询** - 比较运算符: `>`, `<`, `!=` - `IN`, `NOT IN`, `BETWEEN AND` - `LIKE` (通配符`%`表示任意数量的字符,`_`表示单个字符) - `AND`, `OR`逻辑运算符 - 子查询: `SELECT 列名 FROM 表名 WHERE 列名 IN (SELECT 列名 FROM 表名);` 3. **排序** - `SELECT * FROM 表名 ORDER BY 列名 DESC;` (降序) - `SELECT * FROM 表名 ORDER BY 列名 ASC;` (升序) - 多列排序: `SELECT * FROM 表名 ORDER BY 列名1 DESC, 列名2 ASC;` 4. **分组操作** - `SELECT COUNT/SUM/MAX/MIN/AVG(列名1), 列名2 FROM 表名 GROUP BY 列名2;` - `SELECT COUNT/SUM/MAX/MIN/AVG(列名1), 列名2 FROM 表名 GROUP BY 列名2 HAVING 条件;` 5. **连表操作** - 左连接: `SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.列名 = 表2.列名;` - 右连接: `SELECT * FROM 表1 RIGHT JOIN 表2 ON 表1.列名 = 表2.列名;` - 内连接: `SELECT * FROM 表1 INNER JOIN 表2 ON 表1.列名 = 表2.列名;` - 处理多表连接时,可以先对两个表进行连接并视作一个临时表,然后再与其他表进行连接。 #### 删除、修改、插入命令 1. **插入数据** - 单条插入: `INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);` - 批量插入: `INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...), (值1, 值2, ...);` - 插入另一表的数据: `INSERT INTO 表名1 (列名) SELECT 列名 FROM 表名2;` 2. **修改数据**: `UPDATE 表名 SET 列名1 = 值1, 列名2 = 值2 WHERE 条件;` 3. **删除数据** - 清除表: `DELETE FROM 表名;` (保留表结构,但不清空自增ID) - 清除特定数据: `DELETE FROM 表名 WHERE 条件;` - 彻底清空表: `TRUNCATE TABLE 表名;` (保留表结构,同时重置自增ID) #### 修改表结构 1. **设置自增键起始值**: `ALTER TABLE 表名 AUTO_INCREMENT = 值;` 2. **删除列**: `ALTER TABLE 表名 DROP 列名;` 以上内容涵盖了MySQL的基础操作,掌握了这些技能可以帮助您有效地管理和维护数据库。无论是作为数据库管理员还是开发人员,了解这些命令都是非常重要的。希望本文能为您提供帮助,如果您有更深入的需求或问题,建议查阅官方文档或专业书籍获取更多细节。
## 1.基础常用命令
mysql -uroot -p密码;(也可以不带密码,之后输入) 本地登录
mysql -h 登录ip -p 端口(通常3306) -uroot -p密码; 远程登录
desc 表名;查看表的各个字段的属性,以及自增键
mysqldump -u用户 -p 数据库名 > xx.sql; 导出数据库文件,保存
mysql -u用户 -p密码 数据库名< xx.sql;导入数据库文件(也可以选择登录进去,在选择数据库后,使用source命令导入数据)
## 2.创建命令
drop user 用户名@ip 删除用户
show databases; 查数据库
show tables; 看表
create database 数据库名 default charset utf8; 创建数据库
create table 表名(列名 数据类型 约束···,列名 数据类型 约束···)engine=innodb default charset=utf8 创建表
其中数据类型种类 数字(int,tinyint,smallint,float,double),字符串(char(个数)varchar(个数))时间(DATE,TIME,DATETIME),枚举enum(值只能是枚举中的元素),集合set(值只能是结合元素的组合)
create table 表名(列名 数据类型 primary key auto_increment,列名 数据类型 约束···)engine=innodb default charset=utf8 创建含主键的表
create table 表名(列名 数据类型 primary key,列名 数据类型 constraint fk_外键名 foreign key (列名[,]) references 表名2(列名[,])···)engine=innodb default charset=utf8 创建含外键的表
## 2.查表命令
#### 条件查询
select * from 表名;
select 列名···from 表名;
select 列名 from 表名 where 列名(id等) >/</!= value;
select 列名,常量 from 表名; 增加一个常量列
select 列名 from 表名 where 列名 in/not in/between and value;
select 列名 from 表名 where 条件1 and 条件2;
特殊的:select 列名 from 表名 where 列名 in (select 列名(只能一列) from 表名);
- 粉丝: 25
- 资源: 13
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助