MySql学习笔记

吃可爱长大的小学妹 提交于 2019-12-05 11:58:18

MySql学习笔记

学习2019年黑马数据库视频笔记

1.数据库的基本概念

2.MySQL数据库软件
(1)安装
(2)卸载
(3)配置
3.SQL

数据库的基本概念

1、数据库(DateBase 简称:DB)
2、什么数据库
(1)用于存储和管理数据的仓库
3、数据库的特点
(1)持久化存储数据的文件。其实,数据库就是一个文件系统;
(2)可以方便的存储、管理数据;
(3)使用了统一的方式来操作数据库;
4、常见的数据库软件
(1)Oracle;
(2)MySQL;
(3)Microsoft SQL Server;
        ……

MySQL数据库软件

安装MySQL数据库
    参考视频介绍或其他CSDN文章
卸载MySQL数据库
    参考视频介绍或其他CSDN文章
启动与关闭MySQL
    MySQL服务启动(windows下)
         1.手动开启
         2.cmd下输入services。msc打开服务的窗口
         3.使用管理权限打开cmd
           (1)开启:net start mysql
           (2)关闭:net stop mysql
         3.使用管理权限打开cmd
登录与退出MySQL
    1.MySQL登录(windows下)
         (1)mysql -u root -p
         (2)远程登入服务器(假设IP为127.0.0.2)的mysql
               mysql -h 127.0.0.2 -root -p
         (3)远程登入服务器(假设IP为127.0.0.2)的mysql
               mysql --host=127.0.0.1 --user=root --password=root
    2.MySQL退出(windows下)
         (1)exit
         (2) quit
MySQL目录结构
    1.MySQL安装目录
         (1)bin:可执行的二进制文件;
         (2)data:数据目录,比如日志等;
         (3)include:C语言的头信息;
         (4)lib:mysql的库文件;
         (5)share:mysql的错误信息文件;
         (6)my.ini:配置文件;
    2.MySQL数据目录
         (1)三个概念:
                   a、数据库:文件夹;
                   b、表:文件;
                   c、数据:文件中存储的数据;

MySQL的操作
    1.SQL
         (1)什么是SQL

Structured Query Language:结构化查询语言,定义了所有关系型数据库的规则,每一种数据库操作方式存在这不一样的地点,称为“方言”

         (2)SQL通用语法
                   1)SQL 语句可以单行或多行书写,以分号结尾;
                   2)SQL 语句使用空格或者Tab增加可读性;
                   3)SQL 语句不区分大小写,关键字建议使用大写;
                   4)SQL 注释;
                      a、单行注释:-- 注释内容或者 # 注释内容(mysql特有的)
                      b、多行注释:/* 注释内容 */
         (3)SQL的分类
                   1)DDL(Data Definition Language)数据定义语句
                      a、 用来定义数据库对象:数据库、表、列等。;关键字:create、drop、alter
                   2)DML(Data manipulation Language)数据操作语句
                      a、用来对数据库中表的数据进行增删改。关键字:insert、delete、update
                   3)DQL(Data Query Language)数据查询语句
                      a、用来查询数据库中表的记录(数据)。关键字:select、where
                   4)DCL(Data Control Language)数据控制语句(了解)
                      a、 用来定义数据库的访问权限安全级别创建用户。关键字:GRANT、REVOKE

DDL(Data Definition Language)数据定义语句

操作数据库:CRUD
    1.C(Create):创建
         (1)创建一个新的数据库
               create databases 数据库名称 character set utf8;
                  默认是utf8格式,character set utf8可以省略
         (2)判断是否存在这个数据库,如果不存在创建一个新的数据库
               create databases if not exists 数据库名称 character set utf8;
                  默认是utf8格式,character set utf8可以省略
    2.R(Retrieve):查询
         (1)查询所有数据库的名称
               show databases;
         (2)查询mysql数据库的字符集(查看某个数据库的创建语句)
               show create databases mysql;
    3.U(Update):修改
         (1)修改数据库的字符集
               alter databases 数据库名称 character set 字符集名称;
    4.D(Delete):删除
         (1)删除数据库
               drop databases 数据库名称;
         (2)判断数据库是否存在,如果存在则删除数据库
               drop databases if exists 数据库名称 ;
    5.使用数据库
         (1)查询当前正在使用的数据库名称
               select databases();
         (2)使用数据库
               use 数据库名称;
