tsx81429 发表于 2025-1-11 16:39:09

SQL条记

1.DDL

数据定义语言重要是进行定义或改变表的结构、数据类型、表之间的链接等操纵
库操纵
SHOW DATABASES; -- 查看所有数据库

SHOW CREATE DATABASE database_name; -- 查看创建数据库的语句

CREATE DATABASE database_name -- (如果数据库不存在)创建数据库
; -- (指定字符集)

DROP DATABASE database_name; -- (如果数据库存在)删除数据库

USE database_name; -- 选择数据库
表操纵
SHOW TABLES; -- 查看数据库中的所有表

SHOW CREATE TABLE table_name; -- 查看创建表的语句

CREATE TABLE table_name; -- 创建表
(
        字段名   字段类型[字段约束]           [注释],
column1 datatype ,
column2 datatype
);

ALTER TABLE table_name CHANGE create_date create_time DATETIME; -- 修改create_date名字为create_time,类型为DATETIME类型

ALTER TABLE table_name ADD update_time DATE AFTER create_time; -- 添加一个update_time,类型为DATE类型,AFTER表示在谁之后

ALTER TABLE table_name DROP update_time; -- 删除表中的update_time字段

DROP TABLE table_name; -- 删除表

CREATE INDEX index_name -- 创建 [唯一] 索引 index_name
ON table_name (column_name1 , column_name2)
扩展
-- 视图一般只是服务于查询,不建议基于视图更新表中数据
-- 简化程序中SQL的编写,对外不直接暴露表的操作,提高表的安全性
CREATE VIEW 视图名-- 对查询到的数据创建视图
AS
查询语句

DROP VIEW emp_dept_loc_view -- 删除视图

-- 提高数据的查询效率
-- 索引会占用存储空间,同时会带来更新操作的复杂度
show index from 表名 -- 查看索引

drop index 索引名 on 表名; -- 删除索引

CREATE TABLE 新表
AS
SELECT *|column1, column2, column3, ... FROM 旧表-- 创建新表并从旧表中复制数据

TRUNCATE TABLE d_data_flow; -- 清空表

INSERT INTO table2 -- 向已存在表table2中插入表table1的数据
(column_name(s))
SELECT column_name(s)
FROM table1;
数据类型
数值
类型巨细用途TINYINT1 Bytes小整数值SMALLINT2 Bytes大整数值MEDIUMINT3 Bytes大整数值INT或INTEGER4 Bytes大整数值BIGINT8 Bytes极大整数值FLOAT4 Bytes单精度浮点数值DOUBLE8 Bytes双精度浮点数值DECIMAL对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2小数值 日期和时间
类型巨细格式用途DATE3 BytesYYYY-MM-DD日期值TIME3 BytesHH:MM:SS时间值或连续时间YEAR1 BytesYYYY年份值DATETIME8 BytesYYYY-MM-DD hh:mm:ss日期和时间值TIMESTAMP4 BytesYYYY-MM-DD hh:mm:ss日期和时间值,时间戳 字符串
类型巨细用途CHAR0-255 bytes定长字符串VARCHAR0-65535 bytes变长字符串TINYTEXT0-255 bytes短文本字符串TEXT0-65 535 bytes长文本数据MEDIUMTEXT0-16 777 215 bytes中等长度文本数据LONGTEXT0-4 294 967 295 bytes极大文本数据BLOB0-65 535 bytes二进制形式的长文本数据 其他数据类型
类型用途ENUM罗列类型,用于存储单一值,可以选择一个预定义的聚集SET聚集类型,用于存储多个值,可以选择多个预定义的聚集 字段约束
关键字作用PRIMARY KEY主键,必须唯一且不能为空,一般:AUTO_INCREMENT 自增,默认从1开始,步长1FOREIGN KEY外键,表之间建立关系时,外键值要与关系表中的主键值有对应关系NOT NULL非空,不允许为nullUNIQUE唯一,可以为nullDEFAULT默认值CHECK检查,比方check(salary>0) 2.DML

数据操纵语言,重要是对数据进行增加、删除、修改操纵
INSERT INTO table_name (column1, column2, column3, ...) -- 向table_name表中插入字段
VALUES (value1, value2, value3, ...);

DELETE FROM table_name -- 删除表中数据
WHERE condition; -- condition条件

UPDATE table_name
SET column1 = value1, column2 = value2, ... -- 修改表中数据
WHERE condition;

TRUNCATE table_name; -- 清空表中数据,truncate语句清空表中数据的效率要比delete语句高,但是一旦清空数据不可恢复
3.DQL
页: [1]
查看完整版本: SQL条记