mysql速查表

MySQL是一种流行的开源关系数据库,可用于构建各种Web数据库-从简单的数据库,分类一些基本信息(如书籍推荐)到更复杂的数据仓库,并托管数十万条记录。

对于已经了解PHP或Perl的人来说,学习MySQL是一个不错的下一步。在这种情况下,您可以创建与MySQL数据库实时交互的网站,并向用户显示可搜索和分类的记录。

MySQL速查表旨在帮助我们可以快速的找到mysql语法,进行mysql开发。

入门

注释

  • 单行注释:这些注释以“ ” 开头。破折号之后到行尾的所有文本都不会被编译器考虑在内。

    – Update all:
    SELECT * FROM Movies;
  • 多行注释:这些注释/*和开头*/。同样,任何超出斜线的文本都将被编译器忽略。

例:

/*Select all the columns
of all the records
in the Movies table:*/
SELECT * FROM Movies;

如何连接到MySQL

要开始使用MySQL,您需要在服务器上建立活动的SSH会话。

mysql -u root -p

如果您没有为MySQL超级用户设置密码,则忽略该-p开关。

创建一个新的MySQL用户帐户

接下来,您可以创建一个新的测试用户进行练习。

为此,请运行以下命令:

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

如果以后需要删除用户,请使用以下命令:

DROP USER 'someuser'@'localhost';

创建一个新的数据库

创建新数据库:

CREATE DATABASE dbname

然后,您可以使用以下命令查看所有数据库:

show databases;

切换数据库:

use test;

删除MySQL数据库

DROP DATABASE dbName

如果您已经完成一天的工作,只需exit在命令行中输入“ ”即可完成会话。

基本的MySQL命令

  • SELECT -从数据库中选择特定数据。
  • UPDATE —更新数据库中的数据。
  • DELETE —从数据库中删除数据。
  • INSERT INTO —将新数据插入数据库。
  • CREATE DATABASE —生成一个新的数据库。
  • ALTER DATABASE —修改现有数据库。
  • CREATE TABLE —在数据库中创建一个新表。
  • ALTER TABLE —更改选定的表。
  • DROP TABLE —删除表。
  • CREATE INDEX —创建一个索引(所有存储信息的搜索键)。
  • DROP INDEX —删除索引。

表是MySQL数据库的关键元素,因为它们使您可以将所有信息一起存储在有组织的行中。每行由具有指定数据类型的列组成。

建表

CREATE TABLE [IF NOT EXISTS] table_name(
  column_list
);

下面的代码段提供了一个表格,其中列出了我们要通过不同属性来组织的电影列表:

CREATE TABLE movies(
   title VARCHAR(100),
   year VARCHAR(100),
   director VARCHAR(50),
   genre VARCHAR(20),
   rating VARCHAR(100),
);

查看表

使用以下命令来获取有关存储在数据库中的表的更多信息。

  • SHOW TABLES —调用与数据库关联的所有表的列表。
  • DESCRIBE table_name; —查看表格中的列。
  • DESCRIBE table_name column_name; —查看表中列的信息。

删除表格

要删除表,请在以下命令中指定表名:

DROP TABLE tablename;

表字段

字段的存储类型定义:

  • CHAR
  • VARCHAR
  • TEXT
  • BLOB
  • EUT
  • 其他

在为数据库设计列时,您的目标是选择最佳长度以避免浪费空间并最大化性能。

添加字段

ALTER TABLE table
ADD [COLUMN] column_name;

删除字段

ALTER TABLE table_name
DROP [COLUMN] column_name;

插入记录

INSERT INTO table_name (field1, field2, ...) VALUES (value1, value2, ...)

查询

SELECT value1, value2 FROM field1

WHERE查询

SELECT * FROM movies WHERE budget='1'; SELECT * FROM movies WHERE year='2020' AND rating='9';SELECT * FROM movies WHERE budget='1';
SELECT * FROM movies WHERE year='2020' AND rating='9';

DELETE

DELETE FROM movies WHERE budget='1';

UPDATE

UPDATE table_name SET column1 = value1, ...;

UPDATE table_name
SET column1 = value1,
    ...;

UPDATE… WHERE

UPDATE table_name SET column_1 = value_1, WHERE budget='5'

UPDATE table_name
SET column_1 = value_1,
WHERE budget='5'

UPDATE… JOIN

