首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基础篇:数据库 SQL 入门教程

SQL 面向数据库执行查询 SQL 可从数据库取回数据 SQL 可在数据库插入新的记录 SQL 可更新数据库的数据 SQL 可从数据库删除记录 SQL 创建新数据库 SQL 可在数据库创建新表...这样做的目的是在不重复每个表的所有数据的情况下,把表间的数据交叉捆绑在一起。 如图,“Id_P” 是 Persons 表的的主键。这意味着没有两能够拥有相同的 Id_P。...JOIN: 如果表中有至少一个匹配,则返回 INNER JOIN: 内部连接,返回两表匹配的 LEFT JOIN: 即使右表没有匹配,也左表返回所有的 RIGHT JOIN: 即使左表没有匹配...语法: CREATE TABLE 表 ( int NOT NULL ); 如上,创建一个表,设置值不能为空。...VIEW – 视图 在 SQL ,视图是基于 SQL 语句的结果集的可视化的表。 视图包含,就像一个真实的表。视图中的字段就是来自一个或多个数据库的真实的表的字段。

8.9K10

❤️ 爆肝3天!两万字图文 SQL 零基础入门,不怕你学不会,就怕你不收藏!❤️

SQL 面向数据库执行查询 SQL 可从数据库取回数据 SQL 可在数据库插入新的记录 SQL 可更新数据库的数据 SQL 可从数据库删除记录 SQL 创建新数据库 SQL 可在数据库创建新表...DELETE – 删除数据 DELETE 语句用于删除。...JOIN: 如果表中有至少一个匹配,则返回 INNER JOIN: 内部连接,返回两表匹配的 LEFT JOIN: 即使右表没有匹配,也左表返回所有的 RIGHT JOIN: 即使左表没有匹配...语法: CREATE TABLE 表 ( int NOT NULL ); 如上,创建一个表,设置值不能为空。...VIEW – 视图 在 SQL ,视图是基于 SQL 语句的结果集的可视化的表。 视图包含,就像一个真实的表。视图中的字段就是来自一个或多个数据库的真实的表的字段。

8.3K10
您找到你想要的搜索结果了吗?
是的
没有找到

Google Cloud Spanner的实践经验

在外部一致性的保证下,即使Cloud Spanner的实例位于多个数据中心上运行,事务也能在高性能和高可用性的前提下按顺序执行。...ON DELETE CASCADE 声明表示,当父表的某一删除时,子表对应的也会被自动删除。如果没有该声明,或声明为ON DELETE NO ACTION,则必须先删除,才能删除。...表结构的更新 Cloud spanner支持对现有的数据库架构执行以下更新操作: 新建表。新表格可以为 NOT NULL删除一个表,前提是该表内没有交错其他表,并且没有二级索引。...将一个非主键添加到任何表,新的非主键能为 NOT NULL。 将 NOT NULL 添加到非主键,不包括 ARRAY 非主键移除 NOT NULL。...任何表删除非主键,前提是二级索引未在使用该。 将 STRING 更改为 BYTES ,或将 BYTES 更改为 STRING

1.4K10

2020最新版MySQL数据库面试题(二)

它对数据库数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。 什么是脏读?幻读?不可重复读?...但是,视图并不在数据库以储存的数据值形式存在。数据来自定义视图的查询所引用基本表,并且在具体引用视图时动态生成。...当用户试图修改视图的某些行时,数据库必须把它转化为对基本表的某些的修改。事实上,当视图中插入或者删除时,情况也是这样。...主键:数据库对储存数据对象予以唯一和完整标识的数据或属性的组合。一个数据只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。 外键:在一个表存在的另一个表的主键称此表的外键。...NOT NULL: 用于控制字段的内容一定不能为空(NULL)。 UNIQUE: 控件字段内容不能重复,一个表允许有多个 Unique 约束。

61621

2020最新版MySQL数据库面试题(二)

它对数据库数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。 什么是脏读?幻读?不可重复读?...但是,视图并不在数据库以储存的数据值形式存在。数据来自定义视图的查询所引用基本表,并且在具体引用视图时动态生成。...当用户试图修改视图的某些行时,数据库必须把它转化为对基本表的某些的修改。事实上,当视图中插入或者删除时,情况也是这样。...主键:数据库对储存数据对象予以唯一和完整标识的数据或属性的组合。一个数据只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。...外键:在一个表存在的另一个表的主键称此表的外键。 SQL 约束有哪几种? NOT NULL: 用于控制字段的内容一定不能为空(NULL)。

61820

MySQL 的约束和索引专题

