mysql中数据定义和数据控制语言_DB-数据操控与定义语言
数据操控语言
数据操控语言主要用于对表中数据的增删改。使用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-数据操控与定义语言相关推荐
- Mysql中查询连续一段时间内统计数据
Mysql中查询连续一段时间内统计数据 在一次生产环境中遇到统计当前日期的前10天每天的订单量,一开始想到的就是根据日期进行分组统计,但在查询的时候会存在一个问题:有可能某一天没有订单交易,日期分组中 ...
- mysql中值换行显示为乱码_MySQL数据移植中的乱码问题
mysql移植含有中文的数据时,很容易出现乱码问题.很多是在从mysql4.x向mysql5.x移植的时候出现.mysql的缺省字符集是latin1,在使用mysql4.x的时候,很多人都是用的lat ...
- 数据库mysql中对于drop_数据库之删除表数据drop、truncate和delete的用法
数据库中删除表数据的关键字,最常用的可能就是delete了,另外其实还有drop和truncate两个关键字. 老大:drop 命令格式:drop table tb ---tb表示数据表的名字,下 ...
- MySql 中 一次update更新多条数据
我最近遇到一个导入Excel表中数据到数据库的需求,数据量一万多条.需先查询数据库中是否存在要插入的数据,若存在则更新数据,否则插入数据.我首先按照常规思路先查询,然后插入或更新.然而nginx返回 ...
- MySQL中一个B+树能存储多少数据
MySQL聚簇索引的存储结构 MySQL中InnoDB页的大小默认是16k.也可以自己进行设置.(计算机在存储数据的时候,最小存储单元是扇区,一个扇区的大小是 512 字节,而文件系统(例如 XFS/ ...
- MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原
大数据量备份与还原,始终是个难点.当MYSQL超10G,用mysqldump来导出就比较慢了.在这里推荐xtrabackup,这个工具比mysqldump要快很多. 本文还参考了:http://blo ...
- mysql中的判断是否有该条数据 如果有返回1 没有返回0
SELECT IF(pic IS NOT NULL,1,0) AS a FROM items 这样最终返回的是一个表 pic 是items表中的字段 a 是起的别名 items 是表名 如果不需要返回 ...
- mysql 用set插入数据_在MySQL中使用SET子句插入多个数据?
让我们首先创建一个表-mysql> create table DemoTable1544 -> ( -> Id int , -> Name varchar(20) -> ...
- mysql筛选不重复数据库_mysql的distinct用法-mysql中如何筛选出非重复的数据
使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一 条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所 ...
最新文章
- JDK, JRE和JVM的区别与联系
- GIS软件开发工具包TatukGIS Developer Kernel 发布 v11.3.0-Unstable1丨附下载
- APP时代,市场选择是个技术活
- MSN8.0?!O My God,it's so perfect!
- oracle选择语言设置,oracle本地语言变量设置
- Centos7上使用官方YUM源安装Mysql
- 【darknet速成】Darknet图像分类从模型自定义到测试
- LNK1000: Internal error during IncrBuildImage 链接错误解决方法
- Entity Framework Core的贴心:优雅处理带默认值的数据库字段
- 互联网晚报 | 1月11日 星期二 | 恒大集团退租深圳总部大楼;荣耀发布首款折叠旗舰手机;虎牙拿下5年LPL独播权...
- 信息学奥赛一本通 1009:带余除法 | OpenJudge NOI 1.3 04
- 【AI视野·今日NLP 自然语言处理论文速览 第八期】Wed, 16 Jun 2021
- [转帖]java必备的开发知识和技能
- java单元测试模拟输入_java – 单元测试:在定义模拟行为后调用...
- python中print的本质_Python之路---函数进阶??
- 管理感悟:开会为什么坐到后面
- mysql 检查配置_MYSQL 配置检查脚本
- 【Monogdb】MongoDB之十大应用设计技巧
- 黑马程序员--IO总结(含2个设计模式)
- 如何解决请将磁盘插入U盘(F)的情况