当前位置:   article > 正文

mysql常用命令

mysql常用命令

1、链接数据库

mysql -u your_username -p

 

2、显示所有数据库

SHOW DATABASES;

 

3、选择数据库

USE your_database;

 

4、列出数据库中所有表

SHOW TABLES;

 

5、退出mysql

exit;

 

6、创建数据库

CREATE DATABASE 数据库名;

 

7、删除数据库

  1. DROP DATABASE <database_name>; -- 直接删除数据库,不检查是否存在
  2. DROP DATABASE [IF EXISTS] <database_name>;

 

8、创建数据表

  1. CREATE TABLE table_name (
  2. column1 datatype,
  3. column2 datatype,
  4. ...
  5. );
  6. -- 示例
  7. CREATE TABLE users (
  8. id INT AUTO_INCREMENT PRIMARY KEY,
  9. username VARCHAR(50) NOT NULL,
  10. email VARCHAR(100) NOT NULL,
  11. birthdate DATE,
  12. is_active BOOLEAN DEFAULT TRUE
  13. );
  14. -- id: 用户 id,整数类型,自增长,作为主键。
  15. -- username: 用户名,变长字符串,不允许为空。
  16. -- email: 用户邮箱,变长字符串,不允许为空。
  17. -- birthdate: 用户的生日,日期类型。
  18. -- is_active: 用户是否已经激活,布尔类型,默认值为 true。

 

9、删除数据表

  1. DROP TABLE table_name ; -- 直接删除表,不检查是否存在
  2. DROP TABLE [IF EXISTS] table_name;

10、插入数据

  1. INSERT INTO table_name (column1, column2, column3, ...)
  2. VALUES (value1, value2, value3, ...);
  3. -- 参数说明:
  4. -- table_name 是你要插入数据的表的名称。
  5. -- column1, column2, column3, ... 是表中的列名。
  6. -- value1, value2, value3, ... 是要插入的具体数值。
  7. -- 如果数据是字符型,必须使用单引号 ' 或者双引号 ",如: 'value1', "value1"。
  8. -- 一个简单的实例,插入了一行数据到名为 users 的表中:
  9. INSERT INTO users (username, email, birthdate, is_active)
  10. VALUES ('test', 'test@runoob.com', '1990-01-01', true);
  11. -- username: 用户名,字符串类型。
  12. -- email: 邮箱地址,字符串类型。
  13. -- birthdate: 用户生日, 日期类型。
  14. -- is_active: 是否已激活,布尔类型。
  15. -- 如果你要插入所有列的数据,可以省略列名:
  16. INSERT INTO users
  17. VALUES (NULL,'test', 'test@runoob.com', '1990-01-01', true);
  18. -- 这里,NULL 是用于自增长列的占位符,表示系统将为 id 列生成一个唯一的值。
  19. -- 如果你要插入多行数据,可以在 VALUES 子句中指定多组数值:
  20. INSERT INTO users (username, email, birthdate, is_active)
  21. VALUES
  22. ('test1', 'test1@runoob.com', '1985-07-10', true),
  23. ('test2', 'test2@runoob.com', '1988-11-25', false),
  24. ('test3', 'test3@runoob.com', '1993-05-03', true);
  25. -- 以上代码将在 users 表中插入三行数据。

 

