插入

INSERT语句语法

从其它表中拷贝数据

• 不必书写 VALUES 子句。

• 子查询中的值列表应与 INSERT 子句中的列名对应

update语句

• 可以一次更新多条数据。

• 如果需要回滚数据,需要保证在DML前,进行 设置:

  1. SET AUTOCOMMIT = FALSE;

因为mysql中默认事务是自动提交的。

delete语句

子查询

概念

出现在其他语句内部的select语句,称为子查询或内查询内部嵌套其他select语句的查询,称为外查询或主查询。

  1. select first_name from employees where
  2. department_id in(
  3.   select department_id from departments
  4.   where location_id=1700
  5. )

创建数据库

创建一个保存员工信息的数据库 :

  1. create database employees;

相关其他命令

  1. create database employees if not exists;
  1. show databases;查看当前所有数据库
  1. use employees;“使用”一个数据库,使其作为当前数据库

创建表

• 必须具备:

  – CREATE TABLE权限

  – 存储空间

• 必须指定:

  – 表名

  – 列名, 数据类型, 尺寸

语法

注:创建表这种更加合理

  1. create table if not exists tableName...

数据类型

概述

mysql数据类型分为

  • 数值类型
  • 字符类型
  • 日期类型

数值类型

整型

小数

位类型

字符类型

char和varchar类型

binary和varbinary类型

说明:类似于char和varchar,不同的是它们包含二进制字符串而不包含非二 进制字符串。

Enum类型

说明:又称为枚举类型哦,要求插入的值必须属于列表中指定的值之一。

Set类型

说明:和Enum类型类似,里面可以保存0~64个成员。和Enum类型最大的区 别是:SET类型一次可以选取多个成员,而Enum只能选一个 根据成员个数不同,存储所占的字节也不同

日期类型

常用数据类型

创建表示例

ALTER TABLE 语句

  • 向已有的表中添加列
  • 修改现有表中的列
  • 删除现有表中的列
  • 重命名现有表中的列

增加一个列

  1. ALTER TABLE dept80 ADD job_id varchar(15);

修改一个列

• 可以修改列的数据类型, 尺寸和默认值

• 对默认值的修改只影响今后对表的修改

删除一个列

重命名一个列

总结:alter table 表名 add|drop|modify|change column 列名 【列类型 约束】

删除表

  • 数据和结构都被删除
  • 所有正在运行的相关事务被提交
  • 所有相关索引被删除
  • DROP TABLE 语句不能回滚

注:删除用下面这种相对更为合理

  1. 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条记录:

  1. SELECT * FROM table LIMIT 0,10;

第11至20条记录:

  1. SELECT * FROM table LIMIT 10,10;

公式:

(当前页数-1)*每页条数,每页条数

  1. SELECT * FROM table LIMIT(PageNo - 1)*PageSize,PageSize;

注:limit子句必须放在整个查询语句的最后!

