mysql01

本文详细介绍MySQL数据库的基础知识,包括数据库的定义、应用领域、软件选择原则,以及在不同操作系统下的安装方法。涵盖基本SQL命令的使用,如库的管理、表的创建与管理,数据类型详解,以及客户端数据存储流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

day01

一.MySQL 概述
1. 什么是数据库:
    存储数据的仓库
2. 哪些公司在用数据库
    金融机构  游戏网站  购物网站  论坛网站..
3. 数据库服务的软件
    软件分类: 
     MySQL   Oracle  SQL_Server  MongoDB  DB2  Maraidb
    生产环境中如何选择使用哪个数据库软件
    1. 是否开源:  
       开源软件: MySQL MongoDB  Maraidb
       商业软件: Oracle  DB2  SQL_Server
    2.是否跨平台:
       不跨平台: SQL_Server
       跨平台:....
    3.公司的类型
       商业软件:政府部门  金融机构
       开源软件:游戏网站  购物网站  论坛网站

4. MySQL特点
   1.关系型数据库(存储于硬盘)
     1.数据以行和列(表)的形式去存储的
     2.表中行: 一条记录   表中列: 一个字段
     3.表和表之间的逻辑关联叫关系
      2.关系/非关系数据库示例:
        1.关系型数据库存储 MySQ
          表1:学生信息表
           姓名   年龄   班级
           张     24    三班
           王     23    六班
          表2:班级信息表
           班级   班主任
            三班    刘
            六班    离       
        2.非关系型数据存储 MongoDB 
         {"姓名":"张","年龄":23,"班级":"三班","班主任":"刘"}

   2.跨平台
     在Windows  Linux  Unix运行数据库服务
     
   3.支持多种编程语言
     python  java  php...
5.数据库软件,数据库,数据仓库区别
   1.数据库软件
     看得见,可操作,实现数据库的逻辑功能
   2.数据库
     逻辑概念,存储数据,侧重于存储
   3.数据仓库
     数据量特别庞大,主要用于数据分析,数据挖掘
     
     数据库:user表
     数据仓库: 哪个时间段用户登录量最多     

二 MySQL安装
   1.Ubuntu安装MySQL服务
     1.安装服务端
       sudo apt_get install mysql_server
     2.安装客户端
       sudo apt_get install mysql_client
     3.Ubuntu安装软件
       1. sudo apt_get install updata
       2. sudo apt_get -f install 
          作用:修复依赖关系
   2.Windows 安装MySQL 服务
     1.下载安装包(windows)
       mysql_install***5.7***.msi
     2.双击安装
   3.Mac 安装MySQL
     1.下载安装包
     2.设置环境变量
      1. vi.bash_profile
      2.添加如下内容保存退出
        export PATH=${PATH}:/user/local/mysql/bin
      3.终端: soucer .bash_profile
      4.验证:mysql_uroot -p密码

三 启动和链接MySQL服务
   1.服务端启动
     1.查看服务状态
      sudo /etc/init.d/mysql status
      sudo /etc/init.d/mysql start
      sudo /etc/init.d/mysql stop
      sudo /etc/init.d/mysql restart
      sudo /etc/init.d/mysql reload

   2.客户端链接
    1.命令格式:
      mysql -h主机地址 -u用户名 -p密码
      mysql -hlocalhost -uroot -p123456
    
    本地登录可省略-h选项
    mysql -uroot -p
四 基本SQL命令    
   1.SQL命令的使用规则
     1.每条命令必须以 ;结尾
     2.SQL命令不区分字符大写小写
     3.使用\c终止当前命令的执行
   2.库的管理
     1.库的基本操作
       1.查看所有的库
        show databases;
       2.创建库(指定字符集)
        create database 库名 character set utf8;
       3.查看创建库的语句(查看字符集)
        show create database 库名;
       (查看MySQL默认给这个库添加了什么属性)
       4.查看当前所在库
        select database();
       5.切换库
        use 库名;
       6.查看库中的表
        show tables;
       7.删除库
        drop database 库名;
     2.库的命名规则
       1.数字 字母 下划线 ,但是不能是纯数字
       2.库名区分字母大小写
       3.不能使用特殊字符 和 MySQL 关键字

     3.练习
       1.创建库testdb 指定字符集为utf8
       create database testdb character set utf8;
       2.进入testdb
       use testdb;
       3.查看当前所在库
       select database();
       4.创建testdb2库,指定字符集latin1
       create database testdb2 character set latin1;
       5.进入库testdb2
       use testdb2;
       6.查看库testdb2的字符集是什么
       show create database testdb2;
  
   3.表的管理
      1.表的基本操作
         1.创建表(要先选择库)
          create table 表名(
          字段名 数据类型
          字段名 数据类型
          字段名 数据类型
          ),
         例:
          create table 表名(
          name char(10),
          age int(11), 
          score int(11) 
                     );
         2.查看创建表的语句(字符集,存储引擎)
          show create table 表名;
         3.查看表结构:
           desc 表名;
         4.删除表:
           drop table 表名;
   4.注意:
      1.所有数据都是以文件形式存储在数据库目录下 /var/lib/mysql
      2.MySQL是基于硬盘读写
   5.表记录管理
     1.插入(insert)
       1. insert into 表名 values (值1),(值2),(值3);
          例:
          insert into t1 values(1,"Lucy"),(2,"Tom"),(3,"Mike");

       2.insert into 表名(字段名1,字段名2) values(值1),(值2),
          例:
          insert into t1(name) values("Bob"),("Jim");

     2.查询(select)
       1. select * from 表名 where 条件;
          例:
           select * from 表名 where id = 1;
       2. select 字段1,字段2 from 表名 where 条件;         


