mysql创建表

mysql 中表与表之间的关系

拟墨画扇 提交于 2019-11-29 02:03:03
如何找出两张表的对应关系 分析步骤: 1.先找出左表的角度去找 ​ 是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段 (通常是id) 2.再站在右表的角度去找 ​ 是否右表的多条记录可以对应左表的一条记录,如果是,则证明右表的一个字段foreign key 左表一个字段(通常是id) 3.总结 多对一 如果只有步骤1成立,则是左表多对一右表 如果只有步骤2成立,则是右表多对一左表 多对多 如果步骤1和2同时成立,则证明这两张表时一个双向的多对一,即多对多,需要定义一个这两张表的关系表来专门存放二者的关系 一对一 如果1和2都不成立,而是左表的一条记录唯一对应右表的一条记录,反之亦然。这种情况很简单,就是在左表foreign key右表的基础上,将左表的外键字段设置成unique即可 建立表之间的关系 一对多 多对一 一对多或称为多对一 三张表:出版社,作者信息,书 一对多(或多对一):一个出版社可以出版多本书 关联方式:foreign key 代码如下 create table press( id int primary key auto_increment, name varchar(20) 创建了一个 press 表 ); create table book( id int primary key auto

mysql基础之mariadb对表中数据的增删改查

a 夏天 提交于 2019-11-29 01:44:46
复习: 查看表:show tables;   创建表:create table 表名(字符类型);   删除表:drop table 表名; 对表的结构进行增删改查: 查看表结构:desc 表名;  修改表-添加字段:alter table 表名;   修改表-修改字段:不重命名版:alter table 表名 modify 列名 类型及约束; 修改表-修改字段:重命名版:alter table 表名 change 原名 新名 类型及约束; 修改表-删除字段:alter table 表名 drop 列名; 一、增加表中的数据(insert) insert语句的语法: insert into tablename(字段1名称,字段2名称,...) values (字段1值,字段2值,...) 1、全列插入 --insert into 表名 values(..) --主键字段 可以用0 null default 来站位 例子:向test表中插入一条信息(数据与字段要一一对应) MariaDB [ren]> insert into test values ('谢霆锋',188,38,1); Query OK, 1 row affected (0.01 sec) MariaDB [ren]> select * from test; +-----------+------+------+---

MySQL数据查询之多表查询

大憨熊 提交于 2019-11-29 01:32:30
多表查询 多表联合查询 #创建部门 CREATE TABLE IF NOT EXISTS dept ( did int not null auto_increment PRIMARY KEY, dname VARCHAR(50) not null COMMENT '部门名称' )ENGINE=INNODB DEFAULT charset utf8; #添加部门数据 INSERT INTO `dept` VALUES ('1', '教学部'); INSERT INTO `dept` VALUES ('2', '销售部'); INSERT INTO `dept` VALUES ('3', '市场部'); INSERT INTO `dept` VALUES ('4', '人事部'); INSERT INTO `dept` VALUES ('5', '鼓励部'); -- 创建人员 DROP TABLE IF EXISTS `person`; CREATE TABLE `person` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `age` tinyint(4) DEFAULT '0', `sex` enum('男','女','人妖') NOT NULL DEFAULT '人妖', `salary`

mysql基础之mariadb库管理和表管理语句

蓝咒 提交于 2019-11-29 00:46:15
一、数据库管理语句 1 、 Syntax: CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... create_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name ( 1 )在其他关系型数据库中, database 与 schema 是有区别的,但是在 mysql5.0.2 以后,我们在创建数据库时可以不加区分的使用 database 和 schema ,我们可以将 create schema 理解为 create database 的代名词。 ( 2 ) if not exists 表示在对应的数据库不存在的时候才会创建, if not exists 被中括号括起来,表示此项为可选,建议在 sql 脚本中使用 create 命令创建数据库时加入此项,以免对应名称的数据库已经存在导致 sql 脚本终止。 ( 3 ) create_specification 表示我们可以在创建数据库时指定对应的数据库规范。 ( 4 )我们可以在创建数据库时指定数据库的字符集,使用 character set 对应字符集名称即可指定使用什么字符集,如果使用了

MySQL常用系统表汇总

依然范特西╮ 提交于 2019-11-28 22:39:39
在这篇文章中: MySQL5.7 默认模式 Information_schema performance_schema mysql sys MYSQL SHOW 命令 致谢 概述 本篇文章虽大部分内容为参考原文作者的相关内容,但对原文对于文章的逻辑与排版上进行了大范围修改,方便阅读与理解。原文链接在底部 MySQL5.7 默认模式 库名 表数量 视图数量 information_schema 61 0 mysql 32 0 performance_schema 87 0 sys 1 100 Information_schema Information_schema数据库是 MySQL 自带的,它提供了访问数据库元数据的方式。 什么是元数据呢? 元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。 在MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件 information_schema 数据库部分表说明 表名 注释

MySQL的库、表的详细操作

末鹿安然 提交于 2019-11-28 22:36:18
目录 MySQL的库、表的详细操作 一 库操作 二 表操作 MySQL的库、表的详细操作 本节目录 一 库操作    1、创建数据库      1.1 语法       CREATE DATABASE 数据库名 charset utf8;      1.2 数据库命名规则       可以由字母、数字、下划线、@、#、$       区分大小写       唯一性       不能使用关键字如 create select       不能单独使用数字       最长128位 ​ 基本上跟python或者js的命名规则一样    2、数据库相关操作     也是一些基本操作,和我们之前说的差不多。 1 查看数据库 show databases; show create database db1; select database(); 2 选择数据库 USE 数据库名 3 删除数据库 DROP DATABASE 数据库名; 4 修改数据库 alter database db1 charset utf8;   关于库的内容,咱们就说这些吧,哈哈,有点少是吧,不是咱们的重点,来看下面的表操作~~~ 二 表操作    1、存储引擎     存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制,关于存储引擎的介绍看我这篇博客: https://www.cnblogs.com

二 mysql库表的详细操作

我只是一个虾纸丫 提交于 2019-11-28 22:24:52
目录 1.库操作 1、创建数据库 2、数据库相关操作 2.表操作 1、存储引擎 2、表介绍 3、创建表 4、查看表结构 1.库操作 1、创建数据库      1.1 语法       CREATE DATABASE 数据库名 charset utf8;      1.2 数据库命名规则       可以由字母、数字、下划线、@、#、$       区分大小写       唯一性       不能使用关键字如 create select       不能单独使用数字       最长128位       基本上跟python或者js的命名规则一样 2、数据库相关操作     也是一些基本操作,和我们之前说的差不多。 查看数据库 show databases; show create database db1; select database(); 选择数据库 USE 数据库名 删除数据库 DROP DATABASE 数据库名; 修改数据库 alter database db1 charset utf8; 2.表操作 1、存储引擎     存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制,关于存储引擎的介绍看我这篇博客: https://www.cnblogs.com/zhaohaiyu/p/11430278.html 2、表介绍     表相当于文件

多表查询

落花浮王杯 提交于 2019-11-28 22:10:47
本节重点: 多表连接查询 符合条件连接查询 子查询 准备工作:准备两张表,部门表(department)、员工表(employee) create table department( id int, name varchar(20) ); create table employee( id int primary key auto_increment, name varchar(20), sex enum('male','female') not null default 'male', age int, dep_id int ); #插入数据 insert into department values (200,'技术'), (201,'人力资源'), (202,'销售'), (203,'运营'); insert into employee(name,sex,age,dep_id) values ('egon','male',18,200), ('alex','female',48,201), ('wupeiqi','male',38,201), ('yuanhao','female',28,202), ('nvshen','male',18,200), ('xiaomage','female',18,204) ; # 查看表结构和数据 mysql> desc

TokuDB · 引擎特性 · HybridDB for MySQL高压缩引擎TokuDB 揭秘

半腔热情 提交于 2019-11-28 21:48:31
原文出处: 阿里云RDS-数据库内核组 HybridDB for MySQL(原名petadata)是面向在线事务(OLTP)和在线分析(OLAP)混合场景的关系型数据库。HybridDB采用一份数据存储来进行OLTP和OLAP处理,解决了以往需要把一份数据多次复制来分别进行业务交易和数据分析的问题,极大地降低了数据存储的成本,缩短了数据分析的延迟,使得实时分析决策称为可能。 HybridDB for MySQL兼容MySQL的语法及函数,并且增加了对Oracle常用分析函数的支持,100%完全兼容TPC-H和TPC-DS测试标准,从而降低了用户的开发、迁移和维护成本。 TokuDB是TokuTek公司(已被 Percona收购)研发的新引擎,支持事务/MVCC,有着出色的数据压缩功能,支持异步写入数据功能。 TokuDB索引结构采用fractal tree数据结构,是buffer tree的变种,写入性能优异,适合写多读少的场景。除此之外,TokuDB还支持在线加减字段,在线创建索引,锁表时间很短。 Percona Server和Mariadb支持TokuDB作为大数据场景下的引擎,目前官方MySQL还不支持TokuDB。ApsaraDB for MySQL从2015年4月开始支持TokuDB,在大数据或者高并发写入场景下推荐使用。 TokuDB优势 数据压缩

单表查询

本小妞迷上赌 提交于 2019-11-28 21:45:14
一、单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二、关键字的执行优先级(重点) 重点中的重点:关键字的执行优先级 from where group by having select distinct order by limit 1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组 4.将分组的结果进行having过滤 5.执行select 6.去重 7.将结果按条件排序:order by 8.限制结果的显示条数 创建公司员工表,表的字段和数据类型 company.employee 员工id id int 姓名 name varchar 性别 sex enum 年龄 age int 入职日期 hire_date date 岗位 post varchar 职位描述 post_comment     varchar 薪水 salary     double 办公室 office int 部门编号 depart_id int #创建表,设置字段的约束条件 create table employee( id int primary