(一)MySQL概述,

1.MySQL概述
    1.什么是数据库
        数据库是一个存储数据的仓库
    2.都有那些公司在用数据库
        金融机构、游戏网站、购物网站、论坛网站...
    3.提供数据库服务的软件
        1) 软件分类
        MySQL、Mariadb、SQL_Server、Oracle、DB2、MongoDB...
        2)生产环境中,如何选择使用哪个数据库
            1.是否开源
                开源软件:MySQL、Mariadb MongoDB
                商业软件:Oracle、DB2 SQL_Server  
            2.是否跨平台
            1.跨平台:
                不跨平台:SQL_Server
            3.公司的类型
                商业软件:政府部门,金融机构
                开源软件:游戏网站,购物网站,论坛网站
    4.MySQL特点
        1.关系型数据库
            1.关系型数据库的特点
                1.数据是以行和列的形式存储
                2.表中的每一行叫一条记录
                3.表中的每一列叫一个字段
                4.表和表之间的逻辑关联叫关系
            示例
            1.关系型数据库存储
      表1   学生信息表
         姓名      年龄    班级
         星矢    25    三班
           水冰月   25       六班
      表2  班级信息表
         班级   班主任
         三班           大空翼
         六班   松人
   2.非关系型数据库存储
        {"姓名":"星矢","年龄":25,"班级":"三班","班主任":"大空翼"}
        {"姓名":"水冰月","年龄":25,"班级":"六班","班主任":"松人"}
        2.跨平台
      可以在Unix Linux  windows上运行数据库服务
  3.支持多种编程语言
      python java  php  ... 
  5.数据库软件 数据库  数据仓库
    1.数据库软件
        是一种软件,可以看得见,可操作,来实现数据库逻辑功能
    2.数据库
        是一种逻辑概念,用来存放数据的仓库,通过数据库软件来实现,侧重存储
    3.数据仓库
        数据仓库主要用于数据挖掘和数据分析

  网购:
        数据库: user --> 用户名和密码
        数据仓库:哪个时间段用户登录量最多,哪个用户一年购物最多...

2.MySQL安装
    1.Ubuntu安装MySQL服务
        1.安装服务段
            sudo apt-get install mysql-server
        2.安装客户端
            sudo apt-get install mysql-client
        3.Ubuntu安装软件    
            sufo apt-get update
            sufo apt-get -f install 修复依赖关系
            sufo apt-get install 软件包
    2.windows安装MySQL服务
        1.下载MySQL安装包(windows)
          mysql-installer***5.7.***.msi
        2.双击 按照教程安装

3.启动和连接MySQL服务
    1.服务端启动
        sudo /etc/init.d/mysql start          #启动
        sudo /etc/init.d/mysql stop           #停止
        sudo /etc/init.d/mysql reststart     #重启
        sudo /etc/init.d/mysql status   #查看当前状态 
        sudo /etc/init.d/mysql reload   #重新加载配置文件
    2.客户端连接
        1.命令格式
            mysql -h主机地址 -u用户名 -p密码
            mysql -hlocalhost -uroot -p123456 
        2.本地连接可省略 -h 选项
            mysql -uroot -p123456

4.基本SQL命令
    1. SQL命令的使用规则 
        1.每条SQL命令必须以 ; 结尾
        2.SQL命令不区分字母大小写
        3.使用 \c终止当前命令的执行                                   

    2.库的管理
        1.库的基本操作
            1.查看已有的库
              show databases;
            2.创建库
              create database 库名 [character set utf8];
            3.查看创建库的语句(字符集)
              show create database 库名;
            4.查看当前所在库
              select database();
            5.切换库
              use 库名;
            6.查看库中已有表
              show tables;
            7.删除库
              drop database 库名;
        2.库的命名规则
            1.数字 字符 __ 但是不能是纯数字
            2.库名区分字母大小写
            3.不能使用特殊字符和mysql关键字
        3.表的管理
            1.表的基本操作
                 1.创建表(指定字符集)
                  create table 表名(
                                                  字段名1 数据类型,
                                                  字段名2 数据类型,
                                                  字段名3 数据类型
                                                  )character set utf8;
                 2.查看创建表的语句(字符集)
                   show create table 表名;
                 3.查看表结构
                   desc 表名;
                 4.删除表
                   drop table 表名;
                
        4.注意
            1.所有的数据都是以文件的形式存放在数据库目录
            /var/lib/mysql

        5.表记录的管理
            1.在表中插入记录
                1.insert into 表名 values(值1),(值2),(值3),...;
                2.insert into 表名(字段名1,字段名2)values(),(),...;
            2.查询表记录
                1.select * from 表名 [where 条件];
                2.select 字段名1,字段名2 from 表名 [where 条件];

