记录:
查询与理解.
1.数据库相关名词
序号 | 名词 | 解释 |
1 | Database | 数据库 |
2 | 数据库 | 1.是按照数据结构来组织、存储和管理数据的仓库 2.每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。 |
3 | RDBMS | Relational Database Management System:关系数据库管理系统。 |
4 | 关系型数据库 | 1.建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。 2.数据以表格的形式出现 3.每行为各种记录名称 4.每列为记录名称所对应的数据域 5.许多的行和列组成一张表单 6.若干的表单组成database |
5 | 数据库 | 数据库是一些关联表的集合 |
6 | 数据表 | 表是数据的矩阵,在一个数据库中的表看起来像一个简单的电子表格 |
7 | 列 | 一列(数据元素) 包含了相同类型的数据。 |
8 | 行 | 一行(=元组,或记录)是一组相关的数据。 |
9 | 冗余 | 存储两倍数据,冗余降低了性能,但提高了数据的安全性。 |
10 | 主键 | 主键是唯一的。一个数据表中只能包含一个主键。 |
11 | 外键 | 主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据 |
12 | 复合键 | 复合键(组合键)将多个列作为一个索引键,一般用于复合索引。 |
13 | 索引 | 使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。 |
14 | 参照完整性 | 参照的完整性要求关系中不允许引用不存在的实体 |
15 | 时间类型 | TINYINT SMALLINT MEDIUMINT INT或INTEGER BIGINT FLOAT DOUBLE DECIMAL |
16 | 日期和时间类型 | DATE TIME YEAR DATETIME TIMESTAMP |
17 | 字符串类型 | CHAR VARCHAR TINYBLOB TINYTEXT BLOB TEXT MEDIUMBLOB MEDIUMTEXT LONGBLOB LONGTEXT |
18 | 事务 | 1.用于处理操作量大,复杂度高的数据. 2.在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务. 3.事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行. 4.事务用来管理 insert,update,delete 语句 |
19 | ACID | Atomicity:原子性 Consistency:一致性 Isolation:隔离性 Durability:持久性 |
20 | 原子性 | 一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节.事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样. |
21 | 一致性 | 在事务开始之前和事务结束以后,数据库的完整性没有被破坏. |
22 | 隔离性 | 数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致. |
23 | 持久性 | 事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失. |
24 | 事务隔离级别 | 读未提交(Read uncommitted) 读提交(read committed) 可重复读(repeatable read) 串行化(Serializable) |
25 | SQL | Structured Query Language 用于访问和处理数据库的标准的计算机语言 |
26 | SQL功能 | 面向数据库执行查询 可从数据库取回数据,可在数据库中插入新的记录 可更新数据库中的数据,可从数据库删除记录 可创建新数据库,可在数据库中创建新表 可在数据库中创建存储过程,可在数据库中创建视图 可以设置表,存储过程和视图的权限 |
2.SQL关键字名词
序号 | 名词 | 功能描述 | sql例子 |
1 | SELECT | SELECT 语句用于从数据库中选取数据,结果被存储在一个结果表中,称为结果集 | SELECT column_name1,column_name2 FROM table_name; |
2 | INSERT INTO | 用于向表中插入新记录 | 全字段: INSERT INTO table_name VALUES (value1,value2,...); 部分字段: INSERT INTO table_name (column1,column2,...) VALUES (value1,value2,...); |
3 | UPDATE | 用于更新表中已存在的记录 | UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value; |
4 | DELETE | 用于删除表中的行 | DELETE FROM table_name WHERE some_column=some_value; |
5 | WHERE | WHERE 子句用于过滤记录 | SELECT column_name1,column_name2 FROM table_name WHERE column_name1 operator value; |
6 | DISTINCT | 用于返回唯一不同的值 | SELECT DISTINCT column_name1,column_name2 FROM table_name; |
7 | AND | 如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。 | SELECT column_name1,column_name2 FROM table_name WHERE column_name1>1 AND column_name1>5 ; |
8 | OR | 如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。 | SELECT column_name1,column_name2 FROM table_name WHERE column_name1>1 OR column_name1>5 ; |
9 | ORDER BY | ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序 | ASC升序排列,DESC降序排列: SELECT column_name1,column_name2 FROM table_name ORDER BY column_name1,column_name2 ASC; |
10 | LIMIT | 用于规定要返回的记录的数目(MySql) | SELECT column_name1,column_name2 FROM table_name LIMIT 100; |
11 | ROWNUM | 用于规定要返回的记录的数目(Oracle) | SELECT column_name1,column_name2 FROM table_name WHERE ROWNUM<100; |
12 | LIKE | 用于在WHERE子句中搜索列中的指定模式 | SELECT * FROM table_name WHERE column_name1 LIKE '%zbz%'; |
13 | NOT LIKE | 用于在WHERE子句中搜索列中的指定模式 | SELECT * FROM table_name WHERE column_name1 NOT LIKE '%zbz%'; |
14 | REGEXP | 用于在WHERE子句中搜索列中的指定模式 | SELECT * FROM table_name WHERE column_name1 REGEXP '^[A]'; |
15 | NOT REGEXP | 用于在WHERE子句中搜索列中的指定模式 | SELECT * FROM table_name WHERE column_name1 REGEXP '[A]'; |
16 | IN | IN 操作符允许在WHERE子句中规定多个值 | SELECT column_name1,column_name2 FROM table_name WHERE column_name1 IN (value1,value2,...); |
17 | NOT IN | NOT IN 操作符允许在WHERE子句中规定多个值 | SELECT column_name1,column_name2 FROM table_name WHERE column_name1 NOT IN (value1,value2,...); |
18 | BETWEEN | 操作符选取介于两个值之间的数据范围内的值 | SELECT * FROM table_name WHERE column_name BETWEEN value1 AND value2; |
19 | AS | 可以为表名称或列名称指定别名 | SELECT column_name AS alias_name FROM table_name; SELECT column_name(s) FROM table_name AS alias_name; |
20 | JOIN | JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段 | SELECT * FROM TableA A JOIN SELECT * FROM TableB B ON A.KEY = B.KEY; |
21 | INNER JOIN | INNER JOIN关键字在表中存在至少一个匹配时返回行 | SELECT * FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name; |
22 | LEFT JOIN | LEFT JOIN 关键字从左表table1返回所有的行,即使右表table2中没有匹配。如果右表中没有匹配,则结果为 NULL。 | SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name=table2.column_name; |
23 | RIGHT JOIN | RIGHT JOIN 关键字从右表table2返回所有的行,即使左表table1中没有匹配。如果左表中没有匹配,则结果为 NULL。 | SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name=table2.column_name; |
24 | FULL JOIN | FULL OUTER JOIN 关键字只要左表table1和右表table2其中一个表中存在匹配,则返回行 | SELECT column_name(s) FROM table1 FULL OUTER JOIN table2 ON table1.column_name=table2.column_name; |
25 | UNION | 操作符用于合并两个或多个 SELECT 语句的结果集 1.UNION内部的每个SELECT语句必须拥有相同数量的列 2.列也必须拥有相似的数据类型 3.每个 SELECT 语句中的列的顺序必须相同 4.默认地,UNION操作符选取不同的值 | SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2; |
26 | UNION ALL | 操作符用于合并两个或多个 SELECT 语句的结果集 1.允许重复的值,请使用 UNION ALL | SELECT column_name(s) FROM table1 UNION ALL SELECT column_name(s) FROM table2; |
27 | CREATE TABLE AS | 从一个表复制数据,然后把数据插入到另一个新表中 | CREATE TABLE 新表 AS SELECT * FROM 旧表 |
28 | INSERT INTO SELECT | 从一个表复制数据,然后把数据插入到一个已存在的表中 | INSERT INTO table2 SELECT * FROM table1; |
29 | CREATE DATABASE | CREATE DATABASE dbname | CREATE DATABASE dbname |
30 | CREATE TABLE | 用于创建数据库中的表 | CREATE TABLE `t_girl` ( `GIRL_ID` BIGINT(64) DEFAULT NULL COMMENT 'ID号', `GIRL_NAME` VARCHAR(64) COLLATE utf8_bin DEFAULT NULL COMMENT '姓名', `AGE` BIGINT(16) DEFAULT NULL COMMENT '年龄' ) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='女孩信息'; |
31 | NOT NULL | 约束强制列不接受NULL 值 | CREATE TABLE `t_girl_a` ( `GIRL_ID` BIGINT(16) NOT NULL COMMENT 'ID号', `GIRL_NAME` VARCHAR(64) COLLATE utf8_bin DEFAULT NULL COMMENT '姓名', `AGE` int(6) DEFAULT NULL COMMENT '年龄' ) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='女孩信息'; |
32 | UNIQUE | 约束唯一标识数据库表中的每条记录 | CREATE TABLE `t_girl_a` ( `GIRL_ID` BIGINT(16) NOT NULL COMMENT 'ID号', `GIRL_NAME` VARCHAR(64) COLLATE utf8_bin DEFAULT NULL COMMENT '姓名', `AGE` int(6) DEFAULT NULL COMMENT '年龄', UNIQUE `t_girl_a_girl_id` (GIRL_ID) ) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='女孩信息'; |
33 | PRIMARY KEY | 约束唯一标识数据库表中的每条记录 主键必须包含唯一的值与主键列不能包含NULL值 | CREATE TABLE `t_girl_a` ( `GIRL_ID` BIGINT(16) NOT NULL COMMENT 'ID号', `GIRL_NAME` VARCHAR(64) COLLATE utf8_bin DEFAULT NULL COMMENT '姓名', `AGE` INT(6) DEFAULT NULL COMMENT '年龄', PRIMARY KEY `pk_t_girl_a_girl_id` (GIRL_ID) ) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='女孩信息'; |
34 | FOREIGN KEY | 一个表中的 FOREIGN KEY 指向另一个表中的 UNIQUE KEY(唯一约束的键) | CREATE TABLE `t_girl_b` ( `G_ID` BIGINT(16) NOT NULL COMMENT 'ID号', `GIRL_NAME` VARCHAR(64) COLLATE utf8_bin DEFAULT NULL COMMENT '姓名', PRIMARY KEY (G_ID), CONSTRAINT fk_a_b FOREIGN KEY (G_ID) REFERENCES t_girl_a(GIRL_ID) ) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='女孩信息'; |
35 | DEFAULT | 约束用于向列中插入默认值 | CREATE TABLE `t_girl_a` ( `GIRL_ID` BIGINT(16) NOT NULL COMMENT 'ID号', `GIRL_NAME` VARCHAR(64) DEFAULT NULL COMMENT '姓名', `AGE` INT(6) DEFAULT '12' COMMENT '年龄' ) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='女孩信息'; |
36 | CREATE INDEX | 在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据 | CREATE INDEX IDX_GIRL_ID ON t_girl_a (GIRL_ID); |
37 | CREATE UNIQUE INDEX | 在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据 | CREATE UNIQUE INDEX U_IDX_GIRL_ID ON t_girl_a (GIRL_ID); |
38 | DROP INDEX | 用于删除表中的索引 | ALTER TABLE table_name DROP INDEX index_name; |
39 | DROP TABLE | 用于删除表 | DROP TABLE table_name; |
40 | DROP DATABASE | 用于删除数据库 | DROP DATABASE database_name; |
41 | TRUNCATE TABLE | 删除表内的数据 | TRUNCATE TABLE table_name; |
42 | ALTER TABLE ADD | 用于在已有的表中添加列 | ALTER TABLE table_name ADD column_name datatype; ALTER TABLE t_girl_a ADD CUP INT(6) DEFAULT NULL COMMENT '罩杯'; |
43 | ALTER TABLE DROP | 用于在已有的表中删除列 | ALTER TABLE table_name DROP COLUMN column_name; ALTER TABLE t_girl_a DROP CUP; |
44 | ALTER TABLE MODIFY | 改变表中列的数据类型 | ALTER TABLE table_name MODIFY COLUMN column_name datatype; ALTER TABLE t_girl_a MODIFY COLUMN CUP INT(8) DEFAULT NULL COMMENT '罩杯'; |
45 | AUTO_INCREMENT | 每次插入新记录时,自动地创建主键字段的值 | CREATE TABLE `t_girl_a` ( `GIRL_ID` BIGINT(16) NOT NULL AUTO_INCREMENT COMMENT 'ID号', `GIRL_NAME` VARCHAR(64) COLLATE utf8_bin DEFAULT NULL COMMENT '姓名', `AGE` INT(6) DEFAULT NULL COMMENT '年龄', PRIMARY KEY `pk_t_girl_a_girl_id` (GIRL_ID) ) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='女孩信息'; |
46 | CREATE VIEW | 视图是基于 SQL 语句的结果集的可视化的表 | CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition; CREATE VIEW v_t_girl_a AS SELECT * FROM t_girl_a; |
47 | CREATE OR REPLACE VIEW | 更新视图 | CREATE OR REPLACE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition; CREATE OR REPLACE VIEW v_t_girl_a AS SELECT GIRL_ID,GIRL_NAME FROM t_girl_a; |
48 | DROP VIEW | 删除视图 | DROP VIEW view_name; |
49 | SHOW CREATE TABLE | 查看建表语句 | SHOW CREATE TABLE table_name; |
50 | IS NULL | 为null | SELECT * FROM t_girl_a WHERE GIRL_NAME IS NULL; |
51 | IS NOT NULL | 不为null | SELECT * FROM t_girl_a WHERE GIRL_NAME IS NOT NULL; |
52 | GROUP BY | 用于结合聚合函数,根据一个或多个列对结果集进行分组 | SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name; |
53 | HAVING | SQL中增加HAVING 子句原因是,WHERE关键字无法与聚合函数一起使用,HAVING子句可以让我们筛选分组后的各组数据 | SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value; |
以上,感谢.