数据操控语言

数据操控语言主要用于对表中数据的增删改。使用insert可对表进行插入数据,update可修改表中的数据或结构,delete则可进行删除。

首先看一下我们在何表中操作:

1,insert

插入单行数据可使用:insert into 表名(字段名1,字段名2 ,...)values (值1,值2,...)

——要注意这里的字段名顺序要和值的顺序一一对应。同时若某字段类型可为空,则可忽略填写该字段。

插入多行数据可使用:insert into 表名 values (值1,值2,...),(值1,值2,...),(值1,值2,...)

——如若省略填写目标字段列表则会默认为填写所有字段。所以输入数据时,所有字段对应的数据都需要输入。

例:插入Fallulah的信息INSERT INTO beauty(NAME,phone)

VALUES('Fallulah',888888);

#其他为空的或自增的可以不填

例:插入Sirsa Shekim的信息INSERT INTO beauty VALUES

(NULL,'Sirsa Shekim',NULL,NOW(),666666,NULL,NULL);

个人觉得还是指定字段名好用一点。

2,update

语法:update 表名 set 字段名1=新值、字段名2=新值、... where 筛选条件

——注意如若不加条件则会进行整表的修改。

例:将Sirsa Shekim的电话改成868686UPDATE beauty SET phone=868686

WHERE NAME LIKE 'Sirsa Shekim';

3,delete

语法:delete from 表名 where 筛选条件;

——自增列从断点开始,有返回值,可回滚,支持在多表中删除。truncate table 表名;

——自增列从1开始,无返回值,不可回滚。

自增列及回滚后续会介绍。DELETE be FROM beauty be

LEFT JOIN boys b

ON be.`boyfriend_id`=b.`id`

WHERE b.`id` IS NULL;

#delete后面跟着要删除表的别名

数据定义语言

数据定义语言则一般用于对表或数据库的处理。可使用create创建表或数据库,alter修改表或数据库,而drop则可进行删除。

对于数据库create database [if not exists] 库名;——创建数据库

alter database 库名 character set 字符集;——修改数据库的字符集

drop database [if exists] 库名;——删除数据库

对于数据库的操作较为单一。

数据类型

在学习对表的操作前,我们先来了解一下这几种数据类型。

1,数值型整型——int

浮点型——float(m,n)

定点型——dec(m,n)较浮点型其精度较高

——m 表示整数部加小数部的总长,n 表示小数后的位数

这里只提供了几种常用型,其它的字节呀,无符号呀什么的大家可自行查阅。

2,字符型char——给了固定空间。

varchar——无固定大小,需指定,效率较高。

3,日期型date(4字节)

datetime(8字节)——对时区的变化不是很敏感。

timestamp(4字节)——对时区的变化较敏感。

对于表

1,创建表

语法:create table [IF NOT EXISTS] 表名 (字段名1 字段类型 【字段约束】、字段名2 ...)

字段约束下面会介绍。

2,修改表

语法:alter table 表名(修改表名) rename to 新表名

(修改字段名)change column 旧名+新名+类型

(修改字段类型)modify column 字段名+新类型

(增加字段)add column 字段名+类型

(删除字段)drop column 字段名

这里的column有时可以省略。

3,删除表

语法:drop table 表名

4,表的复制

语法:create table 新表 like 旧表——只复制了结构。

create table 新表 select * from 旧表——复制了结构和数据。

常见的字段约束NOT NULL——非空,必须填入数据

DEFAULT——设置默认值

UNIQUE——数据呈唯一性,可为空

PRIMARY KEY——主键

FOREIGN KEY——外键

主键的数据呈唯一性,不可为空。且每张表中只能有一个,但可联合。

外键中从表的数据需来自其关联主表。且其外键列需与主表的关联列类型一致。因数据来源问题,所以要先插入主表数据再插入从表的。删除也是同样的,但也有非常规的方法,即集联删除或集联制空。集联删除——在外键后加 on delete cascabe 则删主表时,从表会一起被删。

集联制空——在外键后加 on delete set null 则删主表时,从表中相关联的数据会变为NULL。

如何使用字段约束

对于字段约束,我们可以分为两大类,这样在使用时思路能清晰一些。

1,列级约束

对于非空、默认、唯一、主键在创建表时,可直接在字段名和类型后面追加约束。(如上面介绍般)

或者利用modify进行添加或修改。(如上面介绍般)

2,表级约束

对于唯一、主键、外键在创建表时,可跟在所有描述完的字段的最下层。

——【constraint 约束名】 约束类型(字段名)或者利用add添加或修改。ALTER TABLE beauty ADD

CONSTRAINT fy FOREIGN KEY (boyfriend_id) REFERENCES boys(id);删除时则可用drop(跟于alter后)

自增长列

AUTO_INCREMENT在创建表时,添于约束后即可。

起始值为1,步长为1,步长可修改。

一个表最多一个标识列,且需为数值型(一般为标识序号)。

