mysql行级视图与列级视图_[数据库]--DML、DDL、TCL语言
DML语言(数据操作语言)
1.插入语句insert
语法1:
insert into 表名(列名...) values(值...)
注意:
1.插入的值的字段必须和值匹配
2.插入的值的类型必须和字段的数据类型一致
3.不可以为null(非空)的列必须插入值
可以为null的列如何插入数据信息
(1)给出列名并填写null值
(2)列名和值名都不写
4.列的顺序可以进行调换(数值顺序也要跟随列内容调换)
5.列数和值的个数一致与否
6.可以省略列名,默认所有列,
一定要注意插入信息列的顺序和表中的列的顺序一致
语法2:
insert into 表名 set 列名=值,......
两种写法的区别,第一种插入数据写法支持:
1.批量添加数据
2.支持子查询
2.修改语句update
修改表记录
(1)修改单表记录
对于单个或者多个列名都可以修改相应的值
语法:
update 表名
set 列名=值,列名=值...
where 筛选条件;
(2)修改多表记录
注意:表必须写别名
语法:
sql92标准:
update 表1 别名,表2 别名
set 列=值......
where 连表条件
and 筛选条件;
sql99标准:
update 表1 别名
inner/left/right 表2 别名
on 连表条件
set 列=值......
where 筛选条件;
3.删除语句delete、truncate
(1)delete:整行删除,一删一行
1.1单表删除
语法:
delete from 表名 where 筛选条件;
1.2多表删除
语法:
sql92标准:
delete 表1 别名,表2 别名
from 表名
where 连表条件
and 筛选条件;
sql99标准:
delete 表1 别名,表2 别名
from 表1 别名,
inner/left/right 表2 别名
on 连表条件
where 筛选条件;
(2)truncate:整表删除(清空整表)
语法:
TRUNCATE TABLE 表名;
delete和truncate的区别:
1.delete可以加where 筛选条件,truncate不能加
2.truncate删除的效率高
3.假如需要删除的表中有自增长列
如果用delete删除后,再插入数据,自增长列的值从断点开始。
用truncate删除后,再插入数据,自增长列的值从1开始
4.truncate删除没有返回值,delete删除有返回值
5.truncate删除不能回滚,delete删除能回滚
DDL语言(数据定义语言)
创建 create
修改 alter
删除 drop
1.库的管理
创建
CREATE DATABASE IF NOT EXISTS books;
修改库名
RENAME DATABASE 旧库名 TO 新库名;
修改库的字符集
ALTER DATABASE 库名 CHARACTER SET 字符集;
删除
DROP DATABASE 库名;
2.表的管理
创建
语法:
CREATE TABLE 表名(
列名 列的类型[(长度),约束]
列名 列的类型[(长度),约束]
列名 列的类型[(长度),约束]
......);
修改
(1)修改表名
ALTER TABLE 旧表名 RENAME TO 新表名;
(2)修改列名
ALTER TABLE 表名 CHANGE COLUMN 旧列名 新列名 列的类型;
(3)修改列的类型
ALTER TABLE 表名 MODIFY COLUMN 列名 新类型;
(4)添加新列add
ALTER TABLE 表名 ADD COLUMN 新列名 类型;
(5)删除列drop
ALTER TABLE 表名 DROP COLUMN 列名;
删除表
DROP TABLE IF EXISTS 表名;
复制
复制表的结构
CREATE TABLE copy LIKE 表名;
复制表的结构和数据
CREATE TABLE copy2 SELECT * FROM 表名;
复制表的部分数据
CREATE TABLE copy3 SELECT 字段1,字段2 FROM 表名 WHERE nation='中国';
复制表的部分字段
CREATE TABLE copy4 SELECT 字段1,字段2 FROM 表名 WHERE 1=2;
3.完整性约束:
3.1主键约束
表中有一列或者多列的组合,要求主键字段的数据的唯一性,并且不能为空。
单字段约束:
在定义字段的同时定义主键
字段名 数据类型 primary key
->字段名1 数据类型(字段约束条件) primary key,
在定义完字段后定义主键
primary key(字段名);
多字段约束:
primary key(字段名1,字段名2,...)
3.2主键自增约束:
每次插入新的信息时,系统会自动递增生成字段的主键值
在一个表上自动递增的字段只有一个
字段名 数据类型 primary key auto_increment;
3.3外键约束:
外键就是在不同的表之间建立链接,一个表可以有一个或者多个外键
外键不一定是本表的主键,但对应的是另一个表的主键
与外键关联的字段不允许被删除,如果必须要删除首先要将外键撤销
foreing key(字段名) reference 主表名(主键字段);
3.4非空约束:
字段值不能为空
字段名 数据类型 not null;
3.5唯一性约束:
对某字段使用此约束,允许为空,但是只出现一个空值
字段名 数据类型 unique;
4.约束
含义:一种限制,用来限制表中的数据,为了保证数据的可靠性和准确性
常见约束(六大约束)
NOT NULL:非空约束,用来保证该字段对应的值不能为空(姓名、学号)
DEFAULT:默认约束,用来保证该字段有默认值(性别)
PRIMARY KEY:主键约束,用来保证该字段的值具有唯一性,并且非空(员工编号),约束性最强
UNIQUE:唯一约束,保证该字段的值具有唯一性,对应的值能为空(座位号)
CHECK:检查约束,【mysql中不支持check约束】(性别) 约束性条件
FOREIGN KEY:外键约束,用来限制两个表的关系
要有保证两表连接的字段
用来保证该字段的值必须来自于主表的关联列
CREATE TABLE 表名(
字段名1 字段类型 列级约束
字段名2 字段类型 列级约束
表级约束
)
4.1添加约束的时机:
1.创建表时
2.修改表时
4.2约束的分类:
1.列级约束
支持六大约束,外键约束没有效果
2.表级约束
除了非空、默认约束以外其他都支持
4.3创建表时添加约束:
4.3.1列级约束:直接在字段名和类型后面追加约束类型
支持默认、非空、唯一、主键
4.3.2表级约束:在所有字段的最后面
CONSTRAINT 约束名 约束类型(字段名)
4.4修改表时添加约束:
4.4.1列级约束:
ALTER TABLE 表名 MODIFY COLUMN 字段 字段类型 新约束;
4.4.2表级约束:
ALTER TABLE 表名 ADD 新约束(字段);
4.5修改表时删除约束
4.5.1删除外键约束
ALTER TABLE 表名 DROP FOREIGN KEY 外键连接名;
5.标识列
含义:类似于约束的自增长列
可以不用手动插入值,系统提供默认的序列值
auto_increment_increment 每次增长的步长值
auto_increment_offset 偏移量(起始值)
特点:1.一个表里的标识列至多只有一个
2.标识列不一定和主键一起使用
标识列必须和约束一起使用
3.标识列可以进行数据设置
SET auto_increment_increment=步长值
添加标识列的时机:
1.创建表时
CREATE TABLE tab_indentity(
id INT PRIMARY KEY auto_increment,
NAME VARCHAR(20)
);
2.修改表时
ALTER TABLE 表名 MODIFY COLUMN 字段 约束 auto_increment;
3.修改表时删除标识列
ALTER TABLE 表名 DROP 约束 auto_increment;
TCL语言(事务控制语言)
1.事务:一个或者一组sql语句组成一个执行单元,这个执行单元
要么全部不执行,相互依赖
2.事务处理
数据库的存储引擎
回滚:事务执行失败,所有受到影响的数据将回到事物开始之前的状态
反之如果单元中的所有sql语句都执行成功,则事务被顺利执行
3.事务的特性ACID:
3.1原子性(Atomicity)
一个事物不可分割,执行单元要么全部执行,要么全部不执行
3.2一致性(Consistency)
一个事物会使数据从一个统一状态切换到另一个统一状态
3.3隔离性(Isolation)
事物之间的各自sql语句执行过程不受其他事物打扰
3.4持久性(Durability)
一个事物一旦提交,则会永久的改变数据库的数据
4.事物创建
检查事务提交的状态
4.1隐式事务的创建:事务没有明显的开启和结束的标记
insert update delete
4.2显式事务的创建:事务有明显的开启和结束的标记
1.注意,显式事务的创建之前必须禁用自动提交功能
SET autocommit=0;
2.开启事务
SET autocommit=1;
START TRANSACTION;(可选)
3.编写事务中sql语句(select insert update delete)
语句一;
语句二;
......
4.结束事务
Rollback;回滚
Commit;提交
Savepoint;设置节点保存
5.视图的讲解
含义:虚拟的表,和数据库中普通表一样使用
创建:
create view 视图名
as
查询语句;
删除:
DROP VIEW 视图名
本文地址:https://blog.csdn.net/qq_45207305/article/details/107419072
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!
mysql行级视图与列级视图_[数据库]--DML、DDL、TCL语言相关推荐
- MySQL表级约束和列级约束
MySQL中只要支持六种完整性约束,如表所示:其中check约束是MySQL8中提供的支持. 约束条件 约束描述 primary key 主键约束,约束的值可唯一的标识对应的记录 not null 非 ...
- 06_clickhouse、表和列的TTL规则与实践、表和列的TTL、列级TTL、表级TTL、列级TTL示例、表级TTL示例
3.表和列的TTL规则与实践 3.1.表和列的TTL 3.2.列级TTL 3.3.表级TTL 3.4.列级TTL示例 3.5.表级TTL示例 3.表和列的TTL规则与实践 3.1.表和列的TTL 定义 ...
- 五大列级庄_1855列级庄分级
葡萄酒的世界存在着很多分级制度,不同的国家和产区之间更是拥有着当地的分级制度.比如:格拉芙产区.圣凯美隆产区等.但是,在这些分级系统中不得不提的是大名鼎鼎的1855列级庄分级,大家所熟知五大庄:拉菲( ...
- mysql视图有哪几种_数据库报表的视图有几种?每种视图的功能是什么?
展开全部 1.关系视图:Oracle视图是作为数据库对象存在的,因此,创建之后也可62616964757a686964616fe4b893e5b19e31333433623732以通过工具或数据字典来 ...
- 行式存储和列式存储的数据库
定义 关系数据库采用的数据存储有两种方式:行式存储和列式存储(也被称为columnar或C-store) 行式存储 是按记录组织数据的数据库,将与记录相关联的所有数据彼此相邻地保存在内存中.面向行的数 ...
- mysql建立学号与课程编号的索引_数据库mysql 四约束 三范式 六索引
mysql 四约束 三范式 六索引 1.MySQL 约束 1.约束的作用 分类 表列的primary key主键,unique唯一键,not null非空等修饰符常常被称作约束(constraint) ...
- 五大列级庄_61列级名庄介绍
葡萄酒收藏是隐藏的尊贵.收藏佳年名酿,也汇集世界文化.葡萄酒标上的年份可以 是人生值得纪念的时刻, 也可以是历史事件的记录, 同时酒标上的年份还是葡萄酒本身历史 的记录.佳年名酿是藏酒家的最爱, 欣赏 ...
- sql 数据库前两列值乘_数据库的基本概念:
数据库的相关概念: 数据-data: 1.描述事物的符号 2.多种表现形式:文本,图形,音频,视频. 数据库-Database,DB 1.粮库,车库 2.存放数据的仓库在计算机中,按照一定的格式存放, ...
- mysql内连接和外连接的区别_数据库左连接、右连接、内连接、全连接区别
基本定义: left join (左连接):返回包括左表中的所有记录和右表中连接字段相等的记录. right join (右连接):返回包括右表中的所有记录和左表中连接字段相等的记录. inner j ...
最新文章
- LeetCode简单题之词典中最长的单词
- 亿级流量网关设计思路
- webpack 入口文件 php,webpack,jsx_webpack jsx 找不到入口文件,webpack,jsx - phpStudy
- 【web开发学习笔记】Structs2 Action学习笔记(一个)
- 嵌入式的坑在哪方面?
- 国内ios分亨组件,
- 啊!多么痛的领悟···
- 使用 IntraWeb (26) - 基本控件之 TIWMenu
- C#图片处理之:在图片上画直线
- 女孩必读:打死不能嫁的36种男人
- android avrcp处理流程,android 蓝牙avrcp功能的实现.doc
- 常见不等式考察(一)——Jensen不等式
- spring 动态代理如何决定使用jdk代理和cglib(网易面试题)
- HTML网页设计结课作业——基于HTML+CSS仿学校官网页面
- 计算机卷死,一位计算机教师死了,警方在床底发现一张纸,上面写着一些特殊的符号,这... #119615-推理漫画-侦探推理-33IQ...
- 《数学之美》读后感:看数学之美,悟技术之道
- Windows 11 已修复 AMD CPU 性能问题
- Android必知必会-长按返回健退出
- Spring注解开发学习笔记
- netcore在Linux后台运行at Interop.ThrowExceptionForIoErrno
热门文章
- java arrays.equals_Java Arrays类的常见使用
- 《关键对话》学习总结
- Mac的控制台命令无法使用command not found
- mysql 测试快生产慢_生产上MySQL慢查询优化实战,SQL优化实战
- 计算机d都学啥,信息学奥数基础知识D计算机的基本组成
- 画图怎么调整速度_初学者画图不流畅,线条毛躁生硬,而且手总抖怎么破?
- CAN 总线 之一 总线拓扑、物理电平、发展史 详解
- 内部排序选择、冒泡、插入、希尔、快速、归并、堆排序原理概要和实现
- wcf简单教程(10) ajax调用,wcf简单教程(10) ajax调用
- 网络安全 / crt、pem、pfx、cer、key 作用及区别