UPDATE table_name
INNER JOIN table1 ON table1.column1 = table2.column2
SET column1 = value1,
WHERE budget='5'

ALTER

ALTER TABLE movies MODIFY COLUMN number INT(3)

ORDER BY

SELECT * FROM users ORDER BY last_name DESC;

SELECT * FROM users ORDER BY last_name ASC; SELECT * FROM users ORDER BY last_name DESC;

LIKE

SELECT * FROM movies WHERE genre LIKE 'com%'; SELECT * FROM movies WHERE title LIKE '%a';

SELECT * FROM movies WHERE genre LIKE 'com%';
SELECT * FROM movies WHERE title LIKE '%a';

您还可以使用NOT LIKE以下方法从搜索中排除某些项目:

SELECT * FROM movies WHERE genre NOT LIKE 'hor%';

SELECT * FROM movies WHERE genre NOT LIKE 'hor%';

BETWEEN

SELECT * FROM movies WHERE rating BETWEEN 8 AND 10;

列压缩CONCAT

您可以将两个或多个列与CONCAT功能混在一起:

SELECT CONCAT(first_name, ‘ ‘, last_name) AS ‘Name’, dept FROM users;

数据类型

数据类型指示可以在表的特定列中存储的信息类型。MySQL具有三种主要的数据类型类别:

  • 数字
  • 文本
  • 时间

数值数据类型

除非进行编程,否则MySQL列的显示宽度不会限制您可以在那里存储的值的范围。另外,如果没有数字数据类型integer,则如果包含的值太宽,则列可能无法正确显示宽度。

为防止这种情况,您可以使用以下整数指定最大允许值范围。您可以:

  • 给列分配一个特定的数值

  • 或保留一个无符号值。

  • BIT[(M)]—指定位值类型。M代表每个值的位数,范围从1到64。如果未指定T,则默认值为1。

  • ZEROFILL—自动将UNSIGNED属性添加到该列。从MySQL 8.0.17版本开始不推荐使用。

  • TINYINT(M) —介于-128到127之间的最小整数。

    • TINYINT(M) [UNSIGNED] —范围是0到255。
    • BOOLBOOLEAN—的同义词TINYINT(1)
  • SMALLINT(M) —范围为-32768和32767的小整数。

    • SMALLINT(M) [UNSIGNED] —范围是0到65535。
  • MEDIUMINT(M) —介于-8388608至8388607之间的中整数。

    • MEDIUMINT(M) [UNSIGNED] —范围是0到16777215。
  • INT(M)INTEGER (M)-与到2147483647范围内的-2147483648正常范围的整数。

    • INT(M)[UNSIGNED]INTEGER (M)[UNSIGNED]—范围是0到4294967295。
  • BIGINT(M) —范围从-9223372036854775808到9223372036854775807的最大整数。

    • BIGINT(M) [UNSIGNED] —范围是0到8446744073709551615。
  • DECIMAL (M, D)—将双精度值存储为字符串。M指定总位数。D代表小数点后的位数。方便存储货币值。

    • 最大数量M为65。如果省略,则默认M值为10。
    • 最大数量D为30。如果省略,则默认D值为0。
  • FLOAT (M, D)—记录一个带有浮点小数点的近似数字。从FLOATMySQL 8.0.17及更高版本开始,对该支持的删除。

    • 允许的值范围是-3.402823466E + 38至-1.175494351E-38、0和1.175494351E-38至3.402823466E + 38。

Blob和文本数据类型

BLOB二进制范围使您可以存储大量文本数据。a的最大长度BLOB65,535(2^16 − 1) 字节。BLOB值使用2字节长的前缀存储。

注意:由于文本数据会变长,因此请始终仔细检查您未超过最大长度。如果超出限制,系统通常会生成警告。但是,如果非空格字符被截断,则可能会收到错误而没有警告。

  • TINYBLOB—将最大列长度设置为255(2^8 − 1)字节。TINYBLOB值使用1字节长的前缀存储。
  • MEDIUMBLOB—将最大列长度设置为16,777,215(2^24 − 1)字节。MEDIUMBLOB值使用3字节长的前缀存储。
  • LONGBLOB—将最大列长度设置为4,294,967,295或4GB(2^32 − 1)字节。LONGBLOB值使用4字节长的前缀存储

