数据库的操作

1. 创建数据库

create database [if not exists]  `数据库名` charset=字符编码(utf8mb4);
  1. 如果多次创建会报错
  2. 如果不指定字符编码,默认为 utf8mb4 (一个汉字占用 4 个字节)
  3. 给数据库命名一定要习惯性加上反引号, 防止和关键字冲突

2. 查看数据库

show databases;

3. 选择数据库

use `数据库的名字`;

4. 创建数据库

create database `数据库名`;

5. 修改数据库

-- 只能修改字符集
alter database `数据库名` charset=字符集;

6. 删除数据库

drop database [if exists] `数据库的名字`;

表的操作

表是建立在数据库中的数据结构,是一类数据的存储集。

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;

3.删除表

删除表必须在数据库中进行删除

drop table [if exists] `表名`

4. 显示建表结构

desc `表名`;
describe `表名`;

5. 修改表

-- 修改表的名称
alter table `old_name` rename `new_name`;
-- 移动表 到指定的数据库
alter table `表名` rename to 数据库名.表名;

6. 修改字段

-- 增加一个新的字段
alter table `表名` add `字段名` 数据类型 [属性];
-- 增加一个新的字段, 并放在首位
alter table `表名` add `字段名` 数据类型 [属性] first;
-- 增加一个新的字段, 并放在某一个字段之后
alter table `表名` add `字段名` 数据类型 [属性] after 指定字段;
-- 修改字段的属性
alter table `表名` modify `字段名` 数据类型 [属性];
-- 修改字段的名称
alter table `表名` change `原字段名` `新的字段名` 数据类型 [属性];
-- 修改字段的位置
alter table `表名` change `原字段名` `新的字段名` 数据类型 after `指定字段`;
-- 删除字段
alter table `表名` drop `字段名`;

7.复制表

  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));
  1. 复制表,并且复制数据
create table `复制表的名称` select * from `原表名`;
  • 特点

    • 完整的复制一个表,既有原表的结构,又有原表的数据
    • 表内字段的属性会丢失,主键的自增等特性不复存在,新插入数据时会有问题
    • 最好不要使用这种方式复制
  1. 仅复制表结构, 不复制数据
create table `复制表的名称` like `原表名`;
  • 特点: 复制后的表结构与原表完全相同,字段的属性与原表也完全一致。但是里面没有数据,

    是一张空表
  • 如果需要,数据可以单独复制
insert into `复制表的名称` select * from `原表名`;

CURD 语句的基本使用

对表中数据的操作一般分为四类, 常记做 "CURD":

  • C: 创建(Create)
  • U: 更新(Update)
  • R: 读取(Retrieve)
  • D: 删除(Delete)

1. INSERT 插入

完整的 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);

小总结

  • 数据库:
create database `库名`;
create table `表名`;
  • 字段
alter table `表名` add `字段名` 类型 [属性];
  • 数据
insert into `表名`;

  • 数据库
drop database `库名`;
drop table `表名`
  • 字段
alter table `表名` drop `字段名`;
  • 数据
delete from `表名` where ...;

  • 数据库
alter database `库名`....;
alter table `表名` ...;
  • 字段
alter table `表名` modify | change ...;
  • 数据
update `表名` set ...;

  • 数据库
show databases [like ...];
show tables [like ...];
  • 字段
desc `表名`;
  • 数据
select * from `表名` where ...;

