MySQL语句 MySQL SHOW DATABASES 显示数据库MySQL SHOW SCHEMAS 显示数据库语句MySQL CREATE DATABASE 创建数据库语句MySQL CREATE SCHEMA 创建数据库语句MySQL SHOW CREATE DATABASE 显示创建数据库的语句MySQL SHOW CREATE SCHEMA 显示创建数据库的语句MySQL ALTER DATABASE 修改数据库语句MySQL ALTER SCHEMA 修改数据库语句MySQL DROP DATABASE删除数据库MySQL DROP SCHEMA 删除数据库MySQL USE 选择数据库语句MySQL CREATE TEMPORARY TABLE 创建临时表语句 MySQL CREATE TABLE 创建数据表语句MySQL DROP TEMPORARY TABLE 删除临时表语句MySQL DROP TABLE 删除数据表语句MySQL SELECT 查询语句MySQL INSERT INTO 增加数据语句MySQL UPDATE 更新语句MySQL ALTER TABLE 修改数据表语句MySQL SHOW TABLES 显示数据表语句MySQL DESCRIBE/DESC 查看数据表/视图语句MySQL SHOW CREATE TABLE 显示创建表语句MySQL DELETE 删除表数据语句MySQL WHERE 条件语句MySQL TRUNCATE 清空表语句MySQL LIKE 模糊匹配语句MySQL NOT LIKE 模式匹配外语句MySQL DISTINCT 去重语句MySQL AS 别名语句MySQL INSERT IGNORE INTO 忽略重复数据插入语句MySQL GROUP BY 分组语句MySQL HAVING 包含语句MySQL LIMIT限制查询数量 语句MySQL ORDER BY 排序语句MySQL BETWEEN AND 筛选范围内数据语句MySQL NOT BETWEEN AND 筛选不在范围数据语句MySQL IS NULL 查询是否为NULL值语句MySQL IS NOT NULL 查询不为NULL值语句MySQL IN 查询某个范围内的数据语句MySQL NOT IN 查询某个不在范围内的数据语句MySQL SELECTI...INTO OUTFILE将查询结果输出到外部文件语句MySQL LOAD DATA大量数据快速导入数据库语句MySQL UNION 合并两个或多个SELECT语句MySQL HAVING对聚合结果进行筛选语句MySQL SOUNDS LIKE查询发音相似语句MySQL JOIN 交叉连接语句MySQL CROSS JOIN交叉连接语句MySQL INNER JOIN交叉连接语句MySQL LEFT JOIN 左连接语句MySQL RIGHT JOIN 右连接语句MySQL EXISTS存在查询语句MySQL NOT EXISTS不存在查询语句MySQL CREATE VIEW创建视图语句MySQL RENAME TABLE重命表名/视图名语句MySQL ALTER VIEW 修改视图语句MySQL DROP VIEW 删除视图语句MySQL SHOW INDEX查看索引语句MySQL DROP INDEX删除索引语句MySQL EXPLAIN分析查询语句MySQL数据类型 MySQL tinyint、smallint、mediumint、int、bigint整数数据类型(精确值)MySQL decimal、numeric、double、float、real小数数据类型(精确、近似值)MySQL date、time、year、timestamp、datetime日期时间数据类型MySQL char、varchar、text、enum、set字符串类型MySQL bit、binary、varbinary、tinyblob、blob、mediumblob、longblob二进制数据类型MySQL空间数据类型MySQL函数 MySQL COUNT 统计函数MySQL ANY_VALUE函数 禁止 ONLY_FULL_GROUP_BY 值拒绝MySQL CASE 多分支函数MySQL LENGTH 返回字节数函数MySQL CHARACTER_LENGTH 返回字符数函数MySQL CHAR_LENGTH 返回字符数函数MySQL SUBSTRING提取字符串函数MySQL CONCAT 合拼字符串函数MySQL INSERT替换字符串函数MySQL LOWER 字符串转为小写 函数MySQL UPPER 字符串转为大写 函数MySQL LEFT 提取左侧字符 函数MySQL RIGHT 提取右侧字符 函数MySQL TRIM 删除头尾空格或指定字符 函数MySQL REPLACE 替换字符串函数MySQL REVERSE 字符串反转函数MySQL ABS求绝对值函数MySQL FIND_IN_SET 查逗号分隔特定值函数 MySQL ASCII最左边字符的数字值函数MySQL BIN将整数值转二进制字符串函数MySQL BIT_LENGTH返二进制字符串长度函数MySQL CONCAT_WS用分隔符连接字符串函数MySQL INTERVAL 返N值在区间段索引位置 函数MySQL ELT 指定位置提取子字符串函数MySQL IFNULL 处理NULL值函数MySQL EXPORT_SET二进制位生成拼接字符串函数MySQL FIELD 包含特定值的位置函数MySQL FORMAT 返回带有格式的数字函数MySQL TO_BASE64 字符串转base-64编码函数MySQL FROM_BASE64 将base-64编码解码函数MySQL AES_ENCRYPT 使用密钥进行加密函数MySQL AES_DECRYPT使用密钥解密函数MySQL HEX字符串转十六进制函数MySQL UNHEX 十六进制字符串转二进制数据函数MySQL INSTR 返回子字符串第一次出现的索引函数MySQL REGEXP 正则表达式函数MySQL NOT REGEXP不匹配正则表达式函数MySQL LCASE用于转换字符串为小写函数MySQL LOAD_FILE 加载文件到数据库函数MySQL LOCATE 搜索字符串第一次出现的位置函数MySQL LPAD左侧添加指定长度字符函数MySQL LTRIM删除字符串左侧空格的函数MySQL MAKE_SET 创建集合函数MySQL MATCH() AGAINST()两函数来实现全文搜索MySQL MID提取指定位置字符串函数MySQL OCT 返指定数值的八进制形式字符串函数MySQL OCTET_LENGTH返回字符串长度函数MySQL ORD获取字符ASCII码函数MySQL POSITION查字符串在某子字符串起始位置函数MySQL QUOTE返回用单引号包围的字符串函数MySQL REPEAT重复字符串次数函数MySQL REPLACE替换字符串中的子字符串函数MySQL REVERSE反转字符串函数MySQL RIGHT从右侧截取指定长度字符串函数MySQL RLIKE正则表达式函数MySQL RPAD向字符串的右侧填充指定字符函数MySQL RTRIM去除字符串右侧的空格函数MySQL SOUNDEX将一个字符串转为发音字符串函数MySQL SPACE生成指定数量空格函数MySQL STRCMP比较两个字符串大小函数MySQL SUBSTR从字符串中截取子字符串函数MySQL SUBSTRING_INDEX按指定字符分隔后进行截取函数MySQL UCASE 小写字母换大写字母函数Mysql WEIGHT_STRING 返回字符串的权重字符串函数MySQL =等于赋值运算符MySQL <=>运算符MySQL &(按位与)运算符MySQL > 大于运算符MySQL >>位右移运算符MySQL >=大于等于运算符MySQL <小于运算符MySQL (<>或!=)不等于运算符MySQL <<位左移运算符MySQL <= 小于等于运算符MySQL %或mod()求余运算符MySQL *乘法运算符MySQL +加法运算符MySQL -减法运算符MySQL -负号运算符MySQL JSON_EXTRACT从JSON数据提取字段值函数MySQL ->JSON数据提取运算符 MySQL JSON_UNQUOTE去除JSON值的引号函数MySQL ->>提取JSON去除引号的值运算符MySQL /除法运算符MySQL DIV整数除法运算符MySQL :=特殊赋值运算符MySQL ^位异或运算符MySQL |位或运算符MySQL ~位取反运算符MySQL ABS 返绝对值函数MySQL ACOS反余弦函数MySQL ADDDATE 日期函数MySQL DATE_ADD加时间间隔日期函数MySQL SUBDATE减时间间隔函数Mysql DATE_SUB减去时间间隔函数MySQL DATE从日期时间值中提取日期部分函数MySQL DATEDIFF计算两个日期之间的天数差异函数MySQL TIMEDIFF两日期时间的时间差函数MySQL MINUTE取日期时间中分钟数函数MySQL HOUR取日期时间中小时数函数MySQL SECOND取日期时间值中秒数函数MySQL CONVERT_TZ 将日期时间值转为另一时区函数MySQL DAYOFYEAR返回日期值对应的一年中第几天函数MySQL TIMESTAMPDIFF算两日期时间之间的时间差函数MySQL TO_DAYS日期转换为天数函数MySQL ​FROM_UNIXTIME将时间戳转换日期时间格式函数MySQL TO_SECONDS将日期时间值转换为秒数函数MySQL WEEK返回日期对应的星期数函数