五 如何更改库的默认字符集(对之前的库不会有影响)
   1. 方法:更改配置文件 (位置:/etc/mysql/mysql.conf.d)
   2. 步骤
      1. 获取root用户权限
         sudo -i
      2.cd /etc/mysql/mysql.conf.d 
      3.cp mysqld.cnf mysqld.cnf.bak
      4.subl mysqld.cnf
      5.在[mysqld]下: (tmpdir = /tmp 下添加)
         character_set_server = utf8
      6./etc/init.d/mysql restart
   3.Mac本
     vi /etc/my.cnf
     写入:
       [mysqld]
       character_set_server = utf8

六 客户端把数据存储到数据库服务器上的过程
   1. 连接到数据库服务器 mysql -u用户名 -p
   2. 选择库 use
   3. 创建/修改表  updata 表名
   4. 断开与数据库的连接: exit; / quit; / \q;

七 数据类型
  1. 数值类型
     1. 整型
      (常用)1. int 大整型(4个字节) 取值范围: 0~(2**32 - 1) 42亿多
      (常用)2.tinyint 微小整型(1个字节)
                1. 有符号(signed默认):-128~127 
                2. 无符号: (unsigned默认):0~255
                     age tinyint unsigned,
              3.smallint 小整型(2个字节)
              4.bigint 极大整型(8个字节)
     2. 浮点型
(常用)1.float(4个字节,最多显示7个有效位)
         字段名 float(m,n) m->总位数  n->小数位
         float(5,2) 取值范围  -999.99 ~ 999.99
         # m的值最大为7
       2. double (8个字节)
          字段名 double(m,n) m->总位数  n->小数位
(常用)3. decimal(m,n)( 最多显示28个有效位)
          1.存储空间(整数,小数部分分开存储)
            规则:将9的倍数包装成4个字节
             余数      字节
                 0             0
                        1-2            1
                        3-4            2 
                        5-6            3
                        7-8            4
            例: decimal(19,9)
               整数部分: 10/9=1余1  4个字节+1个字节 = 5个字节
               小数部分: 9/9 = 0    4个字节 + 0个字节 = 4个字节
               总共: 9个字节'

    3.练习:
     1.新建库 studb2 ,并在库中创建表stuinfo,要求:
       id :  大整型
       name :  字符类型 ,宽度为15
       age:  微小整型,不能为负数
       height : 浮点型,小数位为2位(float)
       money: 浮点型,小数位为4位(decimal)

     create database studb2;
     create table stuinfo(
     id int,
     name char(15),
     age tinyint unsigned,
     height float(7,2),
     money decimal(14,4)
     );

     2.查看表结构
     desc stuinfo;
     3.查看表字符集和存储引擎
     show create table stuinfo;
     4.在表中插入1条完整记录
     insert into stuinfo values(1,"K",19,1.8,900);
     5.查询所有记录
     select * from stuinfo;
     6.在表中id,name,money三个字段插入2条记录
     insert into stuinfo(id,name,money) values(2,"L",800);
     7.查询所有学生的编号,姓名和money
     select id,name,money from stuinfo;

  2. 字符类型
    1. char :  定长
      char(宽度) 宽度取值范围:1~125
    2. varchar: 变长
      varchar(宽度) 宽度取值范围:1~65535
    3. text / longtext (4G) /  blob / longblob --->超大文件

    4. char和varchar的特点
       1. char: 浪费存储空间,性能高
       2. varchar : 节省存储空间,性能低

    5.字符类型和宽度和数值类型宽度的区别
      1. 数值类型宽度为显示宽度,只用于select查询时显示,和占用存储无关,可用zerofill
         查看效果
      2. 字符类型的宽度超过后无法存储

  3. 枚举类型
    1.单选enum
      sex enum(值1,值2,...)
    2.多选set
      like set(值1,值2,...)
     # 插入记录时"study,python,mysql"
  4. 日期时间类型
      

作业:
 1.  MySQL中的数据类型有:___,___,___,___
     数值型 字符型  枚举型 日期时间型
 2. 关系型数据库的核心内容是 关系 即 二维表

 3. 简述客户端把数据存储到数据库服务上的过程
 1. 连接数据库
 2. 选择数据库
 3. 创建/修改数据库
 4. 断开数据库连接

 4.char 和 varchar的区别
 5. 操作:
    1.创建一个学校的库
     create database school;
    2.在库school中创建表students,字符集utf8
      字段如下:
      id int 显示宽度为3,位数不够用0填充
      姓名,年龄(不能为负数),性别(单选),成绩(浮点),爱好(多选)
    create table students(
    id int(3)
    name verchar(20)
    age tinyint(unsigned
    sex enum("boy","girl")
    score float(7,2)
    hobby set("run","read","write","sing")
    );

    3.查看表结构
    desc students;
    4.在表中任意插入3条完整记录,并查询显示
    insert into students values(1,"Jike",12,"boy",99.99,"sing"),(2,"Mike",14,"boy",15,"read"),(3,"Lucy",18,"girl",89.7,"write")
    5.在表中id,姓名,成绩这三个字段插入3条记录,并显示查询显示
    insert into students(id,姓名,成绩) values(3,"Sara",89.9)
    6.查看所有学生的姓名和成绩
    select name,score from students;
    7.查看成绩及格的学生的姓名和成绩
    select name,score from students where score > 60;
    8.更改配置文件,把默认字符集改成utf8
    
    9.重启MySQL服务,并建库验证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值