SQL从删库到跑路(一)

一、什么是SQL?

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

即定义了操作所有关系型数据库的规则。

二、SQL通用语法

  1. SQL语句可以单行或多行书写,以分号结尾
  2. 不区分大小写
  3. 注释
  • 单行注释:– 内容 或 # 内容

  • 多行注释: /* 注释 */

三、SQL分类

1. DDL

(Data Definition Language) 数据定义语言

  • 用来定义数据库对象:数据库,表,列等。关键字:Create,drop,alter等

2. DML

(Data Manipulation Language)数据操作语言

  • 用来对数据库中的表数据进行增删改。关键字:insert,delete,update等

3. DQL

(Data Query Language)数据查询语言

  • 用来查询数据库中表的数据。关键字:select,where等

4. DCL

(Data Control Language)数据控制语言

  • 用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT,REVOKE等

四、 DDL

1. 操作数据库

  • 创建数据库

    1
    create database 数据库名;
  • 查询所有数据库的名称

    1
    show databases;
  • 查询某个数据库的字符集:查询某个数据库的创建语句

    1
    show create database 数据库名称;

  • 在不存在的情况下创建数据库

    1
    create database if not exists 数据库名;
  • 按特定字符集创建数据库

    1
    create database 数据库名 charactor set gbk;

  • 将数据库字符集从gbk改为utf8格式

    1
    alter database 数据库名 character set utf8;
  • 删除数据库

    1
    drop database 数据库名;
  • 判断数据库是否存在,存在则删除,避免语法错误出现异常

    1
    drop database if exists 数据库名称;
  • 查询当前使用的数据库名称

    1
    select database();
  • 使用数据库

    1
    use 数据库名;

2. 操作表

  • 查询某个数据库中所有的表名称

    1
    show tables;
  • 查询表结构

    1
    desc 表名

  • 创建表
    1
    2
    3
    4
    5
    6
    create table 表名(
    列名1 数据类型,
    列名2 数据类型,
    。。。
    列名n 数据类型n
    );

数据类型

  1. int : 整数类型
  2. double : 小数类型
  3. date : 日期,只包含年月日,yyyy-MM-dd
  4. datetime : 日期,包含年月日时分秒
  5. timestamp : 时间戳类型 包含年月日时分秒
  • 如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值

  1. varchar:字符串

在mydb中创建student表

1
2
3
4
5
6
7
create table student(
id int,
name varchar(20),
score double(4,1),
birthday date,
insert_time timestamp
);

  • 删除表
    1
    2
    drop table 表名;
    drop table if exists 表名;

  • 修改表名

    1
    alter table 表名 rename to 新的表名;
  • 修改表的字符集

    1
    2
    3
    alter table 表名 charactor set 字符集;
    //查看表的字符集
    show create table 表名;
  • 添加一列

    1
    alter table 表名 add 列名 数据类型
  • 修改列名称 类型

    1
    2
    3
    alter table 表名 change 列名 新列名 新数据类型;

    alter table 表名 modify 列名 新数据类型;
  • 删除列

    1
    alter table 表名 drop 列名;

请我喝杯咖啡吧~

支付宝
微信