数据库

建库操作

#创建数据库(默认字符集编码)
create database test20210420
#创建数据库的时候指定字符集编码以及字符校验规则
create database test20210420 CHARACTER set = utf8 COLLATE utf8_general_ci
#切换可用数据库(建表之前一定要切换)
use test20210420
#查看服务器的所有数据库
show databases
#删除数据库
drop database test20210420
#修改数据库字符集编码以及字符校验规则
alter database test20210420 CHARACTER set = utf8 COLLATE utf8_general_ci
#查看数据库信息
show create database test20210420

建表操作

#创建表:创建表的格式
create table student( student_id int, student_name varchar(20), student_birth int )
#插入数据的命令
insert into student values(1,'姚明',20)
#查询
select * from student
#删除表
drop table student

复制表操作

#结构和数据一起复制(有创建表)
create table testchar1 as select * from testchar
#结构复制(有创建表)
create table testchar2 like testchar

修改表操作

#1.给表中增加列
alter table testchar add t_age int
#2.给修改列名及列定义
alter table testchar change t_name1 t_name2 varchar(50)
#3.修改列定义
alter table testchar modify t_name2 varchar(100)
#4.删除列
alter table testchar drop t_age

辅助命令

#查看当前数据库中所有的表
SHOW TABLES;
#查看表的定义信息
SHOW CREATE TABLE testchar
#删除表
drop table testchar
#表重新命名
Rename table testchar to testchar3

NOT NULL非空,该字段的值必填

UNIQUE唯一,该字段的值不可重复

DEFAULT默认,该字段的值不用手动插入有默认值

CHECK检查,mysql不支持

PRIMARY KEY主键,该字段的值不可重复并且非空 unique+not null

FOREIGN KEY外键,该字段的值引用了另外的表的字段

主键和唯一的异同:

区别:

①一个表最多可以有一个主键,但可以有多个唯一键

[En]

① A table can have at most one primary key, but can have more than one unique

②主键不允许为空,只能为空

[En]

② primary key is not allowed to be empty, only can be empty

相同点

①都具有唯一性

②支持组合键,但不推荐使用

[En]

② supports key combinations, but it is not recommended

主表和从表:

主表(父表)引用字段所在的表

[En]

Primary table (parent table) the table in which the referenced field is located

数据库中建立的表格即Table,其中存在主键(primary key)用于与其它表相关联,并且作为在主表中的唯一性标识。

从表(子表)

以主表的主键(primary key)值为外键(Foreign Key)的表,可以通过外键与主表进行关联查询。从表与主表通过外键进行关联查询。

修改表时添加或删除约束

#1、非空
    #添加非空
    alter table 表名 modify column 字段名 字段类型 not null;
    #删除非空
    alter table 表名 modify column 字段名 字段类型 ;
#2、默认
    #添加默认
    alter table 表名 modify column 字段名 字段类型 default 值;
    #删除默认
    alter table 表名 modify column 字段名 字段类型 ;
#3、主键
    #添加主键
    alter table 表名 add【constraint 约束名】 primary key(字段名);
    #删除主键
    alter table 表名 drop primary key;
#4、唯一
    #添加唯一
    alter table 表名 add【 constraint 约束名】 unique(字段名);
    #删除唯一
    alter table 表名 drop index 索引名;
#5、外键
    #添加外键
    alter table 表名 add【 constraint 约束名】 foreign key(字段名) references 主表(被引用列);
    #删除外键
    alter table 表名 drop foreign key 约束名;
#自增长列
    #添加自增长列
    alter table 表 modify column 字段名 字段类型 约束 auto_increment
    #删除自增长列
    alter table 表 modify column 字段名 字段类型 约束