5.如何更改默认字符集
    1.方法
      通过更改MySQL配置文件实现
    2.步骤
        1.获取root
                     dudo -i
        2.备份配置文件
            cd /etc/mysql/mysql.conf.d/
                      cp mysqld.cnf mysqld.cnf.bak
        3.更改mysqld.cnf配置
                       sub1 mysqld.cnf
            [mysqld]
                       character_set_server = utf8
        4.重启mysql服务
            sudo /etc/init.d/mysql restart

6.客户端把数据存储到数据库服务器上的过程
    1.先连接到数据库服务器
    2.选择库
    3.创建或者修改表
    4.断开与数据库的连接    exit; | quit; | \q ;

7.数据类型 
    1.数值类型
        1.整型(有符号 和 无符号unsigned)
            1. int 大整型(4个字节)
                0~2 ** 32 -1 (42亿多)
            2.tinyint 微小整形(1个字节)
                1.有符号(signed)
                2.无符号(unsigned) : 0~255
                    age tinyint unsigned
                3. bigint 极大整型(8个字节)
        2.浮点型
            1.float(4个字节,最多显示7个有效位)
                1.用法
                    字段名float(m,n) m:总位数,n:小数位位数
                    float(5,2) 取值范围??? -999.99 ~ 999.99
            2.decimal(最多显示28个有效为)
                1.用法
                    字段名 decimal(m,n)
                2.存储空间(整数部分和小数部分分开存储)
                    规则:将9的倍数包装成4个字节
                    余数   字节
                    1-2  1
                    3-4  2
                    5-6  3
                    7-8  4
                    decimal(19,9)
                    整数部分: 10/9=商1 4字节+1字节=5字节
                    小数部分: 9/9=商1 4字节+0字节=4字节
    2.字符类型
        1.char(定长)(1-255)
               char(宽度值)
        2.varchar(变长)(1-65535)
               varchar(宽度值)
        3.char和varchar的特点
            1.char : 浪费存储空间,性能高
            2.varchar : 节省存储空间,性能低
        4.text / longtest(4G)

    3.数值类型的宽度和字符类型的宽度区别
        1.数值类型宽度为显示宽度,只用于select查询显示,和占用存储空间大小无关,用zerofill来显示效果
                id int(3) zerofill,
        2.字符类型的宽度超过则无法存储
    
    4.枚举类型
        1.定义
            字段值只能在列举的范围内选择
        2.字段名 enum(值1,值2,...)   #单选
               字段名 set(值1,值2,...)   #多选   "值1,值2,值3..."
               插入记录的时候:"girl,Python,Study"

    5.日期时间类型

8.表字段操作
    1.语法:alter table 表名 执行动作;
    2.添加字段(add)
        alter table 表名 add 字段名 数据类型;   #添加到表末尾
        alter table 表名 add 字段名 数据类型 first;    #添加到表首位
        alter table 表名 add 字段名 数据类型   after 字段名;  #添加到指定位置
    3.删除字段(drop)
        alter table 表名 drop 字段名;
    4.修改字段数据类型(modify)
        alter table 表名 modify 字段名 新数据类型;
        alter table 表名 change 原字段名 新字段名 数据类型;

作业:
  1.MySQL中的数据类型有 _数值_  _字符_  _枚举_  _日期时间_
  2.关系型数据库的核心内容是 关系 即 二维表
  3.char 和 varchar的区别,各自的特点
  4.
    1.创建一个库 school
    2.在库中创建一个表 students来存储学生信息
       id 显示宽度为3,位数不够用0填充
         name age(要求不能输入负数) score(浮点) 性别(单选) likes(多选)
    3.查看students的表结构
    4.在students中添加一个字段height,加在age字段之后
    5.将score字段的数据类型改为decimal
    6.在student中插入3条完整记录
    7.查看所有学生的姓名和成绩
    8.查看没有及格的学生的信息

create database school;
use school;
create table students(id int,
                      name char(20),
                      age tinyint unsigned,
                      score float(5,2),
                      sex enum("boy","girl"),
                      likes set("girl","Python","Study"));
desc students;
alter table students add height int after age;
alter table students modify score decimal;
insert into students values((1,"喜洋洋",24,88,170,'boy','Study,Python'),
                            (2,"懒洋洋",22,30,180,'boy',"girl,Python"),
                            (1,"美羊羊",20,98,150,"girl","Python,girl"));
select name,score from students;
select * from students where score > 60;


 

猜你喜欢

转载自blog.csdn.net/zh__quan/article/details/81091682