——通过修改auto_increment_increment可调整步长。参考资料:李玉婷.MYSQL基础教程.B站资源

封面插图:Ricardo Polo.B圈设计师

本文作者: © 高小一

联系小编:

GXTXG@outlook.com

本文链接:

http://adolesce.cn/archives/15.html

版权声明:本文为博主原创文章,遵循

CC 4.0 BY-SA

版权协议,转载请附上原文出处链接和本声明。

mysql中数据定义和数据控制语言_DB-数据操控与定义语言相关推荐

  1. Mysql中查询连续一段时间内统计数据

    Mysql中查询连续一段时间内统计数据 在一次生产环境中遇到统计当前日期的前10天每天的订单量,一开始想到的就是根据日期进行分组统计,但在查询的时候会存在一个问题:有可能某一天没有订单交易,日期分组中 ...

  2. mysql中值换行显示为乱码_MySQL数据移植中的乱码问题

    mysql移植含有中文的数据时,很容易出现乱码问题.很多是在从mysql4.x向mysql5.x移植的时候出现.mysql的缺省字符集是latin1,在使用mysql4.x的时候,很多人都是用的lat ...

  3. 数据库mysql中对于drop_数据库之删除表数据drop、truncate和delete的用法

    数据库中删除表数据的关键字,最常用的可能就是delete了,另外其实还有drop和truncate两个关键字. 老大:drop 命令格式:drop table  tb  ---tb表示数据表的名字,下 ...

  4. MySql 中 一次update更新多条数据

    我最近遇到一个导入Excel表中数据到数据库的需求,数据量一万多条.需先查询数据库中是否存在要插入的数据,若存在则更新数据,否则插入数据.我首先按照常规思路先查询,然后插入或更新.然而nginx返回 ...

  5. MySQL中一个B+树能存储多少数据

    MySQL聚簇索引的存储结构 MySQL中InnoDB页的大小默认是16k.也可以自己进行设置.(计算机在存储数据的时候,最小存储单元是扇区,一个扇区的大小是 512 字节,而文件系统(例如 XFS/ ...

  6. MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原

    大数据量备份与还原,始终是个难点.当MYSQL超10G,用mysqldump来导出就比较慢了.在这里推荐xtrabackup,这个工具比mysqldump要快很多. 本文还参考了:http://blo ...

  7. mysql中的判断是否有该条数据 如果有返回1 没有返回0

    SELECT IF(pic IS NOT NULL,1,0) AS a FROM items 这样最终返回的是一个表 pic 是items表中的字段 a 是起的别名 items 是表名 如果不需要返回 ...

  8. mysql 用set插入数据_在MySQL中使用SET子句插入多个数据?

    让我们首先创建一个表-mysql> create table DemoTable1544 -> ( -> Id int , -> Name varchar(20) ->  ...

  9. mysql筛选不重复数据库_mysql的distinct用法-mysql中如何筛选出非重复的数据

    使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一 条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所 ...

最新文章

  1. JDK, JRE和JVM的区别与联系
  2. GIS软件开发工具包TatukGIS Developer Kernel 发布 v11.3.0-Unstable1丨附下载
  3. APP时代,市场选择是个技术活
  4. MSN8.0?!O My God,it's so perfect!
  5. oracle选择语言设置,oracle本地语言变量设置
  6. Centos7上使用官方YUM源安装Mysql
  7. 【darknet速成】Darknet图像分类从模型自定义到测试
  8. LNK1000: Internal error during IncrBuildImage 链接错误解决方法
  9. Entity Framework Core的贴心:优雅处理带默认值的数据库字段
  10. 互联网晚报 | 1月11日 星期二 | 恒大集团退租深圳总部大楼;荣耀发布首款折叠旗舰手机;虎牙拿下5年LPL独播权...
  11. 信息学奥赛一本通 1009:带余除法 | OpenJudge NOI 1.3 04
  12. 【AI视野·今日NLP 自然语言处理论文速览 第八期】Wed, 16 Jun 2021
  13. [转帖]java必备的开发知识和技能
  14. java单元测试模拟输入_java – 单元测试:在定义模拟行为后调用...
  15. python中print的本质_Python之路---函数进阶??
  16. 管理感悟:开会为什么坐到后面
  17. mysql 检查配置_MYSQL 配置检查脚本
  18. 【Monogdb】MongoDB之十大应用设计技巧
  19. 黑马程序员--IO总结(含2个设计模式)
  20. 如何解决请将磁盘插入U盘(F)的情况

热门文章

  1. Escape字符总结
  2. ie浏览器里面无法输入文字:
  3. X Window概述
  4. 应用安全与微软SDL-IT流程
  5. ABAP程序打印Spool Request到PDF
  6. SAP销售订单-订单组合
  7. 从IT人士到IT经理倪应该学会的30 项技能
  8. ABAP Range
  9. SAP SHD0的详细简介
  10. SAP FI新手常用代码