mysql基础教程(三)-----增删改、子查询、创建管理表、约束和分页
插入
INSERT语句语法

从其它表中拷贝数据

• 不必书写 VALUES 子句。
• 子查询中的值列表应与 INSERT 子句中的列名对应
update语句

• 可以一次更新多条数据。
• 如果需要回滚数据,需要保证在DML前,进行 设置:
SET AUTOCOMMIT = FALSE;
因为mysql中默认事务是自动提交的。
delete语句

子查询
概念
出现在其他语句内部的select语句,称为子查询或内查询内部嵌套其他select语句的查询,称为外查询或主查询。
select first_name from employees where
department_id in(
select department_id from departments
where location_id=1700
)
创建数据库
创建一个保存员工信息的数据库 :
create database employees;
相关其他命令
create database employees if not exists;
show databases;查看当前所有数据库
use employees;“使用”一个数据库,使其作为当前数据库
创建表
• 必须具备:
– CREATE TABLE权限
– 存储空间
• 必须指定:
– 表名
– 列名, 数据类型, 尺寸
语法

注:创建表这种更加合理
create table if not exists tableName...
数据类型
概述
mysql数据类型分为
- 数值类型
- 字符类型
- 日期类型
数值类型
整型

小数

位类型

字符类型
char和varchar类型

binary和varbinary类型
说明:类似于char和varchar,不同的是它们包含二进制字符串而不包含非二 进制字符串。
Enum类型
说明:又称为枚举类型哦,要求插入的值必须属于列表中指定的值之一。
Set类型
说明:和Enum类型类似,里面可以保存0~64个成员。和Enum类型最大的区 别是:SET类型一次可以选取多个成员,而Enum只能选一个 根据成员个数不同,存储所占的字节也不同
日期类型

常用数据类型

创建表示例

ALTER TABLE 语句
- 向已有的表中添加列
- 修改现有表中的列
- 删除现有表中的列
- 重命名现有表中的列
增加一个列
ALTER TABLE dept80 ADD job_id varchar(15);
修改一个列
• 可以修改列的数据类型, 尺寸和默认值

• 对默认值的修改只影响今后对表的修改
删除一个列

重命名一个列

总结:alter table 表名 add|drop|modify|change column 列名 【列类型 约束】
删除表
- 数据和结构都被删除
- 所有正在运行的相关事务被提交
- 所有相关索引被删除
- DROP TABLE 语句不能回滚

注:删除用下面这种相对更为合理
drop table if exists tableName;
清空表
• TRUNCATE TABLE 语句:
– 删除表中所有的数据
– 释放表的存储空间
– TRUNCATE语句不能回滚

约束
什么是约束
• 为了保证数据的一致性和完整性,SQL规范以约 束的方式对表数据进行额外的条件限制。
• 约束是表级的强制规定
• 可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通 过 ALTER TABLE 语句)
类型
- – NOT NULL 非空约束,规定某个字段不能为空
- – UNIQUE 唯一约束,规定某个字段在整个表中是唯一的
- – PRIMARY KEY 主键(非空且唯一)
- – FOREIGN KEY 外键
- – CHECK 检查约束(mysql不支持)
- – DEFAULT 默认值
NOT NULL 约束
保证列值不能为空。
创建 not null 约束:

增加 not null 约束:

取消 not null 约束:

取消 not null 约束,增加默认值:

UNIQUE 约束
同一个表可以有多个唯一约束,多个列组合的约束。 在创建唯一约束的时候,如果不给唯一约束名称,就 默认和列名相同。MySQL会给唯一约束的列上默认创建一个唯一索引。
添加唯一约束


删除约束

PRIMARY KEY 约束
- 主键约束相当于唯一约束+非空约束的组合,主 键约束列不允许重复,也不允许出现空值
- 如果是多列组合的主键约束,那么这些列都不允 许为空值,并且组合的值不允许重复。
- 每个表最多只允许一个主键,建立主键约束可以 在列级别创建,也可以在表级别上创建。
- MySQL的主键名总是PRIMARY,当创建主键约束 时,系统默认会在所在的列和列组合上建立对应的 唯一索引。
删除主键约束

添加主键约束

修改主键约束

FOREIGN KEY 约束
- 外键约束是保证一个或两个表之间的参照完整性, 外键是构建于一个表的两个字段或是两个表的两个字 段之间的参照关系。
- 从表的外键值必须在主表中能找到或者为空。当主 表的记录被从表参照时,主表的记录将不允许删除, 如果要删除数据,需要先删除从表中依赖该记录的数 据,然后才可以删除主表的数据。
- 还有一种就是级联删除子表数据。
- 注意:外键约束的参照列,在主表中引用的只能是 主键或唯一键约束的列
- 同一个表可以有多个外键约束
创建外键约束:

创建多列外键组合,必须使用表级约束:

删除外键约束:

增加外键约束:

