美文网首页
MySQL(一)

MySQL(一)

作者: 遇明不散 | 来源:发表于2019-01-12 14:59 被阅读3次

    什么是数据库

    数据库是一个存储数据的仓库

    • DB(Database) 数据库
    • DBMS(Database Management System) 数据库管理系统
    • DBS(Database System) 数s据库系统
    • 数据库管理软件 MySQL、Oracle、......
      DBS = DB + DBS + 数据库应用 + 用户

    哪些公司在使用数据库

    金融机构、购物网站、游戏网站、论坛网站 .... ...

    提供数据库服务的软件

    • 软件分类

      • MySQL、SQL_Server、SQL_Server、DB2、Mariadb、Mariadb
    • 在生产环境中,如何选择使用哪个数据库软件

      • 是否开源
        • 开源软件
          • MySQL、Mariadb、MongoDB
        • 商业软件
          • Oracle、SQL_Server、DB2
      • 是否跨平台
        • 不跨平台
          • SQL_Server
        • 跨平台
          • MySQL、Oracle、DB2、Mariadb、 MongoDB
      • 公司类型
        • 商业软件
          • 金融机构、政府部门
        • 开源软件
          • 购物网站、游戏网站、论坛网站

    MySQL的特点

    1、关系型数据库

    关系型数据库特点

    • 数据是以行和列的形式存储的
    • 这一系列的行和列成为表
    • 表中的每一行叫一条记录
    • 表中的每一列叫一个字段
    • 表和表之间的逻辑关联叫关系
    • 关系型数据库的核心内容是关系,即二维表

    2、跨平台

    • 可以在Unix、Linux、Windows上运行MySQL服务

    3、支持多种编程语言

    • Python、Java、PHP

    MySQL命令

    • 没条命令必须以;结尾
    • SQL命令不区分大小写
    • 使用\c终止命令的执行

    MySQL库的管理

    库的基本操作

    • 查看已有的库 show databases;
    • 创建库(指定字符集) create database 库名 default charset=utf8;
    • 查看创建库的语句 show create database 库名;
    • 查看当前所在库 select database();
    • 切换库 use 库名;
    • 查看库中已有的表 show tabels;
    • 删除库 drop database 库名;

    库的命名规则

    • 可以使用数字、字母、_,但不能是纯数字
    • 库名区分字母大小写
    • 库名具有唯一性
    • 不能使用特殊字符和mysql关键字

    注意

    • 所有的数据都是以文件的形式存储在数据库目录下
    • 数据库目录: /var/lib/mysql

    客户端把数据存储到数据库服务器上的过程

    • 1、连接到数据库服务器:mysql -u root -p
    • 2、选择库:use 库名;
    • 3、创建/修改表
    • 4、断开与数据库的连接

    MySQL数据类型

    数值类型

    • 有符号signed
    • 无符号unsigned

    整型

    • int 大整型 4个字节
      取值范围:0~2^32-1~-2^32+1
    • tinyint 微小整型 1个字节
      • 有符号(signed默认): -128~127
      • 无符号(unsigned):0~255
    • small 小整型 2个字节
      取值范围:0~65535
    • bigint 极大整型 8个字节
      取值范围:0~2^64-1

    浮点型

    • float 4个字节,最多显示7个有效位
      • 用法:字段名 float(m,n), m表示总位数,n表示小数位数
      • 注意
        1、浮点型插入整数时会自动补全小数位数
        2、小数位如果多于指定的位数,会对下一位四舍五入
    • double 8个字节,最多显示15个有效位
      • 用法: 字段名 double(m,n)
    • decimal M+2个字节,最多显示28个有效位
      • 用法:decimal(M,D)

    字符类型

    • char 定长
      • 宽度取值范围:0~255
      • 不给定宽度默认宽度为1
    • varchar 变长
      • 取值范围:1~65535
      • 注意
        • varchar没有默认宽度,必须给定一个宽度
        • charvarchar使用时都给定宽度,但不能超过各自的范围
    • charvarchar的特点
      • char 浪费存储空间,性能高
      • varchar 节省存储空间,性能低
    • 字符类的宽度和数值类型的宽度的区别
      • 数值类型的宽度为显示宽度,只用于select查询时使用,和占用存储空间大小无关,可用zerofill查看效果
      • 字符类型的宽度超过则无法存储

    枚举类型

    • 定义:字段值只能在列举的范围内选择
    • enum 单选,最多有65535个选项
      字段名 enum(值1,值2,...)
      sex enum('M','F')
    • set 多选,最多有64个选项
      字段名 set(值1,值2,...)
      likes set("C++","Python","Java")

    日期时间类型

    • year: 年 YYYY
    • date: 日期 YYYYMMDD
    • time: 时间 HHMMSS
    • datetime: 日期时间 YYYYMMDDHHMMSS 默认值返回NULL
    • timestamp: 日期时间 YYYYMMDDHHMMSS 默认值返回系统当前时间

    MySQL表的管理

    表的基本操作

    • 创建表:
      create table 表名(字段名 数据类型,字段名 数据类型,...);
    • 查看创建表的语句(字符集):
      show create table 表名;
    • 查看表结构:
      desc 表名;
    • 删除表:
      drop table 表名;

    表记录的管理

    • 在表中插入记录:
      insert into 表名 values(值1),(值2),...;
    • 查看表记录:
      select * from 表名;
      select 字段名1,字段名2,... from 表名;

    更改默认字符集

    • 通过更改MySQL的配置文件

      • 1、获取root权限
        sudo -i
      • 2、修改mysql配置文件
        vi /etc/mysql/mysql.conf.d/mysqld.cnf
        [mysqld]
        character_set_server = utf8
      • 3、重启MySQL服务
        sudo /etc/init.d/mysql restart
    • 创建表的时候设置字符集

      create table t1(id int,name char(10)) default charaset=utf8

    表字段操作

    语法:alter table 表名 执行动作;

    • 添加字段

      • 添加字段
        alter table 表名 add 字段名 数据类型;
      • 添加到开始
        alter table 表名 add 字段名 数据类型 first;
      • 添加到指定位置
        alter table 表名 add 字段名 数据类型 after 字段名;
    • 删除字段

      语法:alter table 表名 drop 字段名;
    • 修改数据类型

      语法:alter table 表名 modify 字段名 新的数据类型
    • 修改字段名

      语法:alter table 表名 change 旧名 新名 数据类型;
    • 修改表名

      语法:alter table 表名 rename 新表名;
    • 更新表记录

      语法:update 表名 set 字段名=值1,字段名=值2,... where 条件;
      注意:update语句后如果不加where子句,表中所有记录该字段的值都会更改
    • 删除表记录

      语法:delete from 表名 where 条件;
      注意:delete语句后如果不加where条件子句,将会把表中所有的记录全部删除
    • where条件语句

      作用:配合查、改、删操作
      语法:select * from 表名 where 条件;

    运算符操作

    作用:配合查、改、删操作

    • 数值比较与字符比较

      • 数值比较运算符:=、!=、>、>=、<、<=
      • 字符比较运算符:=、!=
      • 语法格式:
        • 查询:select * from 表名 where 字段名 运算符 数字/字符;
        • 修改:update 表名 set 字段名=值,... where 字段名 运算符 数字/字符;
        • 删除:delete from 表名 where 字段名 运算符 数字/字符;
    • 逻辑比较

      • 运算符
        • and 多个条件同时满足
        • or 多个条件有一个满足就可以
    • 范围内比较

      • 运算符:between andinnot in
      • 语法格式:
        • 字段名 between 值1 and 值2
        • 字段名 in(值1,值2,...)
        • 字段名 not in(值1,值2,...)
    • 匹配空、非空

      • 空:is null
      • 非空:is not null
      • null:空值,必须用is或者is not去匹配
      • "":空字符串,用=或者!=去匹配
    • 模糊比较

      • 语法格式:字段名 like 表达式
      • 表达式:
        • _:匹配单个字符
        • %:匹配0到多个字符

    相关文章

      网友评论

          本文标题:MySQL(一)

          本文链接:https://www.haomeiwen.com/subject/npknrqtx.html