约束 约束(constraint)管理如何插入或处理数据库数据的规则。 主键约束 表任意只要满足以下条件,都可以用于主键。 ❑ 任意两的主键值都不相同。...如果删除某一,其主键值不分配给新。 外键约束 外键是表的一,其值必须在另一表的主键。外键是保证引用完整性的极其重要部分。...例如,举例如果启用级联删除并且客户表删除某个顾客,则任何关联的订单行也会被自动删除。 唯一约束 唯一约束用来保证一(或一组的数据是唯一的。它们类似于主键,但存在以下重要区别。...❑ 表包含多个唯一约束,但每个表只允许一个主键。 ❑ 唯一约束包含 NULL 值。 ❑ 唯一约束修改或更新。 ❑ 唯一约束的值重复使用。...使用 ALTER 命令删除索引 主键作用于列上(可以一个多个联合主键),添加主键索引时,你需要确保该主键默认不为空(NOT NULL)。

1.5K30

面试必备(背)--MySQL 八股文系列!

主键索引:数据不允许重复,不能为NULL,一个表只能有一个主键索引 组合索引:由多个值组成的索引。...「MySQL的默认隔离级别是重复读。」数据库的隔离级别分别可以解决数据库的脏读、不可重复读、幻读等问题。 1....假设事务A对某些的内容作了更改,但是还未提交,此时事务B插入了与事务A更改前的记录相同的记录,并且在事务A提交之前先提交了,而这时,在事务A查询,会发现「好像刚刚的更改对于某些数据未起作用」,但其实是事务...简单来说,我们可以将数据的水平切分理解为是按照数据的切分,就是将表某些切分到一个数据库,而另外的某些又切分到其他的数据库,主要有分表,分库两种模式, 优点: 不存在单库大数据,高并发的性能瓶颈...drop delete truncate 速度 快 逐行删除,慢 较快 类型 DDL DML DDL 回滚 不可回滚 回滚 不可回滚 删除内容 删除整个表,数据、索引都会被删除 表结构还在,删除表的一部分或全部数据

5.3K12

重新学习Mysql数据库1:无废话MySQL入门

from 表名; -- 清空表记录 创建数据库表 使用 create table 语句完成对表的创建, create table 的常见形式: 语法:create table 表名称(声明);...='用户表信息'; 数据类型的属性解释 NULL:数据包含NULL值; NOT NULL:数据不允许包含NULL值; DEFAULT:默认值; PRIMARY:KEY...LEFT JOIN: 即使右表没有匹配,也左表返回所有的 RIGHT JOIN: 即使左表没有匹配,也右表返回所有的 FULL JOIN: 只要其中一个表存在匹配,就返回...; 删除 语法:alter table表名drop列名称; -- 删除表students的 birthday : alter table students drop birthday; 重命名表...workmates 表: drop table workmates; 删除整个数据库 语法:drop database数据库名; -- 删除 samp_db 数据库: drop database samp_db

1.2K30

2021-Java后端工程师面试指南-(MySQL)

而我们知道读写磁盘的速度非常慢,和内存读写差了几个数量级,所以当我们想从表获取某些记录时,InnoDB存储引擎需要一条一条的把记录磁盘上读出来么?...说说InnoDB格式是怎么样的 就是我们mysql里面一的数据,再innodb里面分为了2个部分 一个是我们原始的数据,真实的数据,也就是的值 还有一个额外的数据 一个是变长字段的列表,一个是NUll...count(字段),如果这个“字段”是定义为 not null 的话,一记录里面读出这个字段,判断不能为 null,按累加; count() ,并不会把全部字段取出来,而是专门做了优化,不取值...聊聊它的隔离级别吧 读未提交 会发生脏读 读已提交 会发生 不可重复重复读 会发生 幻读 串行化,没有问题 说说sping默认的事务传播级别 Spring事务的默认实现使用的是AOP,也就是代理的方式...,如果事务回滚,则放弃这个事务链 读已提交和重复读的MVcc的区别就是 再这个事务级别下,一个事务操作里面每次查询都会生成一个新的视图,更新自己最小事务id和最大事务id,然后重复读不会,它只会在事务开始的时候生成一个一致性视图

47520

mysql 知识总结

清空表数据DELETE,常规删除操作,可以回滚。TRUNCATE,属于 DDL 操作,不能回滚,速度快,自增标识会重置。约束主键约束:用来唯一标识一数据,不能重复,不能为空。...唯一约束:用来唯一标识一数据,不能重复,可以为空。自增长约束:1开始每次加1,和主键配合使用。外键约束:用来和其他表建立联系的字段,是另一表的主键,可以重复可以为空,可以有多个外键。...增加查询难度,当需要进行条件比较时需考虑NULL值,增加is not null判断条件。索引失效,null值在索引中被视为最小值,某些场景下可能出现索引失效。...不可重复读:一个事务内,一开始读取的数据和结束前任意时刻读取的同一批数据出现不一致。其他事务对某些的修改或删除。幻读:读到其他事务插入的数据。...级联复制部分库不连接主节点,而是连接节点复制。用于避免主从复制增加主节点负载。双主复制互为主从,相互复制。复杂容易出现不一致,不建议使用。多主一用于多源复制,即汇总多个不同库的数据到一个库

13510

这是我见过最有用的Mysql面试题,面试了无数公司总结的(内附答案)

数据仓库是指来自多个信息源的中央数据存储库。 这些数据经过整合,转换,可用于采矿和在线处理。 3.什么是数据库的表? 表是一种数据库对象,用于以保留数据的的形式将记录存储在并行。...使用唯一约束来确保字段/没有重复值。 39.什么是主键? 一个PRIMARY KEY 约束唯一标识数据库的记录。 参与主键约束的所有均不得包含NULL值。...NOT NULL约束用于确保字段的值不能为NULL 49.什么是CHECK约束? CHECK约束用于限制一或多接受的值。 例如,“年龄”字段应仅包含大于18的值。...因此,我们不能仅删除必需的 我们可以使用DELETE删除特定的 我们只能使用TRUNCATE一次删除所有 删除是DML命令 截断是DDL命令 删除维护日志,并且性能比截断慢 截断最大限度地减少日志并提高性能...这些函数用于将NULL值替换为另一个值。Oracle开发人员使用NVL函数,MySQL开发人员使用IFNULL函数,而SQL Server开发人员使用ISNULL函数。 假设某些值是NULL

27K20

MySQL(九)插入、更新和删除

一、insert insert:用来插入(或添加)数据库,常见方式有以下几种: ①插入完整的; ②插入行的一部分; ③插入多行; ④插入某些查询的结果; 1、插入完整的 例如:insert into...,则可以在insert操作中省略某些必须满足这两个条件(1.改定义为允许null值;2.在表定义给出默认值【如果不给出值,则使用默认值】); ③数据库多个用户访问,一般检索是最重要的,可以通过在...PS:insert select语句中,不一定要求列名匹配,实际上select的第一将用来填充表列中指定的第一;insert select语句中select语句包含where子句过滤插入的数据。...= '10086'; 三、删除数据 从一个表汇总删除数据,使用delete语句;有以下两种方式: ①删除特定; ②删除所有; 例如:delete from usertable where...PS:delete不需要列名或者通配符,delete删除整行而不是整列,为了删除指定的,可使用update语句(delete删除甚至表中所有,但不删除表本身);    如果想删除表中所有

2K20

数据库经典问题

在执行delete或update操作时,被删除激活触发器的表中被移动(move)到deleted表,这两个表不会有共同的。          ...在外连接某些不满条件的也会显示出来,也就是说,只限制其中一个表的,而不限制另一个表的。分左连接、右连接、全连接三种 6、视图 视图是数据库数据的特定子集。...可以禁止所有用户访问数据库表,而要求用户只能通过视图操作数据,这种方法可以保护用户和应用程序不受某些数据库修改的影响。2.视图是抽象的,他在使用时,表里提取出数据,形成虚的表。...第三,当对表的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。 索引是建立在数据库某些的上面。...这是一个非常重要的问题,但是使用重复读取并不是解决问题的唯一途径。 9、聚集索引与非聚集索引  聚簇索引是一种对磁盘上实际数据重新组织以按指定的一个或多个的值排序。

1K30

MySQL安装

SHOW DATABASES: 列出了MySQL数据库管理系统的所有访问的数据库。 SHOW TABLES: 显示已经选择数据库的表的命令。...这是因为新的被添加到表时,默认排在最后一。因此,即使 i 原来是 mytbl 的第一,但现在它是最后一。...现在,如果注销MySQL会话,然后发出SELECT命令,那么会发现在数据库没有可用的数据。即使是临时表也不存在了。 删除临时表 默认情况下,当数据库连接被终止,所有的临时表被MySQL删除。....在一般情况下,识别的集合值重复,执行以下步骤: 确定哪些包含重复值 列出这些选择列表,使用COUNT(*) 列出的也可以使用 GROUP BY 子句 添加一个HAVING...即使该表已经提供,可以使用此技术来删除重复的记录。

11.3K71

数据库MySQL-属性

1.3 属性 1.3.1 是否为空(null|not nullnull表示字段值可以为null not null字段值不能为空 练习 学员姓名允许为空吗?...auto_increment必须是主键,但是主键不一定是auto_increment 2、主键特点是不能重复能为空 3、一个表只能有一个主键,但是一个主键可以有多个字段组成 4、自动增长列通过插入null...truncate table删除数据后,再次插入1开始 练习 在主键输入的数值,允许为空吗? 不可以 一个表可以有多个主键吗?...不可以 在一个学校数据库,如果一个学校内允许重名的学员,但是一个班级内不允许学员重名,可以组合班级和姓名两个字段一起来作为主键吗? 对 标识(自动增长列)允许为字符数据类型吗?...不允许 一个自动增长列,插入3删除2,插入3删除2,插入3删除2,再次插入是多少?

3.1K30

【116期】MySQL索引优缺点、何时需要不需要创建索引、索引及sql语句的优化

索引是对数据库的一或多值进行排序的一种结构,使用索引可以快速访问数据库的特定信息。 二、索引的作用?...索引相当于图书上的目录,可以根据目录上的页码快速找到所需的内容,提高性能(查询速度) 三、优点: 通过创建唯一性索引,可以保证数据库的每一数据的唯一性。...注意某些数据包含大量重复数据,因此他建立索引就没有太大的效果,例如性别字段,只有男女,不适合建立索引。...13、建立索引的能为null,使用not null约束及默认值 14、利用延迟关联或者子查询优化超多分页场景,MySQL并不是跳过offset,而是取offset+N,然后放弃前offset,...15、业务上唯一特性的字段,即使多个字段的组合,也必须建成唯一索引。 16、超过三个表最好不要用join,需要join的字段,数据类型必须一致,多表关联查询时,保证被关联的字段需要有索引。

1.8K30

SQL,何必在忆之一(基础篇)

此列的值必须非空且唯一,主键在一个表只能有一个,但是可以有多个一起构成。...作为聚簇索引 not null :非空约束 值不能为空,也是表设计的规范,尽可能将所有的设置为非空。...:自增长 针对数字,顺序的自动填充数据(默认是1开始,将来可以设定起始点和偏移量) comment : 注释 sql_mode 作用:影响sql执行行为,规范SQL语句的书写方式(例如除数不能为0...数据控制语言(DCL):它的语句通过GRANT或REVOKE实现权限控制,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个的访问。...在数据库创建新表或修改、删除表(CREATE TABLE 或 DROP TABLE);为表加入索引等。

71940

MySQL索引详解(优缺点,何时需要不需要创建索引,索引及sql语句的优化)

索引是对数据库的一或多值进行排序的一种结构,使用索引可以快速访问数据库的特定信息。 二、索引的作用?...索引相当于图书上的目录,可以根据目录上的页码快速找到所需的内容,提高性能(查询速度) 三、优点: 通过创建唯一性索引,可以保证数据库的每一数据的唯一性。...注意某些数据包含大量重复数据,因此他建立索引就没有太大的效果,例如性别字段,只有男女,不适合建立索引。...13、建立索引的能为null,使用not null约束及默认值 14、利用延迟关联或者子查询优化超多分页场景, MySQL并不是跳过offset,而是取offset+N,然后放弃前offset...15、业务上唯一特性的字段,即使多个字段的组合,也必须建成唯一索引。 16、超过三个表最好不要用join, 需要join的字段,数据类型必须一致,多表关联查询时,保证被关联的字段需要有索引。

2.2K10

MySQL学习笔记汇总(四)——表的约束、存储引擎、事务

常见的约束有哪些: 非空约束(not null):约束的字段不能为NULL 唯一约束(unique):约束的字段不能重复 主键约束(primary key):约束的字段既不能为NULL,也不能重复...not null约束只有级约束。没有表级约束。...给两个或者多个添加unique drop table if exists t_user; create table t_user( id int, usercode varchar...读已提交存在的问题是:不可重复读。 第三级别:重复读(repeatable read) 这种隔离级别解决了:不可重复读问题。 这种隔离级别存在的问题是:读取到的数据是幻象。...mysql数据库默认的隔离级别是:重复读。 一起加油,一起努力,一起秃见成效

1.6K50

MySQL必知必会分页whereupdatelimit字符串截取order by排序ength和char_lengthreplace函数1 键2 数据库事务的ACID3 视图4 删除连接

一个数据只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。 联合主键 顾名思义就是多个主键联合形成一个主键组合(主键原则上是唯一的,别被唯一值所困扰。)...4 删除 drop直接删掉表 truncate删除数据,再插入时自增长id又从1开始 delete删除数据,可以加where字句 (1) DELETE 每次删除,并同时将该行的删除操作作为事务记录在日志中保存...,以便回滚 TRUNCATE TABLE 一次性地删除所有的数据,并不把单独的删除操作记录记入日志保存,删除是不能恢复的,在删除的过程不会激活与表有关的删除触发器。...DELETE 语句每次删除,并在事务日志为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志记录页的释放。...(10) TRUNCATE TABLE 删除的所有,但表结构及其、约束、索引等保持不变。新标识所用的计数值重置为该的种子。 如果想保留标识计数值,请改用 DELETE。

2.1K140
领券