MySQL库,表,数据的操作的更多相关文章

  1. python之路--MySQL 库,表的详细操作

    一 库操作 数据库命名规则 可以由数字,字母,下划线,@, #, $ 区分大小写 唯一性 不能使用关键字如 create  select 不能单独使用数字 最长128位 # 这些是对上次的补充. 二 ...

  2. 二 mysql库表的详细操作

    目录 1.库操作 1.创建数据库 2.数据库相关操作 2.表操作 1.存储引擎 2.表介绍 3.创建表 4.查看表结构 5.MySQL的基础数据类型 6.表的完整性约束 7.修改表 alter tab ...

  3. java 读取mysql库表数据

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  4. Mysql 库表操作初识

    Mysql 库表操作初识 终端登录mysql 这里只演示win下, cmd 终端. 至于怎么在win下, linux, mac安装, 感觉这是一个入门级的百度搜索问题, 安装都搞不定, 确实有点尴尬, ...

  5. MySQL多表数据记录查询详解

    在实际应用中,经常需要实现在一个查询语句中显示多张表的数据,这就是所谓的多表数据记录连接查询,简称来年将诶查询. 在具体实现连接查询操作时,首先将两个或两个以上的表按照某个条件连接起来,然后再查询到所 ...

  6. MySQL单表数据不超过500万:是经验数值,还是黄金铁律?

    今天,探讨一个有趣的话题:MySQL 单表数据达到多少时才需要考虑分库分表?有人说 2000 万行,也有人说 500 万行.那么,你觉得这个数值多少才合适呢? 曾经在中国互联网技术圈广为流传着这么一个 ...

  7. MySQL单表数据不要超过500万行:是经验数值,还是黄金铁律?

    本文阅读时间大约3分钟. 梁桂钊 | 作者 今天,探讨一个有趣的话题:MySQL 单表数据达到多少时才需要考虑分库分表?有人说 2000 万行,也有人说 500 万行.那么,你觉得这个数值多少才合适呢 ...

  8. mysql复制表数据或表结构到新表中

    MySQL复制表数据到新表的几个步骤. 1.MySQL复制表结构及数据到新表 CREATE TABLE new_table SELECT * FROM old_table; 2.只复制表结构到新表 C ...

  9. python Mysql 库表

    Mysql 库表    创建 学生信息库表  学生成绩 库表

  10. mysql复制表数据,多表数据复制到一张表

    对于mysql 复制表数据可以使用 insert into select 方式 示例: $sql="insert into icarzoo.provider(providerId,provi ...

随机推荐

  1. v-contextmenujs 右键菜单点击

    忙碌了一晚上的"枫师傅"用上了新插件v-contextmenujs,这个插件就按照他的文档来就行 我的使用: <!-- 这里是demo.vue,之所以选择html是为了代码高 ...

  2. 02 uniapp/微信小程序 项目day02

    一.分类 1.1 页面布局 首先创建cate的分支 定义基本结构,因为是两个需要滚动的区域,所以这里要用到组件 scroll 这个组件如果是y scroll那就要固定高度,x scroll那就要固定宽 ...

  3. 重要参考步骤---ProxySQL实现读写分离

    MySQL配置主从同步文章地址:https://www.cnblogs.com/sanduzxcvbnm/p/16295369.html ProxySQL实现读写分离与读负载均衡参考文档:https: ...

  4. Elasticsearch: analyzer

    在今天的文章中,我们来进一步了解analyzer. analyzer执行将输入字符流分解为token的过程,它一般发生在两个场合: 在indexing的时候,也即在建立索引的时候 在searching ...

  5. SkyWalking 6.x 的架构图

    可以看到主要由四部分组成: Agent(也叫Probe):代理或者探针,集成在被监测的应用中(SDK形式或者动态注入),采集应用的数据发送给后端(OAP). UI:自带的Web页面. OAP:后端,接 ...

  6. 改变一个数组内元素的位置,不通过splice方法。

    这个数据 现在已经完成了,将本来在第一位的18代金券改到第31位,下面说一下怎么实现的. //currHotRightsTypeSorted这个是数据源头,legalRightsType这个是数据的分 ...

  7. ImGUI 1.87 绘制D3D外部菜单

    ImGUI 它是与平台无关的C++轻量级跨平台图形界面库,没有任何第三方依赖,可以将ImGUI的源码直接加到项目中使用,该框架通常会配合特定的D3Dx9等图形开发工具包一起使用,ImGUI常用来实现进 ...

  8. frp服务利用云主机docker服务实现Windows远程连接

    1.云主机配置 1.docker部署 # 创建文件 mkdir -p /root/docker/frp && touch /root/docker/frp/frps.ini # 配置文 ...

  9. .NET下数据库的负载均衡(有趣实验)(续)

    .NET下数据库的负载均衡(有趣实验)这篇文章发表后,受到了众多读者的关注与好评,其中不乏元老级程序员. 读者来信中询问最多的一个问题是:它是否能支持"异种数据库"的负载均衡?? ...

  10. Period of an Infinite Binary Expansion 题解

    Solution 简单写一下思考过程,比较水的数论题 第一个答案几乎已经是可以背下来的,在此不再赘述 考虑我们已经知道了\((p,q)\),其中\((p \perp q) \wedge (q \per ...