更多文章点击浏览 blog.goudan.ltd

Java面试刷题微信搜索小程序 Java面试题库Pro


一、SQL的分类

DDL(Date Definiition Lanhuage):数据定义语言,用来定义数据库对象(数据库、表、字段等)。

create table 表名;

DML(Data Manipulation Language):数据操作语言,用来对数据库中的数据进行增删改查。

alter table 表名 add 字段名 类型(长度);

DQL(Data Query Language):数据查询语言,用来查询数据库中表里面的数据。

select * from 表名;

DCL(Data Control Language):数据控住语言,用来创建用户,控制用户对数据库的访问权限。

grant all privileges on . to 'XXX'@'%' identified by 'XXX' with grant option;


二、DDL在数据库上的操作

查询所有数据库: 

SHOW DATABASES;

查询当前数据库: 

SHOW DATABASE();

创建数据库: 

CREATE DATABASE [IF NOT EXISTS] 库名 [DEFAULT CHARSET utf8mb4];

删除数据库:

DROP DATABASE [IF NOT EXISTS] 库名;

使用数据库:

USE 库名;


三、DDL在表上操作

查询当前数据库中的所有表:

SHOW TABLES;

查询表结构(不会展示字段注释): 

DESC 表名;

查询表的创建语句:

SHOW CREATE TABLE 表名;

创建表: 

create table 表名(
    字段1 字段1类型 [comment 字段1注释],
    字段2 字段2类型 [comment 字段2注释],
    字段3 字段3类型 [comment 字段3注释],
    ......
    字段n 字段n类型 [comment 字段n注释]
)[comment 表注释];

添加字段:

ALTER TABLE 表名 ADD 字段名 类型(长度);

修改字段的数据类型:

ALTER TABLE 表名 MODIFY 字段名 字段类型(长度);

修改字段的名称和类型:

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 字段类型(长度);

删除字段:

ALTER TABLE 表名 DROP 字段名;

修改表名称:

ALTER TABLE 表名 RENAME TO 新表名;

删除表:

DROP TABLE [IF EXISTS] 表名;TRUNCATE TABLE 表名;

DROP:物理删除表结构加数据。     

TRUNCATE:物理删除表结构加数据后 重新创建表。


四、DDL语句中的数据类型

1、数值类型 

类型

大小

描述

TINYINT

1 bytes

小整数值

SMALLINT

2 bytes

大整数值

MEDIUMINT

3 bytes

大整数值

INT 或者 INTEGER

4 bytes

大整数值

BIGINT

8 bytes

极大整数值

FLOAT

4 bytes

单精度浮点整数

DOUBLE

8 bytes

双精度浮点整数

DECIMAL

小数[精确定点数,依赖于M(精度)和D(标度)]

2、字符串类型

类型

大小

描述

CHAR

0 - 255 bytes

定长字符串

VARCHAR

0 - 65536 bytes

变长字符串

TINYBLOG

0 - 255 bytes

不超过255个字符的二进制数据

TINYTEXT

0 - 255 bytes

短文本字符串

BLOG

0 - 65536 bytes

二进制形式的长文本数据

TEXT

0 - 65536 bytes

长文本数据

MEDIUMBLOG

0 - 16777215 bytes

二进制形式的中等长度文本数据

MEDIUMTEXT

0 - 16777215 bytes

中等长度文本数据

LONGBLOG

0 - 4294967295 bytes

二进制形式的极大文本数据

LONGTEXT

0 - 4294967295 bytes

极大文本数据

char(10): 即使存储一个字符,剩下的使用空格占位,效率高。
     varchar(10): 存储一个字符,实际占用一个字符,效率低一点。 

3、日期时间类型

类型

大小

范围

格式

描述

DATE

3

1000-01-01 至 9999-12-31

YYYY-MM-DD

日期值

TIME

3

-838:59:59 至 838:59:59

HH:MM:SS

时间值或持续时间

YEAR

1

1901 至 2155

YYYY

年份值

DATETIME

8

1000-01-01 00:00:00 至 9999-12-31 23:59:59

YYYY-MM-DD HH:MM:SS

混合日期和时间值

TIMESTAMP

4

1970-01-01 00:00:01 至 2038-01-19 03:14:07

YYYY-MM-DD HH:MM:SS

混合日期和时间值,时间戳