跳转至

1. 数据库概述

数据库概述

存储数据的仓库

数据库服务软件

软件分类: MySQL Oracle SQl_Server MongoDB DB2 Maraidb

生产环境中如何使用哪个数据库软件

  1. 是否开源 开源不等于免费

    1. 开源软件: MySQL Mariadb MongoDB
    2. 商业软件: Oracle DB2 SQl_server
  2. 是否跨平台

    1. 不跨平台的 SQL_server
    2. 跨平台的: ...
  3. 公司的类型

    1. 商业软件: 政府部门 金融机构
    2. 开源软件: 游戏公司 购物网站 论坛网站。。。

MySQL特点

  1. 关系型数据库
    1. 数据以行和列(表)的形式去存储的
    2. 行: 记录 列: 字段
    3. 表和表之间的逻辑关联叫关系
  2. 跨平台
    在Window Linux Unix 运行数据库

  3. 支持多种编程语言 python java php

数据库软件/ 数据库/ 数据仓库

  1. 数据库软件 看得见 可操作 实现操作数据库的逻辑功能

  2. 数据库 逻辑概念, 存储数据侧重于存储

  3. 数据仓库 数据量特别庞大, 主要用于数据分析、数据挖掘

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 update
      2. sudo apt-get -f install # 修复依赖关系
  2. window 安装MySQL服务

    1. 下载安装包(window) mysql-installer 5.7.msi
    2. 双击安装
  3. Mac 安装MySQL

    1. 下载安装包
    2. 设置一下环境变量
      1. vi .base_profile
      2. 添加如下内容保存退出 export PATH=${PATH}:/usr/local/mysql/bin
      3. 在终端中执行 source .bash_profile
      4. 验证: mysql -urroot -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. 库的基本操作 show databases;
    2. 创建库(指定字符集) create database 库名 character set utf-8;

    3. 查看创建库的语句 shwo create database 库名;

    4. 查看当前所在库 select database();

    5. 切换库 use 库名;

    6. 查看库中的表 show tables;

    7. 删除库 drop database 库名;

    8. 库的命名规则
    9. 数字、字母、下划线,但是不能是纯数字
    10. 库的名字区分字母大小写
    11. 不能使用特殊字符 和 MySQL关键字
  3. 表的管理

    1. 表的基本操作
      1. 创建表(别忘了use库) create table 表名( name char(10), age int, score int, );
      2. 查看创建表的语句(字符集,存储引擎) show create table 表名;
      3. 查看表结构 desc 表名
      4. 删除表 drop table 表名; sudo -i # 获得超级权限
  4. 注意

    1. 所有的数据都是以文件形式存储在数据库目录下 /var/lib/mysql
  5. 表记录管理

    1. 插入(insert): insert into 表名 values(值1),(值2)....
      (值为一条记录)
      insert into 表名(字段1, 字段2) values(值1),(值2)...

    2. 查询(select)

      1. select * from 表名 where 条件
      2. select 字段1, 字段2 from 表名 where 条件;

练习及答案

  1. 查看所有库
    show databases;
  2. 创建新表 studb
    create database studb character set utf8;
  3. 在库studb中创建表tab1, 指定字符集为utf8
    字段有: id name age score
    use studb
    create table tab1(id int, name char(20), age int, score int);
  4. 查看tab1的表结构
    show create table tab1;
    desc tab1;
  5. 在tab1中任意插入2条记录
    insert into tab1 values(1, 'lucy', 18, 80),(2, 'tom', 21, 59);
  6. 查询所有表记录
    select * from tab1;
  7. 在tab1中name, score俩个字段插入两条记录
    insert into tab1(name, score) values('bill', 40),('bob', 50);
  8. 查看表tab1中所有人的姓名和年龄
    select name, age from tab1;
  9. 查看表tab1中成绩及格的学生信息(高于60分)
    select * from tab1 where score > 60;

更改库的默认字符集

  1. 方法: 更改配置文件
  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] 下:
      character_set_server = utf8
    6. /etc/init.d/mysql restart