MySQL数据库基本操作
程序员文章站
2022-03-24 23:52:52
...
一.数据库的操作
1. 创建数据库
create database [if not exists] `数据库名` charset=字符编码(utf8mb4);
2.查看数据库
show databases;
3. 选择数据库
use `数据库的名字`;
4. 查看当前选择的数据库
select database();
5. 创建数据库
create database `数据库名`;
6. 修改数据库
-- 只能修改字符集
alter database `数据库名` charset=字符集;
7.删除数据库
drop database [if exists] `数据库的名字`;
8.数据库操作思维导图
二. 表的操作
1.表的创建
表是建立在数据库中的数据结构,是一类数据的存储集。
create table [if not exists] `表的名字`(
id int not null auto_increment primary key comment '主键',
account char(255) comment '用户名' default 'admin',
pwd text(16383) comment '密码' not null
)charset=utf8mb4;
备注:
- 字符集如果不指定, 默认继承库的字符集.
2. 查看所有的表
- 选择数据库后,才能查看表
show tables;
4. 删除表
- 删除表必须在数据库中进行删除
drop table [if exists] `表名`
5. 显示建表结构
desc `表名`;
describe `表名`;
6. 修改表
-- 修改表的名称
alter table `old_name` rename `new_name`;
-- 移动表 到指定的数据库
alter table `表名` rename to 数据库名.表名;
7.修改字段
-- 增加一个新的字段
alter table `表名` add `字段名` 数据类型 [属性];
-- 增加一个新的字段, 并放在首位
alter table `表名` add `字段名` 数据类型 [属性] first;
-- 增加一个新的字段, 并放在某一个字段之后
alter table `表名` add `字段名` 数据类型 [属性] after 指定字段;
-- 修改字段的属性
alter table `表名` modify `字段名` 数据类型 [属性];
-- 修改字段的名称
alter table `表名` change `原字段名` `新的字段名` 数据类型 [属性];
-- 修改字段的位置
alter table `表名` change `原字段名` `新的字段名` 数据类型 after `指定字段`;
-- 删除字段
alter table `表名` drop `字段名`;
8. 复制表
(1). 先在创建一个表,并在表中插入一些数据
/* 创建 abc 表*/
create table abc(
id int primary key auto_increment comment '主键',
username char(32) not null comment '账户',
password char(32) not null comment '密码'
);
/* 插入两条数据 */
insert into abc values(null, 'tom', md5(123456)), (null, 'bob',
md5(123456));
(2). 复制表,并且复制数据
- 执行
create table `复制表的名称` select * from `原表名`;
- 特点:
- 完整的复制一个表,既有原表的结构,又有原表的数据
- 表内字段的属性会丢失,主键的自增等特性不复存在,新插入数据时会有问题
- 最好不要使用这种方式复制
(3). 仅复制表结构, 不复制数据
- 执行:
create table `复制表的名称` like `原表名`;
- 特点: 复制后的表结构与原表完全相同,字段的属性与原表也完全一致。但是里面没有数据,是一张空表
- 如果需要,数据可以单独复制
insert into `复制表的名称` select * from `原表名`;
三.CURD 语句的基本使用
对表中数据的操作一般分为四类, 常记做 “CURD”:
- C: 创建(Create)
- U: 更新(Update)
- R: 读取(Retrieve)
- D: 删除(Delete)
1. INSERT 插入
INSERT INTO `表名` (`字段1`, `字段2`, ...) VALUES (`值1`, `值2`, ...);
其中的 INTO
在 MySQL 数据库中可以省略, 但在某些数据库中必须要有。
-- 一次插入一行
insert into `表名` set `字段`=值, `字段`=值;
-- 按照指定字段, 一次插入多行
insert into `表名` (字段1, 字段2 ...) values (值1, 值2, ...), (值1, 值2, ...);
-- 指定全部字段, 一次插入多行
insert into `表名` values (null, 值1, 值2, ...), (null, 值1, 值2, ...);
2. SELECT (查询)
-- 通过 * 获取全部字段的数据
select * from `表名`;
-- 获取指定字段的数据
select `字段1`, `字段2` from `表名`;
3. UPDATE (更新)
-- 修改全表数据
update `表名` set `字段1`=值, `字段2`=值;
-- 使用 where 修改满足条件的行
-- where 类似于 if 条件, 只执行返回结果为 True 的语句
update `表名` set `字段1`=值, `字段2`=值 where `字段`=值;
update `表名` set `字段1`=值, `字段2`=值 where `字段`=值 and `字段`=值;
4. DELETE (删除)
-- 删除表中的所有数据 (逐行删除)
delete from `表名`;
-- 清空全表 (一次性整表删除)
truncate `表名`
-- 使用 where 修改满足条件的行
delete from `表名` where `字段` = 值;
delete from `表名` where `字段` in (1, 2, 3, 4);