笔记: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密码 数据库名<恢复脚本路径;

              

posted @ 2015-03-22 21:14  DoIStarry  阅读(126)  评论(0编辑  收藏  举报