mysql基础教程(三)-----增删改、子查询、创建管理表、约束和分页的更多相关文章

  1. 02 . Mysql基础操作及增删改查

    SQL简介 SQL(Structured Query Language 即结构化查询语言) SQL语言主要用于存取数据.查询数据.更新数据和管理关系数据库系统,SQL语言由IBM开发. SQL语句四大 ...

  2. MySQL基础SQL命令---增删改查

    1.表操作: create table tableName (id int(6) not null primary key auto_increatment,name varchar(10) not ...

  3. T-SQL基础(三)之子查询与表表达式

    子查询 在嵌套查询中,最外面查询结果集返回给调用方,称为外部查询.嵌套在外部查询内的查询称为子查询,子查询的结果集供外部查询使用. 根据是否依赖外部查询,可将子查询分为自包含子查询和相关子查询.自包含 ...

  4. MySQL基础(四)(子查询与链接)

    1.子查询简介 其中,所谓的“外层查询”并不是指“查找”,指的是所有SQL语句的统称:结构化查询语言(Structured Query Language),简称SQL. : 2.由比较运算符引发的子查 ...

  5. mysql python pymysql模块 增删改查 查询 fetchone

    import pymysql mysql_host = '192.168.0.106' port = 3306 mysql_user = 'root' mysql_pwd = ' encoding = ...

  6. mysql python pymysql模块 增删改查 查询 字典游标显示

    我们看到取得结果是一个元祖,但是不知道是哪个字段的,如果字段多的时候,就比较麻烦 ''' (1, 'mike', '123') (2, 'jack', '456') ''' 用字典显示查询的结果,也可 ...

  7. mysql python pymysql模块 增删改查 查询 fetchmany fetchall函数

    查询的fetchmany fetchall函数 import pymysql mysql_host = '192.168.0.106' port = 3306 mysql_user = 'root' ...

  8. mysql基础操作 增删改查

    如何使用终端操作数据库 如何登录数据库 mysql -u用户名 -p密码 比如: mysql -uroot -p123456 如何查询数据库服务器中所有的数据库 show databases; 如何选 ...

  9. Django框架表关系外键-多对多外键(增删改查)-正反向的概率-多表查询(子查询与联表查询)

    目录 一:表关系外键 1.提前创建表关系 2.目前只剩 书籍表和 书籍作者表没创建信息. 3.增 4.删 5.修改 二:多对多外键增删改查 1.给书籍绑定作者 2.删 3.修改 4.清空 三:正反向的 ...

随机推荐

  1. python使用PIL处理图片后返回给前端的坑

    一.python代码 这里有个坑,之前没有将bytes图片数据转成base64就返回到前端了,但在前端处理的时候,怎么都显示不出图片来,虽然数据拿到了,但bytes被传到前后变str了,所以怎么搞都没 ...

  2. manacher/马拉车常用用法一览

    因为manacher算法把原来的字符串扩大了两倍,因此在应用时许多二级结论都非常不直观,现场推出来很麻烦,因此笔者在此做个简单整理,如果发现有错误或者有常用的我没有涉及到的,恳请在下方评论区指出,我会 ...

  3. pickle,shelve,json,configparser 的模块使用

    主要内容1. 什么是序列化2. pickle3. shelve4. json5. configparser模块 一. 什么是序列化在我们存储数据或者网络传输数据的时候. 需要对我们的对象进行处理. 把 ...

  4. layui之input里格式验证

    form.verify({          title: function(value){            if(value.length < 5){              retu ...

  5. 论文阅读-(ECCV 2018) Second-order Democratic Aggregation

    本文是Tsung-Yu Lin大神所作(B-CNN一作),主要是探究了一种无序的池化方法\(\gamma\) -democratic aggregators,可以最小化干扰信息或者对二阶特征的内容均等 ...

  6. 一个很笨的方法,写脚本来实现自动调dmp,找有用的数据

    很久很久以前用到的方法, 方法挺笨的,但是算是比较实用吧. 全自动的调试dmp,最后只要结果. 谁用得着就给谁看吧. 这里需要两个脚本 1:启动脚本,是一个批处理文件,用来启动调试器,来加载dmp和调 ...

  7. 13-7-return的高级使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. html--图片背景兼容,兼容IE6

    在IE6中对图片格式png24支持度不高, 如果使用的图片格式是png24,则会导致透明效果无法正常显示 解决方法: 1.可以使用png8来代替png24,即可解决问题, 但是使用png8代替png2 ...

  9. Linux命令查看文件内容

    cat:一次性顺序显示文件所有内容和 cat filename tac:一次性倒序显示文件所有内容和 tac filename head:显示文件开头的若干行内容 head -n filename t ...

  10. python中的多线程编程与暂停、播放音频的结合

    先给两个原文链接: https://blog.csdn.net/u013755307/article/details/19913655 https://www.cnblogs.com/scolia/p ...