这是一篇关于MySQL基本命令行和操作语句的Blog


MySQL基本命令行

连接服务器:mysql -u root -p

λ mysql -uroot -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.26 MySQL Community Server (GPL)

查看当前服务器下有哪些库(databases):show databases;

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
5 rows in set (0.02 sec)   

创建一个数据库:create database DBname;(字符集声明,整理说明)

mysql> create database test1;
Query OK, 1 row affected (0.00 sec)

删除数据库:drop database DBname;

mysql> drop database test1;
Query OK, 0 rows affected (0.23 sec)

选择数据库:use DBname;(比如要对一个表进行操作前要先选择数据库)

mysql> use test;
Database changed

查看一下库下面的所有表:show tables;

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| class          |
+----------------+
1 row in set (0.00 sec)

创建一张表: create table tableNmae;

mysql> create table stu(
    -> id int,
    -> name varchar(10)
    -> );
Query OK, 0 rows affected (0.31 sec)

删除一张表:drop table tableName;

mysql> drop table class;
Query OK, 0 rows affected (0.27 sec)

mysql> show tables;
Empty set (0.00 sec)

修改表名:rename table oldName to newName;

mysql> rename table stu to student;
Query OK, 0 rows affected (0.17 sec)

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| student        |
+----------------+
1 row in set (0.00 sec)

查看表结构:desc tableName;

mysql> desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)

设置使用的字符集命令: set names utf8;

mysql> set names utf8;
Query OK, 0 rows affected (0.00 sec)

SQL操作语句

SQL SELECT 语句

SELECT 语句用于从数据库中选取数据。结果被存储在一个结果表中,称为结果集。

SQL SELECT 语法

选取部分数据:

SELECT column_name,column_name
FROM table_name;

例如:

mysql> select name from student;
+------+
| name |
+------+
| 张三 |
+------+
1 row in set (0.00 sec)

选取全部数据:

SELECT * FROM table_name;

例如:

mysql> select * from student;
+------+------+
| id   | name |
+------+------+
|    1 | 张三 |
+------+------+
1 row in set (0.04 sec)

SQL WHERE 子句

WHERE 子句用于过滤记录,提取那些满足指定标准的记录。

SQL WHERE 语法

SELECT * FROM table_name
WHERE column_name operator value;

例如:

mysql> select * from student where id=1;
+------+------+
| id   | name |
+------+------+
|    1 | 张三 |
+------+------+
1 row in set (0.05 sec)

SQL INSERT INTO 语句

INSERT INTO 语句用于向表中插入新记录。

SQL INSERT INTO 语法

INSERT INTO 语句可以有两种编写形式。 第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:

INSERT INTO table_name
VALUES (value1,value2,value3,...);

例如:

mysql> insert into student
    -> values(2,'王五');
Query OK, 1 row affected (0.06 sec)

mysql> select * from student;
+------+------+
| id   | name |
+------+------+
|    1 | 张三 |
| NULL | 李四 |
|    2 | 王五 |
+------+------+
3 rows in set (0.00 sec)

第二种形式需要指定列名及被插入的值:

INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

例如:

mysql> insert into student(name)
    -> values('李四');
Query OK, 1 row affected (0.06 sec)

mysql> select * from student;
+------+------+
| id   | name |
+------+------+
|    1 | 张三 |
| NULL | 李四 |
+------+------+
2 rows in set (0.00 sec)

SQL UPDATE 语句

UPDATE 语句用于更新表中已存在的记录。

SQL UPDATE 语法

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

例如:

mysql> update student
    -> set id=3
    -> where name='李四';
Query OK, 1 row affected (0.11 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from student;
+------+------+
| id   | name |
+------+------+
|    1 | 张三 |
|    3 | 李四 |
|    2 | 王五 |
+------+------+
3 rows in set (0.00 sec)

SQL DELETE 语句

DELETE 语句用于删除表中的行。

SQL DELETE 语法

DELETE FROM table_name
WHERE some_column=some_value;

例如:

mysql> delete from student
    -> where name='李四';
Query OK, 1 row affected (0.10 sec)

mysql> select * from student;
+------+------+
| id   | name |
+------+------+
|    1 | 张三 |
|    2 | 王五 |
+------+------+
2 rows in set (0.00 sec)

参考