Mysql浅析

Mysql浅析

SQL:

  • Structured Query Language(结构化查询语言)

SQL分为三个部分:

  • DDL(Data Definition Language)
    • 数据定义语言,用来维护存储数据的结构(数据库、数据表),代表指令: create、drop、alter 等。
  • DML(Data Manipulation Language)
    • 数据操作语言,用来对数据进行操作(数据表中的内容),代表指令: insert、delete、update 等。
    • 其中DML内部又单独进行了一个分类DQL(Date Query Language),数据查询语言。如: select
  • DCL(Data Control Language)
    • 数据控制语言,主要负责权限管理(用户)。代表指令:grant、revoke

SQL基本操作(crud)

库操作

  • 新增数据库:
    • 基本语法:create database 数据库名称 [库选项];
    • 库选项:用来约束数据库,氛围两个选项:
      • charset/character set,具体字符集(数据库的编码格式),例:GBK、UTF8...
      • 校对集设定:collate具体校对集。
    • 例如:create database my_database charset utf8;
    • 注意点:
      • 如果想用保留字或者关键字当做库名,需要使用反引号(Tab上面那个键)。
      • 如果想用中文当库名,需要加一行set name gbk;
      • 每个数据库下都有一个opt文件:保留了库选项。
  • 查看数据库:
    • 查看所有数据库:show databases;

    • 查看指定部分的数据库:模糊查询

      • show database like 'pattern';
      • pattern:% 表示匹配多个字符, _ 表示匹配单个字符 。
      • 例如:查看以information_开头的数据库名:
      • show databases like 'information\_%';(_需要转义,用 )
    • 查看数据库创建语句

      • show create database 数据库名;
  • 更新数据库:
    • 基本语法:alter database 数据库名 charset/character [=] 字符集;
    • 数据库名字不可修改,数据库的修改仅限库选项:字符集、校对集(依赖于字符集)
      • 修改字符集后,校对集自动修改
  • 删除数据库:
    • drop database 数据库名;

表操作

  • 新增数据表:
    • 基本语法:
      create table [if not exists] 表名 ( 字段名 数据类型, ... 字段名 数据类型 )[表选项];
    • if not exists:可选项,如果表不存在就创建,否则不执行创建代码。
    • 表选项:
      • 字符集:charset / character set 具体字符集。
      • 校对集:collate 具体校对集。
      • 存储引擎:engine 具体存储引擎(常见为innodb和myisam)。
    • 注意:任何一个表都需要制定数据库。
      • 方案一:create table 数据库名.表名...
      • 方案二:use 数据库名,再创建表。
  • 查看数据表(跟查看数据库类似):
    • show tables;
    • show tables like 'pattern';
    • show create table 表名 g或者G或者;
      • g:;(分号)。
      • G:将查到的表旋转90度查看。
    • desc 表名; == describe 表名; == show columns from 表名;
  • 修改数据表(分两类修改):
    • 修改表本身:表名和表选项
      • 表名:rename table 旧表名 to 新表名;
      • 表选项:alter table 表名 表选项 [=] 值;
      • 例:
    • 修改字段(新增、修改、重命名、删除)
      • 新增字段:
        • 基本语法:alter table 表名 add [column] 字段名 数据类型 [列属性][位置];
        • 位置:first:第一个位置、after 字段名:在指定字段之后,默认是在最后一个字段之后。
        • 例:
      • 修改字段(修改列属性或者数据类型):
        • 基本语法:alter table 表名 modify 字段名 数据类型 [列属性][位置];
        • 例:alter table my_class modify name varchar(30) first;
      • 重命名字段:
        • 基本语法:alter table 表名 change 旧字段名 新字段名 数据类型 [列属性][位置];
        • 例:alter table my_class change name new_name varchar(30) after id;
      • 删除字段:
        • 基本语法:alter table 表名 drop 字段名;
  • 删除数据表:
    • 基本语法:drop table 表名1,表名2,...表名n;
      • 可以一次性删除多张表。

数据操作

  • 新增数据:
    • 给全字段插入数据,不需要指定字段列表:要求插入的字段与表中字段顺序一致。非数值数据,建议使用单引号。
      • 基本语法:insert into 表名 values (值列表)[,(值列表)...];
      • 例: insert into my_student values ('zhangsan', 'male', 22, 160, 1);
    • 给部分字段插入数据。
      • 基本语法:insert into 表名 (字段列表) values (值列表)[,(值列表)...];
      • 例:insert into my_student (name, gender, age, height, c_id) values ('zhangsan', 'male', 22, 160, 1);
  • 查看数据:
    • 基本语法:select */字段列表 from 表名 [where条件];
    • 例:select * from my_student;
  • 更新数据:
    • 基本语法:update 表名 set 字段名=字段值 [where条件];
    • 例:update my_student set gender='female' where id=1;
  • 删除数据:
    • 基本语法:delete from 表名 [where条件];
    • 例:delete from my_student where id=1;

原文地址:https://www.cnblogs.com/ronaldo-coder/p/ronaldo.html