MySQL數據庫DDL、DML詳解

1、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:字節類型
  • 日期ui

    • 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 原則

2、MySQL數據庫中的數據的使用

如何操做:編程語言

<1> SQL概述

  • 結構化查詢語言,能夠用於查詢和修改關係數據庫的語言
  • SQL語言,是數據庫的核心語言,被ISO採納爲數據庫語言國際標準,幾乎全部的數據庫都支持SQL

<2> 組成

  • 數據定義語言(Data Definition Language, DDL): 用於管理和定義數據對象,包括數據庫,數據表等編碼

    • create: 建立數據庫和表
    • drop: 刪除表對象
    • alter: 修改表結構
  • 數據操做語言(Data Manipulation Language, DML): 用於操做數據庫對象中所包含的數據code

    • 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'; // 不帶條件,修改表中全部數據
相關文章
相關標籤/搜索