【快捷入门笔记】mysql基本操作大全-SQL表

一、 创建表

约束:

1.NOT NULL:这意味着这些字段必须有值。

2.DEFAULT '其他':如果没有指定breed字段,它将默认为'其他'。

3.CHECK (age >= 0):这确保我们不会意外输入负年龄

double、float、decimal的区别:

4.DECIMAL(10,2)5位。小数点后两位

4.1float:浮点型(7个有效位,最后四舍五入)

4.2double:双精度实型(15个有效位,最后四舍五入)

4.3decimal:数字型,常用于银行帐目计算。(28个有效位,最后四舍五入)

SQL 复制代码
例子:
CREATE TABLE IF NOT EXISTS 猫 (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
breed VARCHAR(50) DEFAULT '其他',
age INT CHECK (age >= 0),,
price DECIMAL(10, 2) NOT NULL
);

1.时间

1.1 data :年月日yyyy-MM-dd

1.2 datatime :年月日时分秒 yyyy-MM-dd HH:mm:ss

1.3TIMESTAMP:时间戳类型 包含年月日时分秒: yyyy-MM-dd HH:mm:ss 如果不给这个字段赋值或者赋值NULL 使用当前系统时间

SQL 复制代码
例子:
create table student(
id int,
name VARCHAR 32,
age int,
score double(4,1),
birthday date,
insert_time TIMESTAMP
);

根据现有的表方创建一个新表方方,CREATE TABLE AS 根据SELECT语句的结果创建新表

SQL 复制代码
CREATE TABLE 方方 AS
SELECT * FROM 方 
WHERE age < 1;

二、 显示表

列出表

SQL 复制代码
SHOW TABLES;

从数据库fang_fang列出表

SQL 复制代码
SHOW TABLES FROM fang_fang;

使用信息模式从数据库fang_fang列出表的详细信息

SQL 复制代码
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'fang_fang';

三、 重命名表

RENAME TABLE 旧的表名 TO 新的表名

SQL 复制代码
RENAME TABLE old_fang TO new_fang;

ALTER TABLE旧的表名RENAME TO 新的表名

SQL 复制代码
ALTER TABLE  old_fang 
RENAME TO new_fang;

一次性重命名多个表

SQL 复制代码
RENAME TABLE
表1 TO 表2,
表3 TO 表4,
表5 TO 表6;

四、 截断表

TRUNCATE TABLE快速删除表中的所有行。这就像在表上按下了"重置"按钮,保持了表的结构,但删除了其中的所有数据。

SQL 复制代码
TRUNCATE TABLE table_name;

TRUNCATE:(无法回滚)

1、不需要记录每行删除的情况。

2、重置自动递增列。

3、快速从表中删除所有数据。

4、保持表的结构不变。立即重新使用表。

DELETE:

1、删除特定的行(使用WHERE子句)。

2、能够回滚操作。

3、知道删除了多少行。

DROP

1、删除整个表及其结构。

2、完全不再需要该表。从头开始重新创建表。

五、 复制表

创建一个具有原始表相同结构的新表,但不复制数据

SQL 复制代码
CREATE TABLE new_table LIKE original_table;

它复制表结构、索引和所有数据。

SQL 复制代码
CREATE TABLE new_table LIKE original_table;
INSERT INTO new_table SELECT * FROM original_table;

六、 临时表

TEMPORARY TABLE

我们正在创建一个名为party_guests的临时表。

它有三个列:

guest_id(自动递增: AUTO_INCREMENT)、guest_name、rsvp_status。

guest_id被设置为主键,以确保每个宾客都有一个唯一的标识符。

SQL 复制代码
CREATE TEMPORARY TABLE party_guests (
guest_id INT AUTO_INCREMENT PRIMARY KEY,
guest_name VARCHAR(50),
rsvp_status VARCHAR(20)
);