注意:最大长度还将取决于您在客户端/服务器协议中配置的最大数据包大小以及可用内存。

  • TEXT做相同的工作,但保留较小长度的值。甲TEXT列可以有一个最大长度65535(2^16 – 1)字符。但是,如果该值包含多字节字符,则最大长度可以更小。TEXT值也使用2字节长的前缀存储。
  • TINYTEXT—使用1字节长的前缀存储值。支持的最大列长度为255(2^8 − 1)个字符。
  • MEDIUMTEXT—使用3字节长的前缀存储值。支持的最大列长度为16,777,215(2^24 − 1)个字符。
  • LONGTEXT—使用4字节长的前缀存储值。支持的最大列长度为4,294,967,295或4GB(2^32 − 1)字符。

注意:同样,长度上限还将取决于您在客户端/服务器协议中配置的最大数据包大小和可用内存。

文字储存格式

  • CHAR—指定可以存储的最大非二进制字符数。范围是0到255。
  • VARCHAR—存储长度可变的非二进制字符串。您可以存储的最大字符数为65,535(等于最大行大小)。
  • VARCHAR值与值不同,存储为1字节或2字节长的前缀加数据CHAR
  • BYNARY—以字节字符串的形式存储二进制数据。类似于CHAR
  • VARBYNARY—以字节字符串的形式存储可变长度的二进制数据。类似于VARCHAR
  • ENUM —存储在创建表时在列规范中枚举的允许的文本值。
  • ENUM列最多可以包含65,535个不同的元素,并且其中的>超过255个唯一元素列表定义ENUM
  • SET —另一种存储从预定义值列表中选择的文本值的方法。
  • SET列最多可包含64个不同的成员,并且其中的>超过255个唯一元素列表定义SET

日期和时间数据类型

顾名思义,此数据类型可让您以不同的格式存储时间数据。

  • DATE—仅将其用于具有日期部分的值。MySQL DATE以’ YYYY-MM-DD‘格式显示值。
    • 支持的数据范围是“ 1000-01-01”至“ 9999-12-31”。
  • DATETIME—记录具有日期和时间部分的值。显示格式为“ YYYY-MM-DD hh:mm:ss”。
    • 支持的数据范围是“ 1000-01-01 00:00:00”到“ 9999-12-31 23:59:59”。
  • TIMESTAMP —增加精度,以记录具有日期和时间部分的值,直到UTC的微秒。
    • 支持的数据范围是UTC到’1970-01-01 00:00:01’到UTC’2038-01-19 03:14:07’。
  • TIME—仅以“ hh:mm:ss”或“ hhh:mm:ss”格式记录时间值。后者可以表示经过的时间和时间间隔。
    • 支持的数据范围是“ -838:59:59”至“ 838:59:59”。
  • YEAR —使用此1字节类型存储年份值。
    • 4位数字格式的YEAR值显示为0000,范围为1901至2155。
    • 2位格式的YEAR值显示为00。可接受的范围是“ 0”到“ 99”,MySQL会转换YEAR2000到2069和1970到1999范围内的值。

Index索引

数据库索引可以加快数据看数据查询。

如何创建索引

基本语法如下:

CREATE INDEX index_name
ON table_name (column1, column2, ...);

您还可以创建一个唯一索引-一个可在一个或多个列中强制值唯一的索引。

CREATE UNIQUE INDEX index_name
ON table_name(index_column_1,index_column_2,...);

如何在MySQL中删除索引

为此,请使用DROP命令:

DROP INDEX index_name;

View

如何创建新视图

CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;

更新视图

由于数据库引擎每次都使用视图的SQL语句重新创建数据,因此视图始终显示新数据。要刷新视图,请使用以下代码:

CREATE OR REPLACE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;

重命名视图

RENAME TABLE view_name TO new_view_name;

显示所有视图

SHOW FULL TABLES
WHERE table_type = 'VIEW';

删除视图

要删除单个视图,请使用以下DROP命令:

DROP VIEW [IF EXISTS] view_name;

您也可以一次删除多个视图:

DROP VIEW [IF EXISTS] view1, view2, ...;

触发器

触发器是与表关联的数据库对象。每当表发生特定事件时,它将激活。

例如,您可以为以下事件设置触发器:

  • 行或删除更新
  • 行信息插入

这是一个更高级的主题,因此请查看官方的MySQL触发器常见问题解答部分以获取更多详细信息。

