目录

数据库day3

数据库——day3

一.修改表结构
1.修改表名

方法1:ALTER TABLE old_tbname RENAME new_tbname;

方法2: RENAME TABLE old_tbname TO new_tbname;

eg:

ALTER TABLE db_hero RENAME dbhero;使db_hero修改为dbhero

RENAME TABLE dbhero to db_hero;将该表恢复为之前的命名

https://i-blog.csdnimg.cn/blog_migrate/adc60149e074abb8836d13b68a56b69b.png

2.添加字段

alter table tbnaem add 字段名 xxxx

在age字段后添加hobby字段

ALTER TABLE db_hero add hobby varchar(30) not null after age;

https://i-blog.csdnimg.cn/blog_migrate/0a5248971fbbc18e5a0b15a3d85e8ec3.png

将after改为first后,将影响在第一列中

https://i-blog.csdnimg.cn/blog_migrate/6ffc7f88eb4298706edec67bdc0715cc.png

3.修改字段

将email字段修改为varchar(50),并且不可为空

ALTER TABLE db_hero MODIFY email varchar(50) not null;

4.更改字段名

ALTER TABLE 表名 CHANGE 旧列名 新列名 列类型;

eg:

ALTER TABLE db_hero change email e_mail varchar(40) not null;

5.删除字段

ALTER TABLE 表名 DROP 列名

ALTER TABLE db_hero DROP wq

https://i-blog.csdnimg.cn/blog_migrate/041130149ec1961adabff23bd8d27d91.png

6.删除主键约束

alter table 表名 drop primary key;

alter table db_hero drop primary key;

https://i-blog.csdnimg.cn/blog_migrate/0bbf382eafb1d155d9aeab5036520836.png

7.添加主键约束

alter table 表名 add primary key(列名);

8.添加唯一约束

Alter TABLE 数据表名 ADD   约束类型 约束名(字段名)

https://i-blog.csdnimg.cn/blog_migrate/22540d1f18898d3a736549d03c25e6e1.png

9.复制表结构

create table 新表名 like 源表

eg:

CREATE TABLE dbhero like db_hero;

10.删除表

drop table 表名1,表名2

eg:

DROP TABLE db_hero,dbhero;

二.DML语句

数据操纵语言(Data Manipulation Language, DML)是用于数据库操作,对数据库其中的对象和数据运行访问工作的编程语句,

数据修改的三大基础操作:插入(INSERT)、更新(UPDATE)、删除(DELETE)。

首先,创建一个“水果表”

mysql> create table fruit

-> (id int auto_increment,

-> name varchar(50),

-> quantity int,

-> primary key(id)

-> );

1.插入数据(INSERT)

1.1基本插入

INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3);

向该表插入一条数据

insert into fruit values(1,‘orange’,20);

insert into fruit(name,quantity) values(‘orange’,20);

2.插入多行数据

INSERT INTO table_name (column1, column2) VALUES (value1, value2), (value3, value4),

3.使用NULL

在允许NULL值的列中,你可以显式地插入NULL。例如:

INSERT INTO table_name (column1, column2) VALUES (NULL, value2);

4.从其他表中插入

INSERT INTO table_name1 (column1, column2) SELECT column1, column2 FROM table_name2;

https://i-blog.csdnimg.cn/blog_migrate/5e681a6d3ca0fbe2aa1e0202906c1dcc.png

5.插入数据并返回ID

对于自增主键的表,插入数据后你可能需要得到新插入行的ID。这可以通过LAST_INSERT_ID()函数实现:

INSERT INTO table_name (column1, column2) VALUES (value1, value2);

SELECT LAST_INSERT_ID();

https://i-blog.csdnimg.cn/blog_migrate/bc62504a28f152afc43a4ce4ea6af3bd.png

6.插入默认值

如果表的所有列都有默认值,可以这样插入一行默认值:

INSERT INTO table_name DEFAULT VALUES;

7.插入并加锁

在某些高并发情况下,你可能需要在插入时对表加锁以保证数据一致性:

LOCK TABLES table_name WRITE;

INSERT INTO table_name (column1, column2) VALUES (value1, value2);

UNLOCK TABLES;

2.更新数据UPDATE

在MySQL中,UPDATE语句是用来修改表中现有数据的强大工具。它的基本语法是:

UPDATE table_name

SET column1 = value1, column2 = value2, …

WHERE condition;

1.更新单个字段

https://i-blog.csdnimg.cn/blog_migrate/1ddaed9641230d832cdb298c786bdd7e.png

2.更新多个字段

UPDATE fruits

SET name = ‘Green Apple’, quantity = 30

WHERE name = ‘Apple’;

空值添加定义:

方法1: where quantity is null

方法2: where quantity <=> null、

3.使用条件表达式

UPDATE fruits

SET quantity = quantity + 10

WHERE quantity < 10;

3.删除数据:DELETTE

1.基本语法

DELETE FROM table_name WHERE condition;

WHERE condition 是用来指定哪些行应该被删除的条件。如果省略了WHERE子句,所有行都会被删除,这将清空表但不会删除表本身。

https://i-blog.csdnimg.cn/blog_migrate/1244435563aef09d5370549a2d5a4221.png

2.删除特定行

DELETE FROM fruits WHERE name = ‘Apple’;

3.使用比较运算符

删除所有数量小于20的水果

DELETE FROM fruits WHERE quantity < 20;

4.使用逻辑运算符

删除名称为‘Apple’并且数量小于10的列

DELETE FROM fruits WHERE name = ‘Apple’ AND quantity < 10;

5.删除满足IN条件的行

删除所有名称是“Apple”,“Banana”,或“Orange”的水果:

DELETE FROM fruits WHERE name IN (‘Apple’, ‘Banana’, ‘Orange’);