mysql 入门简介及常规用法

                                        mysql入门

数据库简介

  • 用途:用于存储生活中的一切数据,如:身份、住宿、票务、网站、…
  • 分类:
    • 关系型数据库:MySQL、oracle、SQL server、…
    • 非关系型数据库:Redis、MongoDB、…
  • 概念:数据库服务器、数据库、数据表、一条数据(记录)、一列数据(字段)
  • SQL:Structured Query Language,结构化查询语言
  • 命令:
    • 数据定义语言(DDL):创建、删除、修改等
    • 数据操作语言(DML):增、删、改
    • 数据查询语言(DQL):查
    • 数据控制语言(DCL):授权、取消授权
    • 数据事务语言(DTL):开启事务、提交事务、操作回滚

数据定义语言(DDL)

  • 查看库:show databases;,会显示连接的数据库服务器上所有的数据库
  • 创建库:create database test;,创建数据库test
  • 删除库:drop database test;,删除数据库test
  • 选择库:use test;,选择数据库test
    • 查看当前数据库:
      • show tables;
      • select dabases();
  • 查看表:show tables;,查看当前数据库下的所有数据表
  • 创建表:create table user(username varchar(20), password char(32));
  • 查看表结构:desc user;
  • 查看创建方式:
    • 查看库:show create database test;
    • 查看表:show create table user;
  • 删除表:drop table user;
  • 指定字符集及存储引擎:
    • 创建时指定:create table user()engine=InnoDB default charset=utf8;
    • 修改配置文件:/etc/mysql/mysql.conf.d/mysqld.cnf

      [mysqld]

      -字符集
      character-set-server=utf8
      -存储引擎
      default-storage-engine=INNODB
      必须重启服务后才会生效
  • 修改表结构alter
    • 修改字段类型:alter table user modify username varchar(32);
    • 修改字段名称:alter table user change password pwd char(50);
    • 添加新的字段:
      • 默认在末尾添加:alter table user add age int(3);
      • 指定字段后添加:alter table user add email varchar(30) after pwd;
      • 在开头进行添加:alter table user add id int(11) first;
      • after、first也可用于modify、change操作
    • 删除指定字段:alter table user drop age;
    • 修改表的名字:alter table user rename new_user;

数据类型

  • 整型
    符号 说明
    tinyint 1个字节
    smallint 2个字节
    mediumint 3个字节
    int 4个字节
    bigint 8个字节
    需要指定位数,如:int(11)
  • 浮点数
    符号 说明
    float(m, d) 单精度浮点型,4个字节,m表示总位数,d表示小数位数
    double(m, d) 双精度浮点型,8个字节,用法同上
    decimal(m, d) 以字符串的形式存储浮点数,多用于金融相关应用
  • 字符串
    符号 说明
    char 定长字符串,0~255个字节
    varchar 变长字符串,0~65535个字节
    需要指定长度, 如:varchar(20)
  • 时间日期
    符号 说明
    date 日期,格式:2019-04-01
    time 时间,格式:14:36:52
    datetime 日期时间,格式:2019-04-01 14:36:52
    timestamp 时间戳
    year 年,只占用一个字节,年份1901-2155
  • 复合类型
    符号 说明
    set 集合类型,格式:set(s1, s2, …, s63),最多63,0表示错误
    enum 枚举类型,格式:enum(e1, e2, …, e65535),最多65535,0表示错误
  • 字段修饰
    符号 说明
    unsigned 无符号数
    zerofill 高位填充0,防止出现负数
    default 默认值
    not null 不能为空
    auto_increment 自动增加1,用于整型字段,经常集合主键一起使用
  • 字符集
    • 查看所有支持的字符集:show character set;
  • 存储引擎
    • 查看所有的存储引擎:show engines;
    • 常用存储引擎:InnoDB、MyISAM
      存储引擎 说明
      InnoDB .frm表结构信息,.ibd表数据信息
      MyISAM .frm表结构信息,.MYD表数据信息,.MYI表索引信息
    • 说明:
      • 配置选项datadir决定了数据库存放的位置
      • 一个数据库对应存储目录中的一个文件夹
  • 索引管理
    • 说明:简介理解就是一本书的目录,提高读取效率,但也不是越多越好。
    • 分类:
      索引 说明
      普通索引 index,最基本的索引
      唯一索引 unique,修饰的字段不能有重复的值
      主键索引 primary key,是一个特殊的唯一索引,一张表最多只能有一个字段
      全文索引 fulltext,对全局数据添加索引
    • 示例:
      -添加索引
      alter table new_user add index(email);
      alter table new_user add unique(username);
      alter table new_user add primary key(id);
      -删除索引
      alter table new_user drop index email;
    • 创建表示指定索引:
      create table user(
      id int auto_increment,
      name varchar(20),
      primary key(id),
      unique(name)
      )engine=innodb default charset=utf8;

数据操作语言(DML)

  • 说明:在绝大多数的数据库操作中,执行的都是增删改查操作(CURD)。
  • 准备:准备一张用于数据测试的表star
    create table star(
    id int auto_increment,
    name varchar(20) not null,
    money float not null,
    province varchar(20) default null,
    age tinyint unsigned not null,
    sex tinyint not null,
    primary key(id)
    )engine=innodb default charset=utf8;
  • 插入数据
    • 方式一:不指定字段,添加数据时需要指定所有的字段,如:
      insert into star values(1, ‘xxx’, 5000000, ‘河南’, 18, 1);
      可以一次性插入多条数据,每条数据都需要使用一个()包括起来,之间使用逗号分割

    • 方式二:指定字段,只需要传递指定字段的值,通常使用这种方式
      insert into star(name, money, age, province, sex)
      values(‘yyy’, 8000000, 34, ‘上海’, 2);

      insert into star(name, money, age, province, sex)
      values (‘AAA’, 6000000, 32, ’ 河北’, 2),
      (‘HHH’, 3000000, 23, ‘江苏’, 1);
      插入数据的字段值与前面指定的顺序要一致,与数据表中的字段顺序无关。

    • 说明:插入数据时,可以不要传递的字段

      • 自增的字段
      • 有默认值的
      • 可以为空的
  • 修改数据
    • 示例:update star set age=24, money=7000000 where id=1;
    • 警告:修改操作一定不要忘记添加条件,否则后果自负。
  • 删除数据
    • 示例:delete from star where id=4;
    • 警告:删除操作一定不要忘记添加条件,否则后果自负。
    • 使用:基本不会做物理删除,大多使用逻辑删除(设置某些字段的值)。
  • 查询数据:select * from star;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值