Stay hungry, stay foolish.

SQL 基础语法 - DDL

Categories: Database

数据库操作

查询

SQL
-- 查询所有数据库
show databases;

-- 查询当前数据库
select database();

创建

SQL
-- 创建数据库
create database [if not exists] 数据库名;

使用

SQL
use 数据库名;

删除

SQL
drop database [if exists] 数据库名;

注意:schemas 可以替换上述的 database

表操作

创建

SQL
create table 表名(
    字段1 字段类型 [约束] [comment 字段1注释],
    字段n 字段类型 [约束] [comment 字段n注释]
)[comment 表注释];

约束

约束作用于表中字段上的规则,用于限制存储在表中的数据。保证数据库中数据的正确性,有效性和完整性。

约束描述关键字
非空限制该字段不能为 nullnot null
唯一保证字段的所有数据是唯一的unique
主键主键是一行数据的唯一标识,非空且唯一primary key(auto_increment)
默认未指定该字段的值,则采用默认值default
外键该字段的值一定是其他表中存在的,保证数据的一致性和完整性foreign key
SQL
create table tb_user(
    id int primary key,
    username varchar(20) not null unique,
    name varchar(10) not null,
    age int,
    gender char(1) default '男'
)

数据类型

数值类型

类型大小(byte)有符号(SIGNED)范围无符号(UNSIGNED)范围描述备注
tinyint1(-128, 127)(0, 255)小整数值
smallint2(-32768, 32767)(0, 65535)大整数值
mediumint3(-8388608, 8388607)(0, 16777215)大整数值
int4(-2147483648, 2147483647)(0, 4294967295)大整数值
bigint8(-2^63, 2^63-1)(0, 2^64-1)极大整数值
float4(-3.402823466E+38, 3.402823466E+38)0 和 (1.175494351E-38, 3.402823466E+38)单精度浮点数值float(5,2):5 表示整个数字长度,2 表示小数位个数
double8更大范围更大范围双精度浮点数值double(5,2):5 表示整个数字长度,2 表示小数位个数
decimal小数值(精度更高)decimal(5,2):5 表示整个数字长度,2 表示小数位个数

例子:

SQL
age tinyint unsigned
score double(3,1)
金额 decimal

字符串类型

类型大小描述
char0-255 bytes定长字符串
varchar0-65535 bytes变长字符串
tinyblob0-255 bytes不超过 255 个字符的二进制数据
tinytext0-255 bytes短文本字符串
blob0-65535 bytes二进制形式的长文本数据
text0-65535 bytes长文本数据
mediumblob0-16777215 bytes二进制形式的中等长度文本数据
mediumtext0-16777215 bytes中等长度文本数据
longblob0-4294967295 bytes二进制形式的极大文本数据
longtext0-4294967295 bytes极大文本数据

char 与 varchar 的区别:

  • char(10): 最多只能存 10 个字符,不足 10 个字符,占用 10 个字符空间
  • varchar(10): 最多只能存 10 个字符,不足 10 个字符,按照实际长度存储

例子:

SQL
phone char(11),
username varchar(20),

时间日期类型

类型大小(byte)范围格式描述
date31000-01-01 至 9999-12-31YYYY-MM-DD日期值
time3-838:59:59 至 838:59:59HH:MM:SS时间值或持续时间
year11901 至 2155YYYY年份值
datetime81000-01-01 00:00:00 至 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
timestamp41970-01-01 00:00:01 至 2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS混合日期和时间值,时间戳

例子:

SQL
birthday date
update_time datetime
Read More

Shell常用命令详解

【2024-12-03】包含gcc、make、vim、tcpdump、netcat、gdb等常用Shell工具和命令的实用指南