Original: https://www.cnblogs.com/am0304/p/16481491.html
Author: 超甜的小布丁
Title: 数据库

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/505214/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 工具 | 常用 PostgreSQL 预防数据丢失方案

    作者:张连壮 PostgreSQL 研发负责人从事多年 PostgreSQL 数据库内核开发,对 Citus 有非常深入的研究。 PostgreSQL 本身不具备数据闪回和数据误删…

    数据库 2023年5月24日
    0121
  • MySQL 分区表,为什么分区键必须是主键的一部分?

    随着业务的不断发展,数据库中的数据量会越来越大,相应地,单表中的数据量也会越来越大,达到临界值时,单表的查询性能会下降。 [En] With the continuous deve…

    数据库 2023年5月24日
    0128
  • dubbo 使用Multicast注册中心找不到Provider (No provider available for the service)

    使用Multicast注册中心配置,缺省配置为通过Multicast注册中心广播互相发现。所以在同一台机器时需设置unicast=false:即:multicast://224.5…

    数据库 2023年6月16日
    0161
  • mysql关于权限

    use db; select user(),database();— 建立账号 create user user1; create user user2@’192,16…

    数据库 2023年6月9日
    0126
  • go test 的内联问题

    写单测的时候遇到一个问题,在使用 gomonkey 进行打桩时,使用 gland 的 debug 运行测试时,测试程序正常跑通,而使用 run 或者命令行运行 go test -v…

    数据库 2023年6月9日
    0170
  • hosts文件作用

    1、加快域名解析对于要经常访问的网站,我们可以通过在Hosts中配置域名和IP的映射关系,提高域名解析速度。由于有了映射关系,当我们输入域名计算机就能很快解析出IP,而不用请求网络…

    数据库 2023年6月11日
    0104
  • 设计模式之(5)——原型模式

    上篇文章中我们提到单例模式可以避免重复创建消耗资源的对象,但是却不得不共用对象。若是对象本身也不让随意访问修改时,怎么办?那么我们就可以采用原型模式来创建新的实例。 定义:原型模式…

    数据库 2023年6月14日
    0131
  • MySQL InnoDB索引原理

    数据库与I/O原理 数据会持久化到磁盘,查询数据是就会有I/O操作,相对于缓存操作,I/O操作的时间成本相当高昂。 I/O操作的基本单位是一个磁盘页面,比如16KB的页面大小。当数…

    数据库 2023年5月24日
    0174
  • Sonarqube安装(Docker)

    一,拉取相关镜像并运行 拉取sonarqube镜像 docker pull sonarqube:9.1.0-community 在运行之前要提前安装postgres并允许,新建数据…

    数据库 2023年6月11日
    0139
  • JavaWeb核心篇(7)——VUE和Element

    VUE&Element 今日目标: 能够使用VUE中常用指令和插值表达式 能够使用VUE生命周期函数 mounted 能够进行简单的 Element 页面修改 能够完成查询…

    数据库 2023年6月14日
    0132
  • 1. SQL

    404. 抱歉,您访问的资源不存在。 可能是URL不正确,或者对应的内容已经被删除,或者处于隐私状态。 [En] It may be that the URL is incorre…

    数据库 2023年5月24日
    0134
  • day43-反射02

    Java反射02 2.Class类 2.1基本介绍 Class类也是类,因此也继承Object类 Class类对象不是new出来的,而是系统创建的 对于某个类的Class类对象,在…

    数据库 2023年6月11日
    0138
  • AspNetCoreapi 使用 Docker + Centos 7部署

    好久没有更新文章了,前段时间写了一系列的文章放到桌面了,想着修修改改,后来系统中勒索病毒了还被公司网络安全的抓到是我电脑,后来装系统文章给装丢了。然后好长一段时间没有写了。 今天记…

    数据库 2023年6月11日
    0145
  • MySQL增删改

    数据处理之增删改 插入数据(增) 前提:创建一个空表:id,name,hire_data,salary, 方法一:逐一添加数据 [En] method 1: add data on…

    数据库 2023年5月24日
    0104
  • git 烂笔头

    触类旁通, 举一反&amp…

    数据库 2023年6月9日
    0135
  • 简单聊聊mysql的脏读、不可重复读、幻读

    最近,在一次 mysql 死锁的生产事故中,我发现,关于 mysql 的锁、事务等等,我所知道的东西太碎了,所以,我试着用几个例子将它们串起来。具体做法就是通过不断地问问题、回答问…

    数据库 2023年5月24日
    0170
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球