zoukankan      html  css  js  c++  java
  • 笔记:MySQL基础概要

    * MySQL数据库:

                * 概念:按照数据结构来组织、存储和管理数据的仓库

                         用于存储数据的仓库.

                * 关系型数据库:

                            * 具有多个行和列的表格.

                            * 产品:MySQL、Oracle、SQL Server等.

                * NoSQL:

                * 开发网站:LAMP - Linux Apache MySQL PHP

              * MySQL:

                * SQL语言:(重要)

                            * DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等.

                            * DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据).

                            * DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别.

                            * DQL(Data Query Language):数据查询语言,用来查询记录(数据).

                * DDL

                  * 操作数据库

                    * 编码问题:

                                 * 指的不是MySQL数据库的编码问题.

                                 * MySQL默认的连接方式,命令行方式.(只能支持GBK编码,不支持UTF-8编码)

                    * 创建数据库:

                        * 语法:

                                   * CREATE DATABASE 数据库名称;

                                   * CREATE DATABASE IF NOT EXISTS 数据库名称;

                    * 切换数据库(设置当前使用的是哪个数据库)

                                 * 语法:USE 数据库名称;

                    * 查看数据库:

                                 * 语法:SHOW DATABASES;

                    * 删除数据库:

                                 * 语法:DROP DATABASE 数据库名称;

                  * 操作数据库表

                    * 数据类型:

                        * 数值数据类型:

                                   * INT - 整数

                                   * FLOAT - 单精度浮点数

                                   * DOUBLE - 双精度浮点数

                                   * DECIMAL - 精确浮点数

                        * 日期时间类型:

                                   * YEAR - 年

                                   * DATE - YYYY-MM-DD

                                   * TIME - HH:MM:SS

                                   * DATETIME - YYYY-MM-DD HH:MM:SS

                                   * TIMESTAMP - 时间戳

                        * 字符串类型

                                   * CHAR - 固定长度字符串 - M个字节,1<=M<=255

                                   * VARCHAR - 可变长度字符串 - M+1个字节,1<=M<=255

                                   * 枚举 - 几选一的问题

                    * 创建数据库表

                        * 语法:

                                   CREATE TABLE 表名 (

                                      字段名    数据类型 PRIMARY KEY,

                                      字段名    数据类型 NOT NULL,

                                      字段名    数据类型 UNIQUE,

                                      字段名    数据类型 DEFAULT 默认值

                                   );

                    * 查看数据库表

                                 * 语法:

                                   * DESC 表名; - 查看表结构

                    * 修改数据库表

                                 * 语法参考WORD文档.

                                 * ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件][FIRST|AFTER 已存在字段名];

                    * 删除数据库表

                                 * 语法:DROP TABLE 表名;

                    * 表的行和列含义:

                                 * 行 - 记录 - 一条信息.

                                 * 列 - 字段 - 一个信息所有记录.

                * 完整性约束:(与创建表有关)

                  * 主键:

                    * 主键字段的数据唯一,并且不允许为空.

                    * 分类:

                        * 单字段主键:

                                   * 创建表语句中使用:字段名    数据类型 PRIMARY KEY

                                   * 创建表语句执行完毕后:PRIMARY KEY(字段名1);

                        * 多字段主键:PRIMARY KEY(字段名1, 字段名2,... 字段名n);

                  * 主键自增约束:

                                   * 语法:字段名    数据类型 PRIMARY KEY AUTO_INCREMENT

                  * 外键约束:

                                   * 语法:FOREIGN KEY(字段名) REFERENCES 主表名(主键字段);

                  * 非空约束:

                                   * 语法:NOT NULL

                  * 唯一约束:

                              * 语法:UNIQUE

                              * 唯一与主键区别:

                                 * 主键:非空+唯一

                                 * 唯一:允许为空

                  * 默认约束:

                                 * 语法:DEFAULT 默认值.

                * DQL:

                  * 基本查询语句:

                              * 默认查询所有记录:SELECT * FROM 表名;

                              * 指定查询字段记录:SELECT 字段名1,字段名2,... FROM 表名;

                  * 条件查询语句:

                    * 语法:SELECT * FROM 表名 WHERE 条件子句;

                    * 条件子句使用的运算符:

                                                    * 不等:!=或<>

                                                    * BETWEEN 值(下限) AND 值(上限) age>=25&&age<=95

                                                    * IS NULL:

                                                      * ""和null的区别:

                                                        * "" - 存在,但值为空.

                                                        * null - 不存在.

                                                    * AND和OR:

                                                      * AND - &&

                                                      * OR - ||

                                                    * NOT

                                                    * IN(SET)

                  * 模糊查询语句:

                              * 语法:SELECT * FROM 表名 WHERE 字段名 LIKE 模糊条件;

                              * 模糊条件:

                                 * '%' - 一个'%'占一个或多个字符.

                                 * '_' - 一个'_'占一个字符.

                  * 字段控制语句:

                    * 去掉重复记录:DISTINCT关键字

                                 * 用在SELECT 与去重的字段名之间.

                                 * 如果查询字段为多个时,去重的字段必须是第一个字段.

                                 * 如果查询字段为多个时,去重的字段是查询的所有字段值.

                    * 起别名:

                                 * SELECT 字段名1+字段名2 [AS] 别名 FROM 表名;

                    * 查询两个字段之和的记录.

                  * 排序查询语句:

                              * 语法:SELECT * FROM 表名 ORDER BY s_age [ASC/DESC];

                              * 关键字:

                                 * ASC - 正序排序(默认)

                                 * DESC - 倒序排序

                  * 聚合函数查询:

                              * SUM() - 求和

                              * COUNT() - 记录总数

                              * MAX() - 最大值

                              * MIN() - 最小值

                              * AVG() - 平均数

                  * 分组查询查询:

                              * 语法:SELECT * FROM 表名 GROUP BY 字段名;

                              * 注意:多与聚合函数配合使用.

                  * 聚合函数作为条件时,使用HAVING关键字,而不是WHERE.

                  * 完整的查询SQL语句:

                                 SELECT * FROM 表名 WHERE 条件子句 GROUP BY 字段名 HAVING 聚合函数条件 ORDER BY 字段名;

                  * 连接查询语句(多表查询):

                    * 多表查询的分类:

                                 * 表A和表B一起查询的结果.

                                 * 表A从逻辑上当作两个张表查询.

                    * 连接查询语句分类:

                                 * 内连接 - 表A从逻辑上当作两个张表查询.

                                 * 外连接 - 表A和表B一起查询的结果.

                                   * 左外连接

                                     SELECT 字段名1,字段名2,... FROM 表名1 LEFT JOIN 表名2 ON 表名1.字段名=表名2.字段名;

                                   * 右外连接

                * DML:

                  * 新增:

                    * 语法:

                                 * 插入所有字段值:INSERT INTO 表名 VALUES(所有字段值,字段值之间用",");

                                 * 插入指定字段值:INSERT INTO 表名(指定字段名) VALUES(所有字段值,字段值之间用",");

                  * 修改(更新):

                                 * 语法:UPDATE 表名 SET 字段名=新值 WHERE 条件子句;

                  * 删除

                    * 语法:DELETE FROM 表名 WHERE 条件子句;

                    * 实际情况:

                                 * 物理删除:DELETE语句

                                 * 逻辑删除:增加字段"状态",0为正常,1为新增,2为修改,3为删除.

                * DCL:

                  * 用户管理

                  * 数据库的备份与还原

                    * 备份:

                                 * 注意:不需要登录MySQL数据库.

                                 * mysqldump –u用户名 –p密码 数据库名>生成脚本路径;

                    * 还原:

                                 * 注意:可以登录MySQL数据库,也可以不登陆.

                                 * 不登陆:mysql –u用户名 –p密码 数据库名<恢复脚本路径;

                  

  • 相关阅读:
    3.1 history跳转页面产生跨域问题
    2021年6月7日 团队冲刺第二阶段04
    2021年6月6日 团队冲刺第二阶段03
    2021年6月5日 团队冲刺第二阶段02
    2021年6月4日 团队冲刺第二阶段01
    2021年6月3日
    2021年6月2日
    2021年6月1日
    2021年5月31日
    2021年5月30日
  • 原文地址:https://www.cnblogs.com/istarry/p/4358022.html
Copyright © 2011-2022 走看看