乐趣区

关于mysql:MySQL数据库DDLDML详解

一、MySQL 数据库数据类型

<1> MySQL 数据库中反对多种数据类型

  • 数值型
  • 字符型
  • 日期型

<2> 罕用的数据类型

  • 整型

    • int:整型,存储整数
    • int(M): M 示意预期值,与存储大小和数值的范畴无关

      • id int                    1
      • id int(3) zerofill 001
      • zerofill 零填充 会在左侧补 0
    • tinyint         1        -128~127
    • smallint       2        32767/65535
    • int               4        21 亿
    • bigint           8        兆
    • mediumint    3        八百多万 / 一千六百多万
  • 浮点型

    • float[(M,D)]: 浮点型,存储小数

      • salary float(6,2): 示意最多 6 位,小数占 2 位,最大存储数值为:9999.99
    • double: 浮点型,小数
  • 字符型

    • char(M): 固定长度的字符串类型          name char(5)      ‘1     ‘
    • varchar(M): 可变长度的字符串类型 (举荐)   name varchar(5) ‘1’
    • text: 大的字符串类型,4G 字符串
    • blob:字节类型
  • 日期

    • date: 日期类型,年月日 YYYY-MM-DD 日期格局
    • time: 工夫类型,时分秒 HH:mm:ss 工夫格局
    • year: 年份,年               YYYY 格局的年份值
    • timestamp: 年月日 时分秒,工夫戳 1970 年 1 月 1 日 0 时 0 分 0 秒 – 2037 年的某一个时刻   YYYYMMDDhhmmss
    • datetime: 年月日 时分秒  YY-MM-DD hh:mm:ss
  • 留神:抉择适合的数据类型,是数据库优化的一部分,short it better 准则

二、MySQL 数据库中的数据的应用

如何操作:编程语言

<1> SQL 概述

  • 结构化查询语言,能够用于查问和批改关系数据库的语言
  • SQL 语言,是数据库的外围语言,被 ISO 驳回为数据库语言国际标准,简直所有的数据库都反对 SQL

<2> 组成

  • 数据定义语言 (Data Definition Language, DDL): 用于治理和定义数据对象,包含数据库,数据表等

    • create: 创立数据库和表
    • drop: 删除表对象
    • alter: 批改表构造
  • 数据操作语言 (Data Manipulation Language, DML): 用于操作数据库对象中所蕴含的数据

    • insert: 增加数据
    • delete: 删除数据
    • update: 批改数据
  • 数据查询语言 (Data Query Language, DQL): 用于查询数据库对象中所蕴含的数据

    • select: 查问数据
  • 事务管制语言 (Transaction Control Language, TCL): 包含提交事务、事务回滚

    • commit: 提交事务
    • rollback: 事务回滚
    • savepoint: 事务节点
  • 数据管制语言 (Data Control Language, DCL): 用来治理数据库,包含管理权限以及数据更改

    • grant: 受权
    • revoke: 发出权限

1. 数据定义语言 (DDL)

数据库的操作

<1> 创立数据库
  • 语法格局: creat database [if not exists] 数据库名称 [character set [=] 编码名称 ];     // ‘[]’ 示意可有可无

    • 例如:
    • create database ruochen;
    • create database if not exists ruochen; // 漠视谬误,显示正告
<2> 查看数据库
  • 语法格局

    • show databases; // 查看所有的数据库
    • show create database 数据库名称;// 查看某一个曾经创立的数据库
    • show warnings; // 查看正告
    • create database db character set gbk; // 指定创立的数据库的字符集
<3> 批改数据库
  • 语法格局:alter database [if not exists] 数据库名称 [character set 新的编码名称]

    • 例如:
    • alter database db character set = utf8;
<4> 删除数据库
  • 语法格局:drop database 数据库名称;

    • 例如:
    • drop database ruochen; // 删除数据库
数据表的操作

<1> 创立数据表
  • 应用一个数据库:use 数据库名称
  • select database(); // 查看以后正在应用的数据库
  • 创立数据表语法:

    • create table 表名 (

           字段名  字段类型  束缚,
           字段名  字段类型  束缚,
           ……
    )

    • 例如:创立用户表

      • ceeate table user(

           uid int,
           username varchar(32),
           password varchar(32),
           birthday date,
           sex enum(‘ 男 ’, ‘ 女 ’)

    )
    
<2> 查问数据表
  • show tables; // 显示以后数据库中所有的数据表
  • show columns from 表名; // 查问某张表表构造
  • desc 表名; // 查问某张表的表构造
<3> 批改数据表
  • 批改表名

    • 形式一:alter table 表名 rename [as|to] 新表名

      • 例如:alter table user rename us;
    • 形式二:rename table 旧表名 to 新表名 [, 旧表名 to 新表名, ….];

      • 例如:rename table user to us;
  • 增加列

    • 语法格局:

      • alter table 表名 add [column] 列名 列定义 [first|after 列名];
    • 例如:

      • alter table user add sal double after password; // 在指定的列前面增加新的列
      • alter table user add phone varcher(32); // 默认在列的最初增加新的列
      • alter table user add hobby varchar(32) first; // 在列的最后面增加新的列
  • 批改列定义

    • 语法格局:

      • alter table 表名 modify 列名 列定义 [first|after 列名];
    • 例如:

      • alter table user modify sex varchar(32) first;
  • 批改列名

    • 语法格局:

      • alter table 表名 change 列的列名 新的列名 新的列定义 [first|after 列名];
    • 例如:

      • alter table user change hobby address varchar(20) after sal;
  • 删除列

    • 语法格局:

      • alter table 表名 drop [column] 列名;
    • 例如:

      • alter table user drop phone;
<4> 删除数据表
  • 语法格局:

    • drop table 表名;
  • 例如:

    • drop table user;

2. 数据操作语言 (DML)


<1> 插入操作

  • 语法格局:

    • insert [into] 表名 [(列名 1, 列名 2,….)] values|value (数值 1 | 表达式, 数值 2 | 表达式,….);
  • 例如:

    • insert into teacher (id, name) values (‘1’, ‘xian zheng ta yi ge yi’);
    • insert into teacher value(2, ‘
    • wangjianlin’, ‘xian zheng ta yi ge yi’); // 如果后面不指定字段,默认采纳所有字段,依照列的程序增加

<2> 删除操作

  • 语法格局:

    • delete from 表名 where 条件;
  • 例如:

    • delete from teacher where id=1; // 指定条件删除记录
    • delete from teacher; // 不带条件删除,删除所有记录
  • 裁减:truncate table 表名; // 清空表,会清空表中所有数据

    • 例如
    • truncate table teacher;
  • 面试题:

    • delete 删除与 truncate 有什么区别?

      • 删除形式

        • delete:一条一条的删除,不清空 auto_increment 记录数
        • truncate:间接将表中的数据进行清空,auto_increment 自增将被重置,从新开始

<3> 批改操作

  • 语法格局:

    • update 表名 set 列名 1 = 数值, 列名 2 = 数值,…. where 条件;
    • 例如:

      • update teacher set name=’xiaosan’,note=’ming nian zai zhao yi ge’ where id=1; // 带条件批改,批改指定记录
      • update teacher set name=’xiaosi’; // 不带条件,批改表中所有数据
退出移动版