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。BOOL
,BOOLEAN
—的同义词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)
—记录一个带有浮点小数点的近似数字。从FLOAT
MySQL 8.0.17及更高版本开始,对该支持的删除。- 允许的值范围是-3.402823466E + 38至-1.175494351E-38、0和1.175494351E-38至3.402823466E + 38。
Blob和文本数据类型
BLOB
二进制范围使您可以存储大量文本数据。a的最大长度BLOB
为65,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
—仅将其用于具有日期部分的值。MySQLDATE
以’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会转换YEAR
2000到2069和1970到1999范围内的值。
- 4位数字格式的
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触发器常见问题解答部分以获取更多详细信息。
如何创建触发器
要创建一个简单的触发器,它会弹出之前,还是有一定的操作,比如后INSERT
,UPDATE
或者DELETE
,使用此代码:
CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE| DELETE }
ON table_name FOR EACH ROW
trigger_body;
查看数据库中的所有触发器
使用LIKE
和WHERE
子句在数据库中搜索所有活动触发器。
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 BY
and 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开发中占优势,尤其是在电子商务网站和在线商店中。