mysql创建表

4-2 单表查询

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-01 06:54:28
一 单表查询的语法 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.限制结果的显示条数 详细见:http://www.cnblogs.com/linhaifeng/articles/7372774.html 三 简单查询 company.employee 员工id id int 姓名 emp_name varchar 性别 sex enum 年龄 age int 入职日期 hire_date date 岗位 post varchar 职位描述 post_comment varchar 薪水 salary double 办公室 office int 部门编号 depart_id int #创建表

4-3 多表查询

故事扮演 提交于 2019-12-01 06:54:23
一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 准备表 #建表 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), ('liwenzhou','male',18,200), ('jingliyang','female',18,204) ; #查看表结构和数据 mysql> desc department; +-------+-------------

3-2 表的增删改查

安稳与你 提交于 2019-12-01 06:53:17
一、表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 id,name,qq,age称为字段,其余的,一行内容称为一条记录 二、创建表 语法 create table 表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件] ); #注意: 1. 在同一张表中,字段名是不能相同 2. 宽度和约束条件可选 3. 字段名和类型是必须的 示范 MariaDB [(none)]> create database db1 charset utf8; MariaDB [(none)]> use db1; MariaDB [db1]> create table t1( -> id int, -> name varchar(50), -> sex enum('male','female'), -> age int(3) -> ); MariaDB [db1]> show tables; #查看db1库下所有表名 MariaDB [db1]> desc t1; +-------+-----------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default |

表完整性约束

