『深度编码』MySQL:数据库命令(一)

发布于:2025-07-04 ⋅ 阅读:(19) ⋅ 点赞:(0)

数据库基本概念

数据库管理系统(database management system/DBMS):数据库系统中对数据进行管理的软件系统。

数据库(database/DB):按照特定的数据结构来组织、存储和管理数据的仓库。

表(table):某种特定类型数据的结构化清单。

列(column)或字段:表由一个或多个列组成,每个列都有对应的数据。

行(row)或记录:表中的数据是按行存储的,每行存储一条数据。

主键(primary key):一列(或一组列),它的值能够唯一区分表中的每一行。

SQL(structured query language):结构化查询语言,专门用于与数据库通信的语言。

数据定义语言(DDL)

显示数据库:

show database;

创建数据库:

create database [if not exists] 数据库名;

 删除数据库:

drop database [if exists] 数据库名;

 显示数据库中的表:

show tables;

 查看表的基本结构:

desc 表名;

 查看数据库的创建语句:

show create database 数据库名;

 查看表的创建语句:

show create table 表名;

创建表:

create table [if not exists] 表名
(    
    字段1 字段类型 [列级约束条件],
    字段2 字段类型 [列级约束条件],
    ...
    [表级约束条件]
);

示例:
create table users
(
    id int,
    name varchar(20)
);

添加字段:

alter tabel 表名;
add column 新列名 数据类型 [约束条件] [first | after 列名];

示例:在 id 字段后添加 is_active 字段(类型为 TINYINT)
alter table users
add column is_active tinyint(1) default 1 after id;

修改字段类型:

alter table 表名;
modify column 列名 数据类型 [约束条件]

示例:将 users 表的 age 字段从 INT 改为 TINYINT
alter table users
modify column age tinyint;

修改字段位置:

alter table 表名;
modify column 列名 数据类型 first | after 列名;

示例:将 email 字段调整到 name 之后
alter table users
modify column email varchar(255) after name;

修改字段名:

alter table 表名;
change column 旧列名 新列名 数据类型;

示例:将 phone 列改为 mobile
alter table users
change column phone mobile varchar(20);

删除字段:

alter table 表名
drop column 列名;

重命名表:

alter table 旧表名
rename to 新表名;

删除表:

drop table [if exists] 表1[, 表2, 表3...];

示例:
删除user表
drop table if exists users;
删除多个表
drop table if exists users, orders, products;

数据查询语言(DQL)

 查询当前连接的数据库:

select database();

查询当前数据库版本:

select version();

查询当前的日期:

select now();

查询当前的用户:

select user();

查询指定字段:

select 字段1,字段2,... from 表名;

查询全部字段:

select * from 表名;

查询全部字段并使用条件:

select * from 表名 where 条件;

从某表中选取某字段不等于10的所有记录:

select * from 表名 where 字段 <> 10;
select * from 表名 where 字段 != 10;

从某表中选取某字段值在 1500 到 3000 之间(包含 1500 和 3000 )的所有记录 :

select * from 表名 where 字段 between 1500 and 3000;

从某表中选取某字段值为空的所有记录:

select * from 表名 where 字段 is null;

 从某表中选取某字段值不为空的所有记录:

select * from 表名 where 字段 is not null;

从某表中选取某字段值包括10或30的所有记录:

select * from 表名 where 字段 in (10, 30);

从某表中选取某字段值中包含字母m的所有记录:

select * from 表名 where 字段 like "%m%";

 从某表中选取某字段值中第二个字母是m的所有记录:

select * from 表名 where 字段 like "%_m%";

从某表中选取字段1为a且字段2大于10的所有记录:

select * from 表名 where 字段1 = 'a' and 字段2 > 10;

数据操作语言(DML)

插入数据:

insert into 表名
(
    字段1,
    字段2,
    ...
)
values
(
    字段1的值,
    字段2的值,
    ...
);

示例:
insert into users
(
    username,
    email,
    age
)
values
(
    'john_doe',
    'john@example.com',
    30
);

更新数据:

update 表名
set 字段1 = 字段1的值,
    字段2 = 字段2的值,
    ...
where 限制条件;

示例:
update products
set 
    price = price * 1.1,
    last_updated = now()
where category = 'electronics';

删除数据

delete from 表名
where 限制条件;

示例:
delete from orders
where status = 'cancelled';