11、查询数据

  1. SELECT column1, column2, ...
  2. FROM table_name
  3. [WHERE condition]
  4. [ORDER BY column_name [ASC | DESC]]
  5. [LIMIT number];
  6. -- 参数说明:
  7. -- column1, column2, ... 是你想要选择的列的名称,如果使用 * 表示选择所有列。
  8. -- table_name 是你要从中查询数据的表的名称。
  9. -- WHERE condition 是一个可选的子句,用于指定过滤条件,只返回符合条件的行。
  10. -- ORDER BY column_name [ASC | DESC] 是一个可选的子句,用于指定结果集的排序顺序,默认是升序-- (ASC)。
  11. -- LIMIT number 是一个可选的子句,用于限制返回的行数。
  12. -- 示例
  13. -- 选择所有列的所有行
  14. SELECT * FROM users;
  15. -- 选择特定列的所有行
  16. SELECT username, email FROM users;
  17. -- 添加 WHERE 子句,选择满足条件的行
  18. SELECT * FROM users WHERE is_active = TRUE;
  19. -- 添加 ORDER BY 子句,按照某列的升序排序
  20. SELECT * FROM users ORDER BY birthdate;
  21. -- 添加 ORDER BY 子句,按照某列的降序排序
  22. SELECT * FROM users ORDER BY birthdate DESC;
  23. -- 添加 LIMIT 子句,限制返回的行数
  24. SELECT * FROM users LIMIT 10;
  25. -- SELECT 语句可以是灵活的,我们可以根据实际需求组合和使用这些子句,比如同时使用 WHERE 和 ORDER BY 子句,或者使用 LIMIT 控制返回的行数。
  26. -- 在 WHERE 子句中,你可以使用各种条件运算符(如 =, <, >, <=, >=, !=),逻辑运算符(如 AND, OR, NOT),以及通配符(如 %)等。
  27. -- 以下是一些进阶的 SELECT 语句实例:
  28. -- 实例
  29. -- 使用 AND 运算符和通配符
  30. SELECT * FROM users WHERE username LIKE 'j%' AND is_active = TRUE;
  31. -- 使用 OR 运算符
  32. SELECT * FROM users WHERE is_active = TRUE OR birthdate < '1990-01-01';
  33. -- 使用 IN 子句
  34. SELECT * FROM users WHERE birthdate IN ('1990-01-01', '1992-03-15', '1993-05-03');

 

12、WHERE子句

  1. SELECT column1, column2, ...
  2. FROM table_name
  3. WHERE condition;
  4. -- 参数说明:
  5. -- column1, column2, ... 是你要选择的列的名称,如果使用 * 表示选择所有列。
  6. -- table_name 是你要从中查询数据的表的名称。
  7. -- WHERE condition 是用于指定过滤条件的子句。
操作符描述实例
=等号,检测两个值是否相等,如果相等返回true(A = B) 返回false。
<>, !=不等于,检测两个值是否相等,如果不相等返回true(A != B) 返回 true。
>大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true(A > B) 返回false。
<小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true(A < B) 返回 true。
>=大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true(A >= B) 返回false。
<=小于等于号,检测左边的值是否小于或等于右边的值, 如果左边的值小于或等于右边的值返回true(A <= B) 返回 true。

 

13、UPDATE 更新

  1. UPDATE table_name
  2. SET column1 = value1, column2 = value2, ...
  3. WHERE condition;
  4. -- 参数说明:
  5. -- table_name 是你要更新数据的表的名称。
  6. -- column1, column2, ... 是你要更新的列的名称。
  7. -- value1, value2, ... 是新的值,用于替换旧的值。
  8. -- WHERE condition 是一个可选的子句,用于指定更新的行。如果省略 WHERE 子句,将更新表中的所有行。

 

14、DELETE 语句

  1. DELETE FROM table_name
  2. WHERE condition;
  3. -- 参数说明:
  4. -- table_name 是你要删除数据的表的名称。
  5. -- WHERE condition 是一个可选的子句,用于指定删除的行。如果省略 WHERE 子句,将删除表中的所有行。
  6. -- 更多说明:
  7. -- 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
  8. -- 你可以在 WHERE 子句中指定任何条件
  9. -- 您可以在单个表中一次性删除记录。
  10. -- 示例
  11. DELETE FROM students
  12. WHERE graduation_year = 2021;

 

15、LIKE 子句

  1. -- LIKE 子句是在 MySQL 中用于在 WHERE 子句中进行模糊匹配的关键字。它通常与通配符一起使用,用于搜索符合某种模式的字符串。
  2. -- LIKE 子句中使用百分号 %字符来表示任意字符,类似于UNIX或正则表达式中的星号 *。
  3. -- 如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。
  4. SELECT column1, column2, ...
  5. FROM table_name
  6. WHERE column_name LIKE pattern;
  7. -- 参数说明:
  8. -- column1, column2, ... 是你要选择的列的名称,如果使用 * 表示选择所有列。
  9. -- table_name 是你要从中查询数据的表的名称。
  10. -- column_name 是你要应用 LIKE 子句的列的名称。
  11. -- pattern 是用于匹配的模式,可以包含通配符。

 

