51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

【MySQL 系列】MySQl 复习笔记 -(1)- 基础.md

启动 / 关闭 {#启动 - 关闭}

  • 启动(以管理员模式运行命令行)
net start mysql
  • 关闭(以管理员模式运行命令行)
net stop mysql

登录 / 退出 {#登录 - 退出}

  • 登录
mysql -u"用户名" -p"密码"
  • 登录格式二
mysql -h"ip 地址" -u"用户名" -p"密码"
  • 退出
exit

图形化界面 {#图形化界面}

  • Navicat
  • SQLyog
  • 当然, 我个人是不建议使用 SQLyog 的, 推荐使用 Navicat, 因为Navicat 真的很强大

SQL 语句分类 {#SQL 语句分类}

  • 什么是 SQL 语句

    • 结构化查询语言 (S tructured Q uery Language) 简称 SQL。
    • SQL 语句就是对数据库进行操作的一种语言。
  • SQL 的作用

    • 通过 SQL 语句我们可以 方便的操作数据库、表、数据。
    • SQL 是数据库管理系统都需要遵循的规范。不同的数据库生产厂商都支持 SQL 语句,但都有特有内容。
  • SQL 语句分类

    • DDL(Data Definition Language)数据定义语言
      用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等

    • DML(Data Manipulation Language)数据操作语言
      用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等

    • DQL(Data Query Language) 数据查询语言
      对数据库进行数据查询,关键字 select。

    • DCL(Data Control Language)数据控制语言(了解)

      是用来设置或更改数据库用户或角色权限的语句,这个比较少用到。

  • SQL 通用语法

    • SQL 语句可以单行或多行书写, 分号结尾
    • 可以使用空格和缩进增强语句的可读性
    • MySQL 数据库的 SQL 语句不区分大小写, 关键字建议大写
    • 三种注释
      • 单行注释(-- 注释内容)
      • 多行注释(/* 注释内容 */)
      • 注释内容(# 注释内容 /MySQL 特有)
-- 查询 mobai 表
SELECT 
	* 
	FROM
		mobai;

DDL 操作数据库 {#DDL 操作数据库}

  • 创建数据库
CREATE DATABASE IF NOT EXISTS '数据库名';
  • 判断是否存在相同数据库并创建
CREATE DATABASE '数据库名' DEFAULT CHARACTER SET '字符集';
  • 创建数据库并指定编码
CREATE DATABASE '数据库名' DEFAULT CHARACTER SET '字符集';
  • 查看数据库
SHOW DATABASES;
  • 查看当前数据库详细信息
SHOW CREATE DATABASE '数据库';
  • 修改数据库编码
ALTER DATABASE '数据库名' DEFAULT CHARACTER SET '新字符集';
  • 删除数据库
DROP DATABASE '数据名';
  • 查看当前使用数据库
SELECT DATABASE();
  • 切换数据库
USE '数据库';
  • DDL 小结

| DDL 语句操作数据库 | 关键字 | |:-----------:|:---------------------------------------------------| | 创建 | CREATE DATABASE 数据库名; | | 修改 | ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集; | | 查看 | SHOW CREATE DATABASE 数据库名; | | 删除 | DROP DATABASE 数据库名; |

  • 创建表
CREATE TABLE '表名' ('字段名 字段类型, 字段名 字段类型');
  • MySQL(常用)数据类型

| 类型 | 描述 | |:-------:|:-----:| | int | 整型 | | double | 浮点类型 | | varchar | 字符串类型 | | date | 日期类型 |

  • 查看数据库中所有表
SHOW TABLES;
  • 查看表结构
DESC '表名';
  • 查看创建表的 SQL 语句
SHOW CREATE TABLE '表名';
  • 快速创建一个表结构相同的表
CREATE TABLE '新表名' LIKE '旧表名';
  • 删除表
DROP TABLE '表名';
  • 判断是否存在并删除表
DROP TABLE IF EXISTS '表名';

DDL 修改表结构 {#DDL 修改表结构}

  • 给表添加一列
ALTER TABLE '表名' ADD '字段名' '字段类型';
  • 修改列类型
ALTER TABLE '表名' MODIFY '字段名' '新的类型';
  • 修改列名字
ATLER TABLE '表名' CHANGE '老字段名' '新字段名' '字段类型';
  • 删除列
ALTER TABLE '表名' DROP '字段名';
  • 修改表名
RENAME TABLE '旧表名' TO '新表名';
  • 修改表的字符集
ALTER TABLE '表名' DEFAULT CHARACTER SET '新字符集';

DML 插入记录 {#DML 插入记录}

DML 是对表中的数据进行增删改

  • 插入全部字段
INSERT INTO '表名' ('字段名 1, 字段名 2, 字段名 3') VALUES ('值 1, 值 2, 值 3');
  • 简化写法
INSERT INTO '表名' VALUES ('值 1, 值 2, 值 3');
  • 解决 MySQL/DOS 窗口中文乱码问题

错误原因: 因为 MySQL 的客户端设置编码是 utf8, 而系统的 DOS 命令行编码是 gbk,编码不一致导致的乱码

set names gbk; -- 告诉 mysql 传输数据的时候, 使用 gbk

DML 更新表记录 {#DML 更新表记录}

  • 不带条件修改数据
UPDATE '表名' SET '字段名'='新的值';
  • 待条件修改数据新的值
UPDATE '表名' SET '字段名 = 新的值' WHERE '条件';

关键字说明

  • UPDATE: -- 表示修改
  • SET: -- 修改的字段
  • WHERE: -- 指定条件

DML 删除表记录 {#DML 删除表记录}

  • 带条件删除数据
DELETE FROM '表名' WHERE '条件';
  • 不带条件删除数据
DELETE FROM '表名';
  • 注意

    • 值与字段必须对应,个数相同,类型相同
    • 值的数据大小必须在字段的长度范围内
    • 除了数值类型外,其它的字段类型的值必须使用引号引起。(建议单引号)
    • 如果要插入空值,可以不写字段,或者插入 null

DQL 没有条件的简单查询 {#DQL 没有条件的简单查询}

注意:查询不会对数据库中的数据进行修改,只是一种显示数据的方式。

  • 写出查询每列的名称
SELECT '字段名 1', '字段名 2' FROM '表名';
  • 使用 * 表示所有列
SELECT * FROM '表名';
  • 查询表中指定列数据
    • 查询指定列的数据, 多个列之间以逗号分隔
SELECT '字段名 1', '字段名 2' FROM '表名';
  • 别名查询
    • 查询时给列、表指定别名需要使用 AS 关键字
    • 使用别名的好处是方便观看和处理查询到的数据
SELECT 字段名1 AS 别名, 字段名2 AS 别名... FROM 表名;
SELECT 字段名1 AS 别名, 字段名2 AS 别名... FROM 表名 AS 表别名;
  • 清除重复值
SELECT DISTINCT '字段名' FROM '表名';
  • 某列数据和固定值运算
SELECT 字段名 + 数值 FROM 表名;
  • 某列数据和其他列数据参与运算
SELECT 字段1 + 字段2 FROM 表名;

注意: 参与运算的必须是数值类型

蠕虫复制 {#蠕虫复制}

什么是蠕虫复制:在已有的数据基础之上,将原来的数据进行复制,插入到对应的表中

INSERT INTO 表名1 SELECT 字段名 FROM 表名2;
赞(0)
未经允许不得转载:工具盒子 » 【MySQL 系列】MySQl 复习笔记 -(1)- 基础.md