MySQL CREATE VIEW创建视图语句

在 MySQL 中,CREATE VIEW 语句用于创建视图。视图是一种虚拟表,它基于一个或多个表的结果集,并可以像普通表一样进行查询和操作。视图的优点是可以简化查询语句,提高查询效率,并且可以对数据进行安全控制。

CREATE VIEW 语句的基本语法如下:

CREATE VIEW view_name AS
SELECT column1, column2,...
FROM table1
[JOIN table2 ON condition]
[WHERE condition];

其中,`view_name` 是视图的名称,`SELECT` 子句用于指定视图的列,`FROM` 子句用于指定视图的数据源表,`JOIN` 和 `WHERE` 子句用于可选地指定表之间的连接条件和筛选条件。

CREATE VIEW 语句的案例

获取案例新建表格和插入数据语句

这是详细信息得内容。

-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `sex` varchar(11) COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('1', '张三名', '男');
INSERT INTO `student` VALUES ('2', '李四浩', '男');
INSERT INTO `student` VALUES ('3', '王五期', '女');
INSERT INTO `student` VALUES ('5', '三七熊', '女');

-- ----------------------------
-- Table structure for course
-- ----------------------------
DROP TABLE IF EXISTS `course`;
CREATE TABLE `course` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `studentid` int(11) DEFAULT NULL,
  `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `score` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

-- ----------------------------
-- Records of course
-- ----------------------------
INSERT INTO `course` VALUES ('1', '1', '语文', '81');
INSERT INTO `course` VALUES ('2', '1', '数学', '74');
INSERT INTO `course` VALUES ('3', '1', '英语', '56');
INSERT INTO `course` VALUES ('4', '2', '语文', '71');
INSERT INTO `course` VALUES ('5', '2', '数学', '77');
INSERT INTO `course` VALUES ('6', '2', '英语', '66');
INSERT INTO `course` VALUES ('7', '3', '语文', '61');
INSERT INTO `course` VALUES ('8', '3', '数学', '87');
INSERT INTO `course` VALUES ('9', '3', '英语', '86');
INSERT INTO `course` VALUES ('10', '4', '语文', '71');
INSERT INTO `course` VALUES ('11', '4', '数学', '57');
INSERT INTO `course` VALUES ('12', '4', '英语', '76');


student学生表原始数据

mysql> SELECT * from student;
+----+-----------+------+
| id | name      | sex  |
+----+-----------+------+
|  1 | 张三名    | 男   |
|  2 | 李四浩    | 男   |
|  3 | 王五期    | 女   |
|  5 | 三七熊    | 女   |
+----+-----------+------+

course成绩表原始数据

学生分别有语文、数学、英语三门成绩,studentid是student学生表的id

mysql> SELECT * from course;
+----+-----------+--------+-------+
| id | studentid | name   | score |
+----+-----------+--------+-------+
|  1 |         1 | 语文   |    81 |
|  2 |         1 | 数学   |    74 |
|  3 |         1 | 英语   |    56 |
|  4 |         2 | 语文   |    71 |
|  5 |         2 | 数学   |    77 |
|  6 |         2 | 英语   |    66 |
|  7 |         3 | 语文   |    61 |
|  8 |         3 | 数学   |    87 |
|  9 |         3 | 英语   |    86 |
| 10 |         4 | 语文   |    71 |
| 11 |         4 | 数学   |    57 |
| 12 |         4 | 英语   |    76 |
+----+-----------+--------+-------+


以下是一个简单的示例,展示如何使用 CREATE VIEW 语句创建一个视图:


假设有一个名为 students的表,包含学生的信息,和学生成绩表。我们要创建一个视图,用于查询的学生每科成绩信息。

CREATE VIEW `NewView`AS 
SELECT student.id AS sid,student.`name`,student.sex,course.id AS cid,course.studentid,course.`name` AS cname,course.score FROM student
INNER JOIN course ON student.id = course.studentid ;

上述语句创建了一个名为 `NewView` 的视图。我们可以像查询普通表一样查询这个视图:

mysql> SELECT * FROM NewView;
+-----+-----------+------+-----+-----------+--------+-------+
| sid | name      | sex  | cid | studentid | cname  | score |
+-----+-----------+------+-----+-----------+--------+-------+
|   1 | 张三名    | 男   |   1 |         1 | 语文   |    81 |
|   1 | 张三名    | 男   |   2 |         1 | 数学   |    74 |
|   1 | 张三名    | 男   |   3 |         1 | 英语   |    56 |
|   2 | 李四浩    | 男   |   4 |         2 | 语文   |    71 |
|   2 | 李四浩    | 男   |   5 |         2 | 数学   |    77 |
|   2 | 李四浩    | 男   |   6 |         2 | 英语   |    66 |
|   3 | 王五期    | 女   |   7 |         3 | 语文   |    61 |
|   3 | 王五期    | 女   |   8 |         3 | 数学   |    87 |
|   3 | 王五期    | 女   |   9 |         3 | 英语   |    86 |
+-----+-----------+------+-----+-----------+--------+-------+

这个查询将返回视图的信息。

CREATE VIEW 语句的注意事项

1. 视图是基于表的结果集,它并不会存储实际的数据,而是在查询时动态生成结果集。因此,视图的性能可能会受到数据源表的影响。在创建视图时,应该尽量选择较小的表作为数据源,避免使用复杂的查询语句。

2. 视图的创建和修改需要一定的权限。只有具有相应权限的用户才能创建和修改视图。在创建视图时,应该确保用户具有足够的权限。

3. 视图的名称应该具有可读性,以便于理解和管理。视图的名称可以包含字母、数字和下划线,但不能以数字开头。

4. 视图的列名可以与数据源表的列名不同,但需要在视图定义中明确指定。如果视图的列名与数据源表的列名相同,可以省略列名的指定。

5. 视图可以包含复杂的查询语句,包括连接、聚合函数、子查询等。在创建视图时,应该尽量避免使用复杂的查询语句,以免影响视图的性能。

6. 视图可以对数据进行过滤和排序,但需要在视图定义中明确指定。在创建视图时,应该根据实际需求对数据进行过滤和排序,以便于查询和管理。

7. 视图可以作为数据源用于其他查询语句中。在查询视图时,可以使用视图的名称代替复杂的查询语句,提高查询效率和可读性。

8. 视图的更新操作受到一定的限制。视图的更新操作只能更新数据源表中的数据,而不能更新视图本身的定义。在更新视图时,应该确保更新操作符合视图的定义和数据源表的约束条件。

9. 视图的删除操作会同时删除视图本身和相关的权限。在删除视图时,应该谨慎操作,避免误删重要的视图和权限。

10. 视图的维护和管理需要一定的经验和技能。在使用视图时,应该定期审查和优化视图的定义和查询语句,以确保视图的性能和正确性。

四、总结

综上所述,CREATE VIEW 语句是 MySQL 中用于创建视图的语句。通过创建视图,可以简化查询语句,提高查询效率,并且可以对数据进行安全控制。在使用 CREATE VIEW 语句时,需要注意视图的性能、权限、命名、列名、查询语句、过滤和排序、更新操作、删除操作等方面的问题,以确保视图的正确性和有效性。