以下是一些常用的MySQL命令:
这些命令只是MySQL命令的一部分,还有更多的命令可以用于管理和操作MySQL数据库。
net start mysql // 启动mysql服务 net stop mysql // 停止mysql服务
mysql -u root -p123456
注意:mysql -uroot -p你的MySQL密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
mysql -uroot -p123456
注意:mysql -uroot -p你的MySQL密码
exit quit
二选一
SELECT VERSION();
SHOW DATABASES;
CREATE DATABASE 数据库名称;
CREATE DATABASE IF NOT EXISTS 数据库名称;
USE 数据库名称;
SELECT DATABASE();
DROP DATABASE 数据库名称;
DROP DATABASE IF EXISTS 数据库名称;
SHOW TABLES;
DESC 表名称;
CREATE TABLE 表名 ( 字段名1 数据类型1, 字段名2 数据类型2, … 字段名n 数据类型n );
create table tb_user ( id int, username varchar(20), password varchar(32) );
注意:最后一行末尾,不能加逗号
ALTER TABLE 表名 RENAME TO 新的表名; -- 将表名student修改为stu alter table student rename to stu;
ALTER TABLE 表名 ADD 列名 数据类型; -- 给stu表添加一列address,该字段类型是varchar(50) alter table stu add address varchar(50);
ALTER TABLE 表名 MODIFY 列名 新数据类型; -- 将stu表中的address字段的类型改为 char(50) alter table stu modify address char(50);
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型; -- 将stu表中的address字段名改为 addr,类型改为varchar(50) alter table stu change address addr varchar(50);
ALTER TABLE 表名 DROP 列名; -- 将stu表中的addr字段 删除 alter table stu drop addr;
DROP TABLE 表名;
DROP TABLE IF EXISTS 表名;
desc [表名];
SHOW CREATE TABLE [表名]
(1)增加自增长字段
ALTER TABLE table_name ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
注意:table_name代表您要增加自增长字段的表名,id代表您要增加的自增长字段名。
(2)修改自增长字段
ALTER TABLE table_name CHANGE column_name new_column_name INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
(3)删除自增长字段
ALTER TABLE table_name MODIFY column_name datatype;
注意:table_name代表要删除自增长字段的表名,column_name代表要删除的自增长字段名,datatype代表要设置的数据类型。
(1)增加数据表的列
ALTER TABLE <表名> ADD COLUMN <列名> <数据类型>; ALTER TABLE student ADD COLUMN age INT;
上面的命令会在student表中增加一个名为age的INT类型列。
(2)删除数据表的列
ALTER TABLE <表名> DROP COLUMN <列名>; ALTER TABLE student DROP COLUMN age;
上面的命令会从student表中删除名为age的列。
(3)修改数据表的列
ALTER TABLE <表名> MODIFY COLUMN <列名> <数据类型>; ALTER TABLE student MODIFY COLUMN age VARCHAR(10);
上面的命令会将student表中的age列的数据类型修改为VARCHAR(10)。
(1)添加索引:
ALTER TABLE table_name ADD INDEX index_name (column_name);
其中,table_name是表的名称,index_name是索引的名称,
column_name是要添加索引的列的名称。
ALTER TABLE users ADD INDEX idx_email (email);
(2)删除索引:
ALTER TABLE table_name DROP INDEX index_name;
其中,table_name是表的名称,index_name是要删除的索引的名称。
ALTER TABLE users DROP INDEX idx_email;
(3)查看索引:
SHOW INDEX FROM table_name;
其中,table_name是表的名称。该命令将返回包含索引信息的结果集。
SHOW INDEX FROM users;
CREATE TEMPORARY TABLE temp_table_name ( column1 datatype, column2 datatype, ... );
其中,temp_table_name是您要创建的临时表的名称。您可以指定表的列和数据类型,就像创建常规表一样。
CREATE TEMPORARY TABLE temp_users ( id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100) );
上述命令将创建一个名为temp_users的临时表,其中包含id、name和email列。id列是主键。
CREATE TABLE mem_table_name ( column1 datatype, column2 datatype, ... ) ENGINE=MEMORY;
其中,mem_table_name是您要创建的内存表的名称。您可以指定表的列和数据类型,就像创建常规表一样。通过将ENGINE选项设置为MEMORY,该表将被创建为内存表。
以下是一个具体的例子:
CREATE TABLE mem_users ( id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100) ) ENGINE=MEMORY;
上述命令将创建一个名为mem_users的内存表,其中包含id、name和email列。id列是主键。
要查看MySQL数据库中数据表的存储位置,您可以执行以下步骤:
mysql -u username -p
其中,username是您的MySQL用户名。系统将提示您输入密码。
选择要查看存储位置的数据库。使用以下命令选择数据库:
USE database_name;
其中,database_name是您要查看存储位置的数据库的名称。
SHOW TABLE STATUS;
该命令将返回包含有关数据库中所有数据表的信息的结果集。其中,可以关注File列,它将显示数据表的存储位置。
STATUS和LIKE语句。例如,要查看名为table_name的表的存储位置,可以执行以下命令:
SHOW TABLE STATUS LIKE 'table_name';
这将返回特定数据表的详细信息,包括存储位置。
TRUNCATE TABLE table_name;
其中,table_name是要清空内容的表的名称。
该命令将删除表中的所有数据,但保留表的结构。换句话说,它将删除表中的所有行,但保留表的主键、索引和其他属性。
DML是数据操纵语言。它是一组用于管理和处理数据库的命令和语句,用于插入、更新、删除、查询和修改数据库中的数据。
MySQL命令中关于DML的操作主要有增加(Insert)、删除(Delete)和修改(Update)
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
例如,要在名为users的表中添加一条记录,可以执行以下命令:
INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john@example.com');
DELETE FROM table_name WHERE condition;
例如,要删除名为users表中id为1的记录,可以执行以下命令:
DELETE FROM users WHERE id = 1;
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
例如,要修改名为users表中name为’John Doe’的记录的email,可以执行以下命令:
UPDATE users SET email = 'newemail@example.com' WHERE name = 'John Doe';
SELECT * FROM table_name;
这个命令将返回表中的所有记录。
SELECT column1, column2 FROM table_name;
这个命令将返回指定的列,例如column1和column2。
SELECT * FROM table_name WHERE condition;
这个命令将返回满足指定条件的所有记录。例如,SELECT * FROM users WHERE age > 18 将返回年龄大于 18 的所有用户记录。
SELECT COUNT(*) FROM table_name;
这个命令将返回表中的记录数。还可以使用其他聚合函数,如SUM、AVG、MAX和MIN等。
SELECT column1, COUNT(*) FROM table_name GROUP BY column1;
这个命令将按column1分组,并计算每个组中的记录数。
SELECT * FROM table_name ORDER BY column1;
这个命令将按column1的升序排序所有记录。还可以使用DESC关键字来按降序排序。#### 4.4.7 使用LIMIT来限制返回的记录数
SELECT * FROM table_name LIMIT 10;
这个命令将返回表中的前10条记录。还可以使用OFFSET关键字来指定从哪一行开始返回记录。
GRANT 权限列表 ON 对象类型 对象名称 TO 用户名@用户地址 IDENTIFIED BY用户口令;
例如,给用户test授予对所有数据库的完全访问权限:
GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost' IDENTIFIED BY 'password';
REVOKE 权限列表 ON 对象类型 对象名称 FROM 用户名@用户地址;
例如,撤销用户test对所有数据库的访问权限:
REVOKE ALL PRIVILEGES ON *.* FROM 'test'@'localhost';
SET PASSWORD FOR 用户名@用户地址 = SET PASSWORD BY PASSWORD ('新口令');
例如,将用户test的口令修改为新口令:
SET PASSWORD FOR 'test'@'localhost'=SET PASSWORD BY PASSWORD ('newpassword');
FLUSH PRIVILEGES;
例如,刷新权限使应用立即更改:
FLUSH PRIVILEGES;