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语言相关推荐

  1. MySQL表级约束和列级约束

    MySQL中只要支持六种完整性约束,如表所示:其中check约束是MySQL8中提供的支持. 约束条件 约束描述 primary key 主键约束,约束的值可唯一的标识对应的记录 not null 非 ...

  2. 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 定义 ...

  3. 五大列级庄_1855列级庄分级

    葡萄酒的世界存在着很多分级制度,不同的国家和产区之间更是拥有着当地的分级制度.比如:格拉芙产区.圣凯美隆产区等.但是,在这些分级系统中不得不提的是大名鼎鼎的1855列级庄分级,大家所熟知五大庄:拉菲( ...

  4. mysql视图有哪几种_数据库报表的视图有几种?每种视图的功能是什么?

    展开全部 1.关系视图:Oracle视图是作为数据库对象存在的,因此,创建之后也可62616964757a686964616fe4b893e5b19e31333433623732以通过工具或数据字典来 ...

  5. 行式存储和列式存储的数据库

    定义 关系数据库采用的数据存储有两种方式:行式存储和列式存储(也被称为columnar或C-store) 行式存储 是按记录组织数据的数据库,将与记录相关联的所有数据彼此相邻地保存在内存中.面向行的数 ...

  6. mysql建立学号与课程编号的索引_数据库mysql 四约束 三范式 六索引

    mysql 四约束 三范式 六索引 1.MySQL 约束 1.约束的作用 分类 表列的primary key主键,unique唯一键,not null非空等修饰符常常被称作约束(constraint) ...

  7. 五大列级庄_61列级名庄介绍

    葡萄酒收藏是隐藏的尊贵.收藏佳年名酿,也汇集世界文化.葡萄酒标上的年份可以 是人生值得纪念的时刻, 也可以是历史事件的记录, 同时酒标上的年份还是葡萄酒本身历史 的记录.佳年名酿是藏酒家的最爱, 欣赏 ...

  8. sql 数据库前两列值乘_数据库的基本概念:

    数据库的相关概念: 数据-data: 1.描述事物的符号 2.多种表现形式:文本,图形,音频,视频. 数据库-Database,DB 1.粮库,车库 2.存放数据的仓库在计算机中,按照一定的格式存放, ...

  9. mysql内连接和外连接的区别_数据库左连接、右连接、内连接、全连接区别

    基本定义: left join (左连接):返回包括左表中的所有记录和右表中连接字段相等的记录. right join (右连接):返回包括右表中的所有记录和左表中连接字段相等的记录. inner j ...

最新文章

  1. LeetCode简单题之词典中最长的单词
  2. 亿级流量网关设计思路
  3. webpack 入口文件 php,webpack,jsx_webpack jsx 找不到入口文件,webpack,jsx - phpStudy
  4. 【web开发学习笔记】Structs2 Action学习笔记(一个)
  5. 嵌入式的坑在哪方面?
  6. 国内ios分亨组件,
  7. 啊!多么痛的领悟···
  8. 使用 IntraWeb (26) - 基本控件之 TIWMenu
  9. C#图片处理之:在图片上画直线
  10. 女孩必读:打死不能嫁的36种男人
  11. android avrcp处理流程,android 蓝牙avrcp功能的实现.doc
  12. 常见不等式考察(一)——Jensen不等式
  13. spring 动态代理如何决定使用jdk代理和cglib(网易面试题)
  14. HTML网页设计结课作业——基于HTML+CSS仿学校官网页面
  15. 计算机卷死,一位计算机教师死了,警方在床底发现一张纸,上面写着一些特殊的符号,这... #119615-推理漫画-侦探推理-33IQ...
  16. 《数学之美》读后感:看数学之美,悟技术之道
  17. Windows 11 已修复 AMD CPU 性能问题
  18. Android必知必会-长按返回健退出
  19. Spring注解开发学习笔记
  20. netcore在Linux后台运行at Interop.ThrowExceptionForIoErrno

热门文章

  1. java arrays.equals_Java Arrays类的常见使用
  2. 《关键对话》学习总结
  3. Mac的控制台命令无法使用command not found
  4. mysql 测试快生产慢_生产上MySQL慢查询优化实战,SQL优化实战
  5. 计算机d都学啥,信息学奥数基础知识D计算机的基本组成
  6. 画图怎么调整速度_初学者画图不流畅,线条毛躁生硬,而且手总抖怎么破?
  7. CAN 总线 之一 总线拓扑、物理电平、发展史 详解
  8. 内部排序选择、冒泡、插入、希尔、快速、归并、堆排序原理概要和实现
  9. wcf简单教程(10) ajax调用,wcf简单教程(10) ajax调用
  10. 网络安全 / crt、pem、pfx、cer、key 作用及区别