16、UNION 操作符

  1. -- MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合,并去除重复的行。
  2. -- UNION 操作符必须由两个或多个 SELECT 语句组成,每个 SELECT 语句的列数和对应位置的数据类型必须相同。
  3. SELECT column1, column2, ...
  4. FROM table1
  5. WHERE condition1
  6. UNION
  7. SELECT column1, column2, ...
  8. FROM table2
  9. WHERE condition2
  10. [ORDER BY column1, column2, ...];
  11. -- 参数说明:
  12. -- column1, column2, ... 是你要选择的列的名称,如果使用 * 表示选择所有列。
  13. -- table1, table2, ... 是你要从中查询数据的表的名称。
  14. -- condition1, condition2, ... 是每个 SELECT 语句的过滤条件,是可选的。
  15. -- ORDER BY 子句是一个可选的子句,用于指定合并后的结果集的排序顺序。

 

17、ORDER BY(排序) 语句

  1. SELECT column1, column2, ...
  2. FROM table_name
  3. ORDER BY column1 [ASC | DESC], column2 [ASC | DESC], ...;
  4. -- 参数说明:
  5. -- column1, column2, ... 是你要选择的列的名称,如果使用 * 表示选择所有列。
  6. -- table_name 是你要从中查询数据的表的名称。
  7. -- ORDER BY column1 [ASC | DESC], column2 [ASC | DESC], ... 是用于指定排序顺序的子句。ASC 表示升序(默认),DESC 表示降序。

 

数值类型

MySQL 支持所有标准 SQL 数值数据类型。

这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL 和 NUMERIC),以及近似数值数据类型(FLOAT、REAL 和 DOUBLE PRECISION)。

关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。

BIT数据类型保存位字段值,并且支持 MyISAM、MEMORY、InnoDB 和 BDB表。

作为 SQL 标准的扩展,MySQL 也支持整数类型 TINYINT、MEDIUMINT 和 BIGINT。下面的表显示了需要的每个整数类型的存储和范围。

类型大小范围(有符号)范围(无符号)用途
TINYINT1 Bytes(-128,127)(0,255)小整数值
SMALLINT2 Bytes(-32 768,32 767)(0,65 535)大整数值
MEDIUMINT3 Bytes(-8 388 608,8 388 607)(0,16 777 215)大整数值
INT或INTEGER4 Bytes(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值
BIGINT8 Bytes(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值
FLOAT4 Bytes(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)0,(1.175 494 351 E-38,3.402 823 466 E+38)单精度
浮点数值
DOUBLE8 Bytes(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)双精度
浮点数值
DECIMAL对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2依赖于M和D的值依赖于M和D的值小数值

日期和时间类型

表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。

每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

TIMESTAMP类型有专有的自动更新特性,将在后面描述。

类型大小
( bytes)
范围格式用途
DATE31000-01-01/9999-12-31YYYY-MM-DD日期值
TIME3'-838:59:59'/'838:59:59'HH:MM:SS时间值或持续时间
YEAR11901/2155YYYY年份值
DATETIME8'1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'YYYY-MM-DD hh:mm:ss混合日期和时间值
TIMESTAMP4

'1970-01-01 00:00:01' UTC 到 '2038-01-19 03:14:07' UTC

结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07

YYYY-MM-DD hh:mm:ss混合日期和时间值,时间戳

字符串类型

字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。

类型大小用途
CHAR0-255 bytes定长字符串
VARCHAR0-65535 bytes变长字符串
TINYBLOB0-255 bytes不超过 255 个字符的二进制字符串
TINYTEXT0-255 bytes短文本字符串
BLOB0-65 535 bytes二进制形式的长文本数据
TEXT0-65 535 bytes长文本数据
MEDIUMBLOB0-16 777 215 bytes二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215 bytes中等长度文本数据
LONGBLOB0-4 294 967 295 bytes二进制形式的极大文本数据
LONGTEXT0-4 294 967 295 bytes极大文本数据

注意:char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。

CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。

BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。

有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。


枚举与集合类型(Enumeration and Set Types)

  • ENUM: 枚举类型,用于存储单一值,可以选择一个预定义的集合。
  • SET: 集合类型,用于存储多个值,可以选择多个预定义的集合。

空间数据类型(Spatial Data Types)

GEOMETRY, POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION: 用于存储空间数据(地理信息、几何图形等)。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/921903
推荐阅读
相关标签
  

闽ICP备14008679号