如何创建触发器

要创建一个简单的触发器,它会弹出之前,还是有一定的操作,比如后INSERTUPDATE或者DELETE,使用此代码:

CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE| DELETE }
ON table_name FOR EACH ROW
trigger_body;

查看数据库中的所有触发器

使用LIKEWHERE子句在数据库中搜索所有活动触发器。

SHOW TRIGGERS
[{FROM | IN} database_name]
[LIKE 'pattern' | WHERE search_condition];

如何删除触发器

要删除触发器,请使用以下DROP命令:

DROP TRIGGER [IF EXISTS] trigger_name;

MySQL的存储过程

存储过程是可重用的SQL代码段,您可以将其存储在数据库中,并根据需要反复使用。因为您不需要从头开始编写查询,所以它们可以节省大量时间。相反,您只需调用它即可执行它。

如何在MySQL中创建存储过程

以下是创建简单的没有附加参数的存储过程的方法:


CREATE PROCEDURE procedure_name
AS
sql_tatement
GO;

这是另一个带有WHERE子句的存储过程示例:


CREATE PROCEDURE SelectAllMovies @Title varchar(30) AS SELECT \* FROM Movies WHERE Title = @Title GO;

CREATE PROCEDURE SelectAllMovies @Title varchar(30)
AS
SELECT \* FROM Movies WHERE Title = @Title
GO;

查看所有存储过程

与触发器类似,您可以使用LIKE和查看所有存储过程WHERE

SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE search_condition];

如何删除存储过程

要摆脱不再需要的存储过程,请使用DROP

DROP PROCEDURE [IF EXISTS] procedure_name;

逻辑运算符

逻辑运算符使您可以在WHERE子句中添加多个条件。这使它们非常方便地用于更高级的搜索,更新,插入和删除查询。

在MySQL中,您具有三个主要的逻辑运算符:

  • AND—用它来过滤依赖于1+条件的记录。这样,您可以调用满足所有条件(由分隔)的记录AND
  • OR—满足用分隔的任何条件的通话记录OR
  • NOT—查看不符合特定条件的记录(例如NOT blue)。排除某些数据是很方便的运算符。

另外,还有一些特殊的运算符:

  • BETWEEN —在设置的最大值和最小值之间选择或搜索数据。
  • LIKE—将一条记录与另一条记录进行比较。方便的搜索运算符。
  • IS NULL—将一些值与一个NULL值进行比较。
  • IN —确定一个值或表达式是否与列表中的值之一匹配。
  • ALL —将值或表达式与列表中的所有其他值进行比较。
  • ANY —根据指定条件将值或表达式与列表中的任何值进行比较。
  • EXISTS —测试是否存在特定记录。

聚合函数

MySQL中的聚合函数允许您对一组值运行计算并返回单个标量值。本质上,它们是使用语句的GROUP BYand HAVING子句更快地找到所需数据并更好地组织所需数据的好方法SELECT

以下是这些内容的概述:

MIN

在表中找到所选列的最小值:

SELECT MIN (column_name)
FROM table_name
WHERE condition;

MAX

进行相反的操作并返回所选列的最大值:

SELECT MAX (column_name)
FROM table_name
WHERE condition;

COUNT

调用满足指定条件的几行:

SELECT COUNT (column_name)
FROM table_ame
WHERE condition;

AVG

获取所选数字列的平均值:

SELECT AVG (column_name)
FROM table_ame
WHERE condition;

SUM

收到您选择的数字列的总和:

SELECT SUM(column_name)
FROM table_ame
WHERE condition;

算术,按位,比较和复合运算符

SQL数据库备份命令

最后,在测试不同的命令和代码片段时,请不要忘记定期备份进度。

有几种简单的方法可以做到这一点。

要将数据库备份到SQL文件,请使用以下代码:

mysqldump -u Username -p dbNameYouWant > databasename_backup.sql

然后,要从SQL备份还原工作,请运行以下行:

mysql - u Username -p dbNameYouWant < databasename_backup.sql

结论

首先,学习如何编写MySQL数据库代码似乎是一项繁琐的任务。但是一旦掌握了基本的MySQL命令和语法,就可以成功了。了解MySQL可以使您在Web开发中占优势,尤其是在电子商务网站和在线商店中。

每日一句话科技资讯 | 20200706
每日一句话科技资讯 | 20200705