趁着假期学习总结下~ sql简介 sql可以查询、从数据库取出数据、插入、更新、删除、创建新的数据库、创建新表、创建存储过程、创建视图、设置表视图和存储过程的权限。...语法: SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern 其中,通过NOT关键字,也可以反向匹配。...SQL INNER JOIN关键字 在表中至少有一个匹配时,INNER JOIN关键字返回行。 SQL LEFT JOIN关键字 LEFT JOIN会从左表那里返回所有行,即使在右表中没有匹配的行。...如果那些行没有匹配,同样会列出。...SQL VIEW 视图是基于SQL语句的结果集的可视化的表。
数据定义语言(DDL)关键字CREATE:用于创建新的数据库对象。ALTER:用于修改现有数据库对象的结构。DROP:用于删除数据库对象。TRUNCATE:用于快速删除表中的所有行,但保留表结构。...数据控制语言(DCL)关键字GRANT:用于授予用户权限。REVOKE:用于撤销用户的权限。事务控制关键字START TRANSACTION:开始一个新的事务。COMMIT:提交当前事务。...CHECK:检查约束,用于限制列的值满足特定条件。INDEX:创建索引以优化查询性能。聚合函数关键字SUM:返回数值列的总和。COUNT:返回行数或非空值的数量。MAX:返回数值列的最大值。...MIN:返回数值列的最小值。AVG:返回数值列的平均值。字符串函数关键字LIKE:用于模式匹配。REGEXP 或 RLIKE:用于正则表达式匹配。CONCAT:用于连接字符串。...NOT NULL:确保列不是 NULL。AUTO_INCREMENT:自动为新行生成唯一的数字。DEFAULT:定义列的默认值。LIMIT:用于限制查询结果的数量。
创建表的语法形式 SQL CREATE TABLE ( 字段名1 数据类型 [列级别约束条件] [默认值], 字段名2 数据类型 [列级别约束条件] [默认值], …… [表级别约束条件] )...ALTER TABLE CHANGE 新数据类型>; 添加字段 ALTER TABLE ADD 新数据类型> [约束条件] [FIRST...同样,在BETWEEN AND关键字前面加上 NOT即可使得查询的结果正好相反。 带 LIKE的字符匹配查询 LIKE关键字即是使用通配符来进行匹配查找。...带 ANY、SOME关键字的子查询 ANY和 SOME关键字是同义词,表示满足其中任一条件,它们允许创建一个表达式对子查询的返回值列表进行比较,只要满足内层子查询中的任何一个比较条件,就返回一个结果作为外层查询的条件...为表和字段取别名 为表取别名 表名 [AS] 表别名 为字段取别名 列名 [AS] 列别名 使用正则表达式查询 MYSQL中使用 REGEXP关键字指定正则表达式的字符匹配模式。
SQL学习笔记 基础部分 SQL语法 数据库语言对大小写不敏感,用分号分隔每条数据库语言 SQL通用数据类型 SQL开发,在创建SQL表时要确定每个列要存储的数据类型,每一列都需要一个列名和确定的数据类型...用于对结果集按照一个列或多个列进行排序,默认按升序排序,若要用降序,可以使用desc关键字 select column_name,column_name from table_name order...#会形成新行,但只在指定列插入数据,custormid列会自动更新 SQL update语句 用于更新表中的数据 update table_name set column1=value1,column2...JOIN:只要其中一个表中存在匹配,则返回行 SQL union 合并两个或多个select语句的结果 UNION 内部的每个 SELECT 语句必须拥有相同数量的列。...Country) SELECT SupplierName, Country FROM Suppliers WHERE Country='Germany'; 两者的区别在于select into复制后创建一个新表
MySQL官方只提供了三种join方式,内连接、左连接和右连接,不支持其他的连接关键字。但是可以通过一定的语法将达到其他的连接的效果。...INNER JOIN通过结合基于联接谓词两个表(表1和表2)列值创建一个新的结果表。查询比较表1中的每一行与表2中的每一行,找到所有满足联接谓词的行。...当联接谓词被满足时,对于每个匹配的一对A和B的列值被组合成一个结果行。...这意味着,如果在ON子句在右边的表匹配0(零)个记录,则连接将仍然在结果返回一行,但用NULL显示在右表中的每一列中。...这意味着,如果ON子句匹配左表0(零)记录, 连接仍返回一行结果,但用NULL代替左表中的每一列。
MySQL官方只提供了三种join方式,内连接、左连接和右连接,不支持其他的连接关键字。但是可以通过一定的语法将达到其他的连接的效果。...INNER JOIN通过结合基于联接谓词两个表(表1和表2)列值创建一个新的结果表。查询比较表1中的每一行与表2中的每一行,找到所有满足联接谓词的行。...当联接谓词被满足时,对于每个匹配的一对A和B的列值被组合成一个结果行。...这意味着,如果在ON子句在右边的表匹配0(零)个记录,则连接将仍然在结果返回一行,但用NULL显示在右表中的每一列中。...右外连接 right join SQL RIGHT JOIN返回右表所有行,即使在左表中没有匹配。这意味着,如果ON子句匹配左表0(零)记录, 连接仍返回一行结果,但用NULL代替左表中的每一列。
也就是说,SOAP消息的中的XML与WSDL中给出的模式完全匹配。 encoded 编码—默认情况下,此类中的web method使用SOAP编码的数据。...创建新的数据类型类时,请使用与正在创建的数据类型最匹配的SQL类别值,或者,更好的做法是,将现有数据类型类子类化并继承其SQL类别。对子类的影响这个关键字是从主超类继承的。子类可以覆盖关键字的值。...详解此关键字覆盖用于ID列的默认SQL字段名。当一个持久化类被投影为一个SQL表时,每个对象的Object Identity值被投影为一个SQL列——Row ID列。...SqlRowIdPrivate关键字允许指定是否应该对ODBC和基于jdbc的查询“隐藏”这个Row ID列。 如果行ID列被隐藏:它不会被各种目录查询报告为列它不包含在SELECT *查询中。...通常,在处理遗留关系数据并且不希望报告工具看到Row ID列的情况下,使用此关键字。对子类的影响此关键字不是继承的。默认如果省略此关键字,当表被投影到ODBC和JDBC时,ID列通常是可见的。
考虑这个场景:你正在增加一个新订单。这要求在 orders 表中创建一行,然后在 orderitems 表中对订购的每项物品创建一行。...默认值在 CREATE TABLE 语句的列定义中用关键字 DEFAULT 指定。...可以使用下面的语句对多个表重命名: RENAME table table1表名 TO 新表名1, table2表名 TO 新表名2, table3表名 TO 新表名3; 查看指定表的创建语句 SHOW...CREATE TABLE 表名; 修改表字段 ALERT table 表名 ADD 列名 列类型; // 添加新列 ALERT table 表名 DROP COLUMN 列名; // 删除列 ALERT...table 表名 MODIFY 列名 列类型; // 仅修改列类型 ALERT table 表名 CHANGE 原列名 新表名 新类型 // 修改列类型及名称 FIRST 和 AFTER 关键字可用于
; 修改列 ALTER TABLE table_name MODIFY COLUMN column_name datatype; INDEX 创建索引 CREATE INDEX 语句用于在表中创建索引。...创建视图 CREATE VIEW 语句用于创建视图。...INSERT INSERT INTO 语句用于向表中插入新记录。...AND & OR AND & OR 运算符用于基于一个以上的条件对记录进行过滤。...charlist] 不在字符列中的任何单一字符 ORDER BY ORDER BY 关键字用于对结果集进行排序。
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。...INNER JOIN 关键字在表中存在至少一个匹配时返回行。...LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。...RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。...确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。 FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
表示零个或一个匹配,+表示一个或多个匹配 Like和Regexpde的差别 LIKE匹配整个列。如果被匹配的文本在列值中出现,LIKE将不会找到它,相应的行也不被返回(除非使用通配符)。...而REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回。...UNION ALL来避免重复行的删除 在进行数据查找时,如使用正则表达式匹配列值等的方法因为没有索引等原因,将会随着数据量的增加,耗时也成倍增加,使用全文本搜索将会为指定的列基于每个单词建立索引,从而极大的降低所需的搜索时间...,而不是逐行删除表中的数据 创建数据表 为利用CREATE TABLE创建表,必须给出下列信息: 新表的名字,在关键字CREATE TABLE之后给出 表列的名字和定义,用逗号分隔。...CREATE TABLE语句也可能会包括其他关键字或选项,但至少要包括表的名字和列的细节 表的主键可以在创建表时用PRIMARY KEY关键字指定 create table table_name(
数据框['d/a'] = 数据框['d列'] / 数据框['a列'] # 将结果保存到新的Excel文件 数据框.to_excel(新文件, index=False) # 使用函数进行计算并保存...,用jieba库拆分句子,提取关键字 3、排除关键字中中黑名单出现的关键字 4、将剩下的关键字匹配TXT文件中的句子 5、将prompt、匹配到的句子上传给人工智能GPT3.5,返回结果文本 6、将文本显示在文本输出窗口中..., "不适当的关键字2"] 关键字 = [关键词 for 关键词 in 关键字 if 关键词 not in 黑名单] # 从TXT文件中匹配句子 with open('...any(关键词 in 句子 for 关键词 in 关键字)] # 将匹配到的句子上传给人工智能GPT3.5 # 结果文本 = gpt3_5.generate(prompt=输入文本....delete("1.0", tk.END) 文本输出窗口.insert(tk.END, 结果文本) # 创建tkinter窗口 窗口 = tk.Tk() # 创建文本输入窗口和提交按钮
如果表使用自增主键,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页。...如果使用非自增主键(如果身份证号或学号等),由于每次插入主键的值近似于随机,因此每次新记录都要被插到现有索引页的中间某个位置,此时MySQL不得不为了将新记录插到合适位置而移动数据,这增加了很多开销,同时会增加大量的碎片...创建临时表的语法与创建表语法类似,不同之处是增加关键字TEMPORARY: CREATE TEMPORARY TABLE tmp_table ( NAME VARCHAR (10) NOT NULL,...第三范式:(确保每列都和主键列直接相关,而不是间接相关) 数据表中的每一列数据都和主键直接相关,而不能间接相关。 第四范式:要求把同一表内的多对多关系删除。 第五范式:从最终结构重新建立原始结构。...通过保存数据在某个时间点的快照来实现该机制,其在每行记录后面保存两个隐藏的列,分别保存这个行的创建版本号和删除版本号,然后Innodb的MVCC使用到的快照存储在Undo日志中,该日志通过回滚指针把一个数据行所有快照连接起来
首先需要说明的是,本文的所有讨论均是基于 InnoDB 存储引擎为前提。 示例表 为了方便说明,我们先创建一个示例表。...我们在创建 name 索引的时候,实际上创建的是单列索引(只选用了 name 这一列),而在 MySQL 中,我们是可以在创建索引时,选择多个列进行索引创建,这一类索引我们称之为联合索引。...在使用联合索引时,索引的每一列只能做等值判断,因为 MySQL 会使用最左匹配原则进行匹配,也就是从索引最左边的列开始连续匹配,在碰到范围查找时会停止匹配,如遇到 like、>、匹配原则呢?这是因为 B+Tree 中,所有节点上的数据是有序的,当我们创建联合索引时,首先保证的是所有数据的第一列是有序的,然后再保证第二列、第三列以及后面的列有序。...最后,在联合索引的使用中,由于最左匹配原则,需要注意索引列的顺序,在创建联合索引时,需要考虑好如何安排索引内字段的顺序,以满足更多的查询场景,避免创建多个索引。 作者:天堂同志 来源:掘金
GROUP BY 创建分组 GROUP BY 语句根据一个或多个列对结果集进行分组。 在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。...这可能会改变计算值,从而影响 HAVING 子句中基于这些值过滤掉的分组。...下标从 0 开始,当根据不出现在 SELECT 清单中的列进行排序时,不能采用这项技术 如果想在多个列上进行降序排序,必须对每一列指定 DESC 关键字。...很少见, 看上去像对象 多行多列 select * from 表1 别名1 , (select ... ) 别名2 where 条件 所谓的连接是有针对性的找出关联关系 全文搜索 用基于文本的搜索作为正则表达式匹配列值的更进一步的介绍...MySQL 创建指定列中各词的一个索引,搜索可以针对这些词进行。这样,MySQL 可以快速有效地决定哪些词匹配(哪些行包含它们),哪些词不匹配,它们匹配的频率,等等。
; #根据查询出来的数据创建表 create table tab1 like oldtab; #基于oldtab 创建空表tab1; show create table tab1; #...delete from course where id=2; #删除表格中查询记录一条记录 update 表名称 set 列名称=新值 where 列=值; #更新数据 select...column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name=table2.column_name; #左连接 (LEFT JOIN 关键字从左表...(table1)返回所有的行,即使右表(table2)中没有匹配。...column_name,column_name FROM table_name ORDER BY column_name,column_name ASC|DESC; #ORDER BY 关键字默认按照升序对记录进行排序
SQL左链接 LEFT JOIN关键字返回左表(表1)中的所有行,即使在右表(表2)中没有匹配。如果在正确的表中没有匹配,结果是NULL。 ?...RIGHT JOIN 右连接 SQL右链接 RIGHT JOIN 关键字返回右表(table2)的所有行,即使在左表(table1)上没有匹配。如果左表没有匹配,则结果为NULL。 ?...CREATE INDEX 命令: CREATE INDEX命令的基本语法如下: CREATE INDEX index_name ON table_name; 单列索引: 单列索引基于单一的字段创建,其基本语法如下所示...如果只需要一列,那么就应当创建单列索引。如果作为过滤条件的 WHERE 子句用到了两个或者更多的列,那么聚簇索引就是最好的选择。 隐式索引: 隐式索引由数据库服务器在创建某些对象的时候自动生成。...下面几条指导原则给出了何时应当重新考虑是否使用索引: 小的数据表不应当使用索引; 需要频繁进行大批量的更新或者插入操作的表; 如果列中包含大数或者 NULL 值,不宜创建索引; 频繁操作的列不宜创建索引
(11) TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。...创建临时表的语法与创建表语法类似,不同之处是增加关键字TEMPORARY, 如: CREATE TEMPORARY TABLE tmp_table ( NAME VARCHAR (10) NOT NULL...4.哪些列适合建立索引、哪些不适合建索引? 索引是建立在数据库表中的某些列的上面。在创建索引的时候,应该考虑在哪些列上可以创建索引,在哪些列上不能创建索引。...对于有些列不应该创建索引: (1)对于那些在查询中很少使用或者参考的列不应该创建索引。 这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。...它使用存储在内存中的内容来创建表,而且数据全部放在内存中。这些特性与前面的两个很不同。 每个基于MEMORY存储引擎的表实际对应一个磁盘文件。该文件的文件名与表名相同,类型为frm类型。
DELETE 从数据库中删除数据 INSERT INTO 将新数据插入数据库 CREATE DATABASE 创建一个新的数据库 ALTER DATABASE 修改数据库 CREATE TABLE...创建一个新表 ALTER TABLE 修改表 DROP TABLE 删除表 CREATE INDEX 创建索引(搜索键) DROP INDEX 删除索引 SELECT选择语句 该SELECT语句用于从数据库中选择数据...Customers; 创建两个别名,一个用于 CustomerName 列,另一个用于 ContactName 列。...INNER JOIN关键字选择在两个表中具有匹配值的记录。...LEFT JOIN关键字返回左表 (table1) 中的所有记录,以及右表 (table2) 中的匹配记录。
HAVING 过滤器基于GROUP BY子句定义的小分组。 7. ORDER BY 指定用于排序的列的列表。 8. LIMIT 限制返回行的数量。...>LIKE 匹配基于模式匹配的值。 >IN 指定值是否匹配列表中的任何值。 >IS NULL 检查该值是否为NULL。...去重 DISTINCT SELECT 语句执行简单的数据查询时,返回的是所有匹配的记录。...- `` : 查询的时候指定的新的名称。 - `as` : 此关键字 可以 省略,省略之后要将 `表名`与`别名`用 `空格` 分开 ***注意:表的别名不能与该数据库的其它表同名。...- ``:字段新的名称。 - `AS` 关键字可以省略,省略后需要将字段名和别名用空格隔开 ***注意:表别名只在执行查询时使用,并不在返回结果中显示。
领取专属 10元无门槛券
手把手带您无忧上云