操作表
    1.C(Create):创建
         (1)语法
               create table 表名(列名1 数据类型1,列名2 数据类型2, ……,列名n 数据类型n);
         (2)常见数据类型
               1)int 整数类型 age int
               2)double 小数类型score double(5,2)
                    一共有5位小数,保留其中的2位小数
               3)date 日期类型 ,只包含年月日,yyyy-MM-DD
               4)datetime 日期类型 ,包含年月日时分秒,yyyy-MM-DD HH:mm:ss
               5)timestamp 时间戳类型 ,包含年月日时分秒,yyyy-MM-DD HH:mm:ss
                    如果不给这个字段赋值或赋值为null,则默认使用当前的系统时间,自动赋值
               6)varchar 字符串类型 name varchar(20)
                    20为最大字符长度
    2.R(Retrieve):查询
         (1)查询数据库中所有表的名称
               show tables;
         (2)查询表结构
               desc 表名;
    3.U(Update):修改
         (1)修改表名alter table 表名 rename to 新的表名;
         (2)修改表的字符集alter table 表名 character set 字符集名称;
         (3)添加一例alter table 表名 add 列名 数据类型;
         (4)修改列名称、类型alter table 表名 change 列名 新列名 新数据类型;alter table 表名 modify 列名 新数据类型;
            第一种方式改变列的名称和类型,第二种方式仅改变列的类型
         (5)删除列alter table 表名 drop 列名;
    4.D(Delete):删除
         (1)删除表drop table 表名;
         (2)查询是否存在该表,如果存在删除表drop table 表名 if exists;
         (3)复制表create table 表名 like 原表名;

DML(Data manipulation Language)数据操作语句:增删改表中的数据

1.添加数据
    (1)基本语法:insert into 表名(列名1,列名2,... ,列名n)values(值1,值2,...,值n);
    (2)注意事项
         1)列名和值要一一对应;
         2)如果表名后不定义列名,则默认给所有列添加值;
         3)除了数字类型外,其他类型需要单引号(双引号)引起来;
2.删除数据
    (1)基本语法delete from 表名 [where 条件];列如 delete from stu where id=1;
    (2)注意事项
         1)如果不加条件则删除表中所有记录;等同于删除表,然后再创建一个一模一样的空表truncate table 表名;
         2)第一种方法,不推荐。原因:有多少条记录就会执行多少次删除操作;第二种方式,之后执行两次,效率比较高。
3.修改数据
    (1)基本语法updata 表名 set 列名1 = 值1 ,列名2 = 值2,....,列名n = 值n [where 条件];
    (2)注意事项
         1)如果不加条件,将会把表中所有记录全部修改。

DQL(Data Query Language)数据查询语句

1.查询表中记录
     (1)基本语法:select * from 表名;
2.语法
     (1)select
               字段列表
          from
               表名列表
          where
               条件列表
          group by
               分组字段
          having
               分组之后的条件
          order by
               排序
          limit
               分页限定
3.基础查询
     (1)多个字段的查询
          1)select 字段1,字段2 from 表名;
          2)查询所有字段select * from 表名;
     (2)去除重复(关键字:distinct
          1)select distinct 字段1 from 表名;
     (3)计算列(关键字:字段1+ifnull(字段2,0)
          1)select 字段1,字段2,字段1 + 字段2 from 表名;
               注:这样表示,如果字段1或字段2存在null则最终结果为null。一般可以使用四则运算,只会对数值型的进行计算
          2)select 字段1,字段2,字段1 + ifnull(字段2,0) from 表名;
              注:如果字段2为null则计算时替换为0
MySQL 支持的算术运算符
     (4)起别名(关键字:as
          1)select 字段1,字段2,字段1 + ifnull(字段2,0) as 别名 from 表名;
              注:计算的结果如果不做处理会按照字段1 + ifnull(字段2,0)添加一列,这样比较难看,可以使用关键字as起别名,可以使用空格代替as
     (5)条件查询(关键字:where
          1)select 字段1,字段2, from 表名 where 条件列表;
在这里插入图片描述
注释:like:模糊查询
     _:代表的是一个字符
     %:代表的是多个字符
          select * from 表名 where 列名 like %模糊条件%;
         表示查询表中带有模糊查询条件的列
          select * from 表名 where 列名 like 模糊条件_;
         表示查询表中以模糊查询条件开头且后面只有一位的列
在这里插入图片描述
     (6)排序查询 [关键字:order by、asc(ascend升序,默认)、desc(descend降序)]
          1)默认排序(升序):select * from 表名 order by 排序条件;
          2)升序排序:“select * from 表名 order by 排序条件 asc;
          3)降序排序:select * from 表名 order by 排序条件 desc;
     (7)聚合函数 [关键字:求和:sum()、平均值:avg()、统计数量:count()、最大值:max()、最小值:min()]
          1)查询列1的总和:select sum(列1) from 表名;
          2)查询列1的平均值:select avg(列1) from 表名;
          3)查询列1的个数:select count(列1) from 表名;
          4)查询列1的最大值:select max(列1) from 表名;
          5)查询列1的最小值:select min(列1) from 表名;
          注:where条件后面不能接聚合函数
     (8)子查询
          1)查询表中价格大于平均价格的所有商品:select * from product where price > (select avg(price) from product);
     (9)分组(关键字:group by
          1)根据cno字段进行分组,分组后统计商品的个数:select con,count(*) from 表名 group by cno;
          2)根据cno字段进行分组,分组后统计商品的平均价格,且平均商品价格 > 60:select con,avg(price) from 表名 group by cno having avg(price) > 60;
          注:where条件后面不能接聚合函数,出现在分组之前;having关键字可以接聚合函数的,出现在分组之后

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!