情到浓时终转凉″ 提交于 2019-12-01 05:39:58
表完整性约束 作用,用于保证数据的完整性和一致性 |约束条件|说明| |-|-| |primary key|标识该字段为该表的主键,可以唯一的标识记录,不可以为空| |foreing key|标识该字段为表的外键,实现表与表之间的关联| |not null|标识该字段不能为空| |unique key|标识该字段的值是唯一的,可以为空,一个表可以有多个unique key| |auto_increment|标识该字段的值是自动增长(整数类型,而且是主键)| |default|为该字段设置默认值| |unsigned|无符号,正数| |zerofill|使用0填充,例如000000001| default(默认值)和not null(是否允许空值) 默认值不允许为函数 NULL值就是没有值或缺值 允许NULL值的列,就是允许在插入行时不给出该列的值 不允许NULL值的列在插入或更新行时,该列必须有值 不要把NULL值与空串相混淆。NULL值是没有值,它不是空串。 如果指定‘’两个单引号,其间没有字符,这在NOT NULL列是允许的 mysql> use test1; Database changed mysql> create table student4( -> id int not null, -> name varchar(50) not null, -> sex enum(

表操作——存储引擎介绍

泪湿孤枕 提交于 2019-12-01 01:55:19
表操作——存储引擎介绍 一、什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处理文本用txt类型,处理表格用excel,处理图片用png等。 数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎。 存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方 法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和 操作此表的类型) 在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySql 数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据 自己的需要编写自己的存储引擎。 SQL 解析器、SQL 优化器、缓冲池、存储引擎等组件在每个数据库中都存在,但不是每个数据库都有这么多存储引擎。MySQL的插件式存储引擎可以让存储引擎层的开发人员设计他们希望的存储层,例如,有的应用需要满足事务的要求;有的应用则不需要对事务有这么强的要求;有的希望数据能持久存储,有的只希望放在内存中,临时并快速地提供对数据的查询。 二、mysql支持的存储引擎 MariaDB [(none)]>

Mysql 创建表时错误:Tablespace for table `tablexx` exists. Please DISCARD the tablespace before IMPORT.

﹥>﹥吖頭↗ 提交于 2019-12-01 01:49:18
在本地的一个数据库创建表时意外的出现了以下错误,说是表已经存在了 但通过desc 查看表信息时又说表不存在 在本地系统搜索表名却发现一个.ibd文件[InnoDB File] 在删除了该.ibd文件文件后再重新创建表就没有问题了 参考: mysql innodb表空间被占用,同名表无法创建或导入 MySQL插入或添加表提示Error : Tablespace for table `database`.`temp` exists. Please DISCARD the tablespace before IMPORT. MySQL 数据文件 说明 InnoDB File-Per-Table Tablespaces 来自为知笔记(Wiz) 来源: https://www.cnblogs.com/SofuBlue/p/11646700.html

Mysql 单表查询-排序-分页-group by初识

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-01 00:18:35
Mysql 单表查询-排序-分页-group by初识 对于select 来说, 分组聚合(((group by; aggregation), 排序 ( order by** ), 分页查询 ( limit ), 等这些操作, 都是结合 where 过滤(算术表达式, 逻辑表达式, 判空, 范围过滤, 模糊查询), 来进一步对数据集为所欲为地操作哦, group by 也是我工作中每天都必用的, 因为我每天要拆分数据嘛, 先按一或多个字段 group by, 然后, 再对每组的抑或多个字段进行聚合(sum, avg, max, quartile...)等 . 直接来理解SQL分组聚合, 一开始还是不容易的, 一个是对group by 不熟, 另一个对sql语句不熟. 针对这点, 我是每天都在 用Excel的透视表 , 各种透视, 多条件透视, 整吐了过后, 就彻底明白了. 虽然我是有些讨厌Excel, 但不得不说, 它能让你直观地理解很多 数据, 数据结构, 编程相关的概念 . 数据依然是上篇, students表(where 初识那一篇). 准备测试数据 -- win 下, 进入终端 (cmd + R) mysql -u root -p C:\Users\chenjie>mysql -u root -p Enter password: ******** -- 再重新来手打一遍吧,

MySQL性能优化总结

久未见 提交于 2019-12-01 00:02:59
一、MySQL 的主要适用场景 1、Web网站系统 2、日志记录系统 3、数据仓库系统 4、嵌入式系统 二、 MySQL 架构图: 三、 MySQL 存储引擎概述 1 ) MyISAM 存储引擎 MyISAM存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件。首先肯定会有任何存储引擎都不可缺少的存放表结构定义信息的.frm文件,另外还有.MYD和.MYI文件,分别存放了表的数据(.MYD)和索引数据(.MYI)。每个表都有且仅有这样三个文件做为MyISAM存储类型的表的存储,也就是说不管这个表有多少个索引,都是存放在同一个.MYI文件中。 MyISAM支持以下三种类型的索引: 1、B-Tree索引 B-Tree索引,顾名思义,就是所有的索引节点都按照balancetree的数据结构来存储,所有的索引数据节点都在叶节点。 2、R-Tree索引 R-Tree索引的存储方式和b-tree索引有一些区别,主要设计用于为存储空间和多维数据的字段做索引,所以目前的MySQL版本来说,也仅支持geometry类型的字段作索引。 3、Full-text索引 Full-text索引就是我们长说的全文索引,他的存储结构也是b-tree。主要是为了解决在我们需要用like查询的低效问题。 2 ) Innodb 存储引擎 1、支持事务安装 2、数据多版本读取 3、锁定机制的改进 4

MySql优化相关总结

£可爱£侵袭症+ 提交于 2019-12-01 00:02:07
MySQL架构 查询执行流程 查询执行的流程是怎样的: 连接 1.1客户端发起一条Query请求,监听客户端的‘连接管理模块’接收请求 1.2将请求转发到‘连接进/线程模块’ 1.3调用‘用户模块’来进行授权检查 1.4通过检查后,‘连接进/线程模块’从‘线程连接池’中取出空闲的被缓存的连接线程和客户端请求对接,如果失败则创建一个新的连接请求。 处理 2.1先查询缓存,检查Query语句是否完全匹配, 2.2查询缓存失败则转交给‘命令解析器’ 2.3再转交给对应的模块处理 2.4如果是SELECT查询还会经由‘查询优化器’做大量的优化,生成执行计划 2.5模块收到请求后,通过‘访问控制模块’检查所连接的用户是否有访问目标表和目标字段的权限 2.6有则调用‘表管理模块’,先是查看table cache中是否存在,有则直接对应的表和获取锁,否则重新打开表文件 2.8根据表的meta数据,获取表的存储引擎类型等信息,通过接口调用对应的存储引擎处理 2.9上述过程中产生数据变化的时候,若打开日志功能,则会记录到相应二进制日志文件中 结果 3.1Query请求完成后,将结果集返回给‘连接进/线程模块’ 3.2返回的也可以是相应的状态标识,如成功或失败等 3.3‘连接进/线程模块’进行后续的清理工作,并继续等待请求或断开与客户端的连接 什么是优化 合理安排资源、调整系统参数使MySQL运行更快

【记录】Mysql 建表注意事项

早过忘川 提交于 2019-11-30 19:54:59
     博主最近打算搭建商城,由于之前对建表只有很浅显的理解,没有太过深入了解,建表过程中遇到一些问题,现记录如下, 如有问题请各位留言指正,感激不尽: 建表时设置如何设置联合主键?如下标红处: CREATE TABLE `product_price` ( `product_id` int(12) NOT NULL COMMENT '商品ID', `price_category_id` int(12) NOT NULL DEFAULT '0' COMMENT '价格类型ID', `price_describe` varchar(15) DEFAULT NULL COMMENT '价格描述', `price` decimal(18,3) DEFAULT NULL COMMENT '价格', `created_by` varchar(20) DEFAULT NULL COMMENT '创建用户', `created_time` datetime DEFAULT NULL COMMENT '创建时间', `updated_by` varchar(20) DEFAULT NULL COMMENT '更新用户', `updated_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`product_id`,`price