插入临时表,本地临时表(#)只对当前会话可见,而全局临时表(##)对所有会话都可见

SQL 复制代码
INSERT INTO #party_guests (guest_name, rsvp_status)
VALUES
('Alice', '已确认'),
('Bob', '可能'),
('Charlie', '未回应');

六、 修改表

添加列ALTER TABLE XX ADDXX VARCHAR(100);

SQL 复制代码
ALTER TABLE students
ADD email VARCHAR(100);

删除列ALTER TABLE XX DROP COLUMN XX;

SQL 复制代码
ALTER TABLE students
DROP COLUMN age;

1、ADD COLUMN 向表中添加一个新列

2、DROP COLUMN 从表中删除一个列

3、ADD INDEX 在指定列上创建索引

4、DROP INDEX 从表中删除索引

5、ADD PRIMARY KEY 向表中添加主键约束

6、DROP PRIMARY KEY 从表中删除主键约束

7、ADD CONSTRAINT 向表中添加新约束

8、DROP CONSTRAINT 从表中删除约束

9、RENAME COLUMN 更改列名

10、MODIFY DATATYPE 更改列的数据类型

七、 删除表

1、删除确定存在的表

SQL 复制代码
DROP TABLE table_name;	

2、安全尝试删除可能存在或不存在表

SQL 复制代码
DROP TABLE IF EXISTS table_name;	

3、安全尝试删除可能存在或不存在的临时表

SQL 复制代码
DROP TEMPORARY TABLE IF EXISTS temp_table_name;

4、删除所有行 移除所有数据但保留表结构时

SQL 复制代码
DELETE FROM table_name;	

5、删除特定行

SQL 复制代码
	DELETE FROM table_name WHERE condition;	

6、带有多个条件的删除

SQL 复制代码
DELETE FROM table_name WHERE condition1 AND/OR condition2;	

7、清空表 快速从表中移除所有数据时

SQL 复制代码
TRUNCATE TABLE table_name;	

八、 约束表

1、NOT NULL 确保列不能有NULL值

2、UNIQUE 确保列中的所有值都是不同的

3、PRIMARY KEY NOT NULL和UNIQUE的组合

4、FOREIGN KEY 确保表之间有引用完整性

5、CHECK 确保列中的所有值满足特定条件

6、DEFAULT 为列设置默认值

7、INDEX 用于快速创建和检索数据库数据

SQL 复制代码
CREATE TABLE owners (
owner_id INT NOT NULL PRIMARY KEY,
name VARCHAR(100) NOT NULL
);

ALTER TABLE pets
ADD COLUMN owner_id INT,
ADD CONSTRAINT fk_owner
FOREIGN KEY (owner_id) REFERENCES owners(owner_id);


不能添加一个拥有不存在于所有者表中的owner_id的宠物
相关推荐
A林玖18 分钟前
【学习笔记】服务器上使用 nbconvert 将 Jupyter Notebook 转换为 PDF
服务器·笔记·学习
100分题库小程序1 小时前
湖北建筑安全员C1证考试难度怎么样
经验分享·笔记
逆水寻舟1 小时前
尚硅谷2019版Java网络编程笔记
java·网络·笔记
铃煦2 小时前
《算法笔记》3.4小节——入门模拟->日期处理
笔记·算法
chase。7 小时前
【学习笔记】MeshCat: 基于three.js的远程可控3D可视化工具
javascript·笔记·学习
woshilys9 小时前
mysql 删除表等待
数据库·mysql
limnade10 小时前
MySQL中动态生成SQL语句去掉所有字段的空格
sql·mysql
老李不敲代码10 小时前
榕壹云外卖跑腿系统:基于Spring Boot+MySQL+UniApp的智慧生活服务平台
spring boot·mysql·微信小程序·uni-app·软件需求
尖枫50810 小时前
学习笔记:金融经济学 第1讲
笔记·学习·金融
文or野10 小时前
MySQL 在 CentOS 7 环境安装完整步骤
数据库·mysql·adb