分页
分页原理
所谓分页显示,就是将数据库中的结果集,一段一段显示 出来需要的条件
前10条记录:
SELECT * FROM table LIMIT 0,10;
第11至20条记录:
SELECT * FROM table LIMIT 10,10;
公式:
(当前页数-1)*每页条数,每页条数
SELECT * FROM table LIMIT(PageNo - 1)*PageSize,PageSize;
注:limit子句必须放在整个查询语句的最后!
mysql基础教程(三)-----增删改、子查询、创建管理表、约束和分页的更多相关文章
- 02 . Mysql基础操作及增删改查
SQL简介 SQL(Structured Query Language 即结构化查询语言) SQL语言主要用于存取数据.查询数据.更新数据和管理关系数据库系统,SQL语言由IBM开发. SQL语句四大 ...
- MySQL基础SQL命令---增删改查
1.表操作: create table tableName (id int(6) not null primary key auto_increatment,name varchar(10) not ...
- T-SQL基础(三)之子查询与表表达式
子查询 在嵌套查询中,最外面查询结果集返回给调用方,称为外部查询.嵌套在外部查询内的查询称为子查询,子查询的结果集供外部查询使用. 根据是否依赖外部查询,可将子查询分为自包含子查询和相关子查询.自包含 ...
- MySQL基础(四)(子查询与链接)
1.子查询简介 其中,所谓的“外层查询”并不是指“查找”,指的是所有SQL语句的统称:结构化查询语言(Structured Query Language),简称SQL. : 2.由比较运算符引发的子查 ...
- mysql python pymysql模块 增删改查 查询 fetchone
import pymysql mysql_host = '192.168.0.106' port = 3306 mysql_user = 'root' mysql_pwd = ' encoding = ...
- mysql python pymysql模块 增删改查 查询 字典游标显示
我们看到取得结果是一个元祖,但是不知道是哪个字段的,如果字段多的时候,就比较麻烦 ''' (1, 'mike', '123') (2, 'jack', '456') ''' 用字典显示查询的结果,也可 ...
- mysql python pymysql模块 增删改查 查询 fetchmany fetchall函数
查询的fetchmany fetchall函数 import pymysql mysql_host = '192.168.0.106' port = 3306 mysql_user = 'root' ...
- mysql基础操作 增删改查
如何使用终端操作数据库 如何登录数据库 mysql -u用户名 -p密码 比如: mysql -uroot -p123456 如何查询数据库服务器中所有的数据库 show databases; 如何选 ...
- Django框架表关系外键-多对多外键(增删改查)-正反向的概率-多表查询(子查询与联表查询)
目录 一:表关系外键 1.提前创建表关系 2.目前只剩 书籍表和 书籍作者表没创建信息. 3.增 4.删 5.修改 二:多对多外键增删改查 1.给书籍绑定作者 2.删 3.修改 4.清空 三:正反向的 ...
随机推荐
- python相关软件安装流程图解——linux 安装python3——Python-3.7.1
请先确保已经安装了虚拟机 python相关软件安装流程图解——虚拟机安装——CentOS-7-x86_64-DVD-1810——CentOS-01下载 https://www.cnblogs.com/ ...
- python编码(31-01)
以什么方式编码,就以什么方式解码! 第一种编码与解码方式: encode()编码 decode()解码 type()查看数据类型 repr()查看数据内容 s = '你好'print(type(s)) ...
- Java工具之NotePad++使用技巧
按住Alt键 拖动鼠标左键 批量添加 如,等 批量添加逗号, 下面, 竖排 变 横排 ctrl + f 使用正则表达式 \r\n 替换换行符 使用:sql语句中的 过滤条件 in中,往往适合范围查找 ...
- 使用maven搭建Hibernate
使用maven搭建Hibernate框架(web项目) create table USERS ( ID NUMBER not null primary key, NAME ), PASSWORD ), ...
- 小程序开发之wepy框架
ps 本教程使用wepy 1.7+以上的版本 wepy-让小程序支持组件化开发的框架 鹅厂出品,用于开发自家产品的框架还是很良心的,框架设计思路上参照vue,但不是全部照搬,这点要注意. 对微信小程序 ...
- C++开发系列-C语言的malloc与C++的new分配空间
概述 在软件开发过程中,常常需要动态地分配和撤销存储空间,例如对动态链表中结点的插入与删除.在C语言中是利用库函数malloc和free来分配和撤销内存空间的.C++提供了较简便而功能较强的运算符ne ...
- iOS开发系列-GCD
概述 GCD是苹果公司为多核的并行运算提出的解决方案.全称是Grand Central Dospatch.纯C语言,提供了非常多强大的函数. GCD自动管理线程的声明周期(创建线程.调度任务.销毁线程 ...
- Mapped Statements collection does not contain value for xxx.xxx 错误原因&解决方案
先贴出详细的报错信息 2019-11-05 10:10:00 [executor-1] ERROR [org.quartz.core.JobRunShell:225] - Job DEFAULT.ef ...
- BZOJ1597: [Usaco2008 Mar]土地购买——斜率优化
题目大意: 将$n$个长方形分成若干部分,每一部分的花费为部分中长方形的$max_长*max_宽$(不是$max_{长*宽}$),求最小花费 思路: 首先,可以被其他长方形包含的长方形可以删去 然后我 ...
- [转载]Emmet (ZenCoding) 缩写语法
Emmet 使用类似于 CSS 选择器的语法描述元素在生成的文档树中的位置及其属性. 元素 可以使用元素名(如 div 或者 p)来生成 HTML 标签.Emmet 没有预定义的有效元素名的集合,可以 ...