SQL教程

数据类型

  • 整数类型
数据类型 字节数 说明
tinyint 1
smallint 2
mediumint 3
int 4
bigint 8
  • 浮点数与定点数
数据类型 字节数 说明
float 4
double 8
decimal(M,D) M+2
  • 字符串类型
数据类型 字节数 说明
char(M) M
varchar(M) N+1
  • 文本类型
数据类型 字节数 说明
tinytext 0-255
text 0-65535
mediumtext 0-16777215
longtext 0-4294967295
  • 日期与时间类型
数据类型 字节数 说明
year 1 YYYY
date 4 YYYY-MM-DD
time 3 HH:MM:SS
datetime 8 YYYY-MM-DD HH:MM:SS
timestamp 4 YYYY-MM-DD HH:MM:SS
  • 二进制类型
数据类型 字节数 说明
tinyblob 0-255
blob 0-65535
mediumblob 0-16777215
longblob 0-4294967295

数据表约束

  • primary key:主键约束
  • not null:非空约束
  • default [默认值]:默认值约束
  • unique:唯一性约束
  • foreign key:外键约束
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # 添加外键约束
    -- 在创建数据表时:
    CONSTRAINT [fkey-name] FOREIGN KEY ([name]) REFERENCES [ftable-name] ([fname])
    -- 将创建数据表创号后:
    ALTER TABLE [table] ADD CONSTRAINT [fkey-name] FOREIGN KEY ([name]) REFERENCES [ftalbe-name] ([fname]);

    # 删除外键约束
    alter table [table-name] drop foreign key [fkey-name];


基本操作

数据库

  • 创建
    1
    create database [database];
  • 删除
    1
    drop database [database];
  • 修改
    1
    2
    # 更改数据库的默认字符集
    alter database [old] character set [new];
  • 切换
    1
    use [database];
  • 查看信息
    1
    2
    3
    4
    5
    # 显示所有数据库
    show databases;

    # 查看当前数据库
    select database();

数据表

  • 创建
    1
    2
    3
    4
    create table [talbe-name](
    [name] [datatype] [constraint],
    [name] [datatype] [constraint]
    );
  • 删除
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 删除表格
    drop table [talbe-name];

    # 删除表中数据,保留表结构、索引、触发器等
    delete from student;

    #
    DELETE FROM 表名 [WHERE 条件表达式];

    # 删除表中数据,不保留
    truncate table [table-name]

  • 修改
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 修改表名
    alter table [old] rename to [new];

    # 修改字段名和数学
    alter table [table-name] change [old] [new] [datatype] after [other];

    # 修改字段的数据类型
    alter table [table-name] modify [name] [datatype];

  • 插入
    1
    2
    3
    4
    5
    6
    7
    # 指定字段插入数据
    INSERT INTO 表名(字段名1,字段名2,...) VALUES (值 1,值 2,...);

    # 同时插入多条
    INSERT INTO 表名 [(字段名1,字段名2,...)]VALUES (值 1,值 2,…),(值 1,值 2,…),...;


  • 查看信息
    1
    2
    3
    4
    5
    # 查看所有表格
    show tables;

    # 查看表格信息
    desc [table-name];

函数

聚合函数

  • count()
  • max()
  • min()
  • sum()
  • avg()

时间函数

字符串函数

  • concat()
  • instr()
  • length()

数学函数

  • abs()
  • floor()
  • ceiling()

查询

Q&A

CSV文件导入

1
2
3
4
5
6
7
8
9
10
11
12
13
# 临时修改数据库模式,运行数据列数小于表的列数时导入,同时会关闭完整性约束
set sql_mode='';
# 提供服务器就行导入,注意数据必须存放在安全目录中,且路径为/
# 注意先在管理员终端中输入 net start mysql,打开服务器
load data infile "E:/MySQLData/MySQL Server 8.0/Uploads/lineitem.csv"
# 填写表名
into table [table-name]
# 设定编码方式,允许中文输入。要求csv文件为utf8编码
character set utf8
# 设置分隔符,csv中为','
fields terminated by ','
# 换行符,windows下是\r\n
lines terminated by '\r\n'
Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2023-2025 John Doe
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信