page contents

绝对干货:MySQL基础语法大全!赶紧收藏

安装mysql 使用brew工具安装mysql brew install mysql 查看安装路径: which mysql  配置数据库 检查mysql服务进程: ps -ef | grep mysqld 启动服务: mysql.server start 停止服...

attachments-2021-04-05XTBeMu6076a5836e1b3.png

安装mysql

  1. 使用brew工具安装mysql
brew install mysql
  1. 查看安装路径:
which mysql 

配置数据库

  1. 检查mysql服务进程:
ps -ef | grep mysqld
  1. 启动服务:
mysql.server start
  1. 停止服务:
mysql.server stop
  1. 查看服务状态:
mysql.server status
  1. 重启服务状态:
mysql.server restart
  1. 重载配置(不影响数据写入):
mysql.server reload
  1. 强制重载配置(不影响数据写入):
mysql.server force-reload
  1. 退出mysql命令:Ctrl+D

连接数据库

mysql -u root -p 

操作数据库

1. 新建数据库:

语法:
CREATE DATABASE 数据库名
实例:
  • sql语句:
CREATE DATABASE mentu;
  • 效果:
mysql> CREATE DATABASE mentu;
Query OK, 1 row affected (0.01 sec)

2. 查看数据库列表:

语法:
SHOW DATABASES;
实例:
       sql语句:
SHOW DATABASES;
  • 效果:
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| logic_engine       |
| mentu              |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.02 sec)

3. 选择数据库:

语法:
use 数据库名;
实例:
  • sql语句:
use mentu;
  • 效果:
mysql> use mentu;
Database changed

4. 删除数据库:

  • sql语句:
DROP DATABASE;
  • 效果:
mysql> DROP DATABASE IF EXISTS mentu;
Query OK, 0 rows affected, 1 warning (0.00 sec)

5. 创建数据表:

语法:
CREATE TABLE table_name (column_name column_type);
实例:
  • sql语句:
CREATE TABLE IF NOT EXISTS `user`(
   `id` INT UNSIGNED AUTO_INCREMENT,
   `name` VARCHAR(100) NOT NULL,
   `age` INT  NOT NULL,
   `gender` VARCHAR(100)  NOT NULL,
   PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

  • 运行效果:
mysql> CREATE TABLE IF NOT EXISTS `user`(
    ->    `id` INT UNSIGNED AUTO_INCREMENT,
    ->    `name` VARCHAR(100) NOT NULL,
    ->    `age` INT  NOT NULL,
    ->    `gender` VARCHAR(100)  NOT NULL,
    ->    PRIMARY KEY ( `id` )
    -> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected, 1 warning (0.03 sec)

6. 查看数据表

  • sql语句:
SHOW TABLES;
  • 效果:
mysql> SHOW TABLES;
+-----------------+
| Tables_in_mentu |
+-----------------+
| user            |
+-----------------+
1 row in set (0.00 sec)

7. 删除数据表:

语法:
DROP TABLE table_name ;
实例:
  • sql语句:
DROP TABLE user;
  • 效果:
mysql> DROP TABLE user;
Query OK, 0 rows affected (0.07 sec)

8. 插入数据:

语法:
INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );
实例:
  • sql语句:
INSERT INTO user (name,age,gender) VALUES ("阿门",18,"female");
  • 效果:
mysql> INSERT INTO user (name,age,gender) VALUES ("阿门",18,"female");
Query OK, 1 row affected (0.02 sec)

9. 查询数据

先造一些数据:

user:
+----+--------------+-----+--------+
| id | name         | age | gender |
+----+--------------+-----+--------+
|  1 | 阿门1号      | 188 | female |
|  2 | 阿门1号      |  19 | male   |
|  3 | 阿门2号      |  20 | female |
|  4 | 阿门3号      |  21 | male   |
|  5 | 阿门888号    | 888 | female |
|  6 | 阿门5号      |  23 | male   |
|  7 | 阿门6号      |  24 | female |
|  8 | 阿门7号      |  25 | male   |
|  9 | 阿门8号      |  26 | female |
+----+--------------+-----+--------+

auth:
+----+---------+-------+-----------------+
| id | user_id | level | level_name      |
+----+---------+-------+-----------------+
|  1 | 1       |     0 | 超级管理员      |
|  2 | 2       |     1 | 管理员          |
|  3 | 3       |     1 | 管理员          |
|  4 | 4       |     2 | 操作员          |
|  5 | 5       |     2 | 操作员          |
|  6 | 6       |     2 | 操作员          |
|  7 | 7       |     2 | 操作员          |
|  8 | 8       |     2 | 操作员          |
|  9 | 9       |     2 | 操作员          |
| 10 | 10      |     2 | 操作员          |
+----+---------+-------+-----------------+


student:
+----+--------+-----+---------+
| id | name   | age | country |
+----+--------+-----+---------+
|  1 | 张三   |  12 | USA     |
|  2 | 李四   |  12 | CN      |
|  3 | 王五   |  12 | USA     |
|  4 | 沈六   |  12 | CN      |
+----+--------+-----+--------

teacher:
+----+------+-----+---------+
| id | name | age | country |
+----+------+-----+---------+
|  1 | 老A  |  21 | USA     |
|  2 | 老B  |  22 | CN      |
|  3 | 老C  |  23 | USA     |
|  4 | 老D  |  24 | CN      |
+----+------+-----+---------+
4 rows in set (0.00 sec)
语法:
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
实例:
  1. 读取数据表:
  • sql语句:
SELECT * FROM student;
  • 效果:
mysql> SELECT * FROM student;
+----+--------+-----+---------+
| id | name   | age | country |
+----+--------+-----+---------+
|  1 | 张三   |  12 | USA     |
|  2 | 李四   |  12 | CN      |
|  3 | 王五   |  12 | USA     |
|  4 | 沈六   |  12 | CN      |
+----+--------+-----+---------+
4 rows in set (0.00 sec)
  1. WHERE的使用:
  • 语法:
SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  • 条件:
  1. 逻辑操作符:AND 或者 OR 指定一个或多个条件;
  2. 关系操作符:= 、> 、< 、<= 、>=、<> 、!= ; 实例:
  • 基础用法1(单表单条件):sql语句:
SELECT name,age FROM user WHERE gender='male';

效果:

mysql> SELECT name,age FROM user WHERE gender='male';
+------------+-----+
| name       | age |
+------------+-----+
| 阿门1号    |  19 |
| 阿门3号    |  21 |
| 阿门5号    |  23 |
| 阿门7号    |  25 |
+------------+-----+
4 rows in set (0.03 sec)
  • 基础用法2(单表多条件):sql语句:
SELECT name,age FROM user WHERE gender='male' AND age>21 OR age=19;

效果:

mysql> SELECT name,age FROM user WHERE gender='male' AND age>21 OR age=19;
+------------+-----+
| name       | age |
+------------+-----+
| 阿门1号    |  19 |
| 阿门5号    |  23 |
| 阿门7号    |  25 |
+------------+-----+
3 rows in set (0.00 sec)
  • 基础用法3(多表多条件):

sql语句:

SELECT name,age,level_name FROM user,auth WHERE user.id=auth.user_id AND user.age>25;

效果:

mysql> SELECT name,age,level_name FROM user,auth WHERE user.id=auth.user_id AND user.age>25;
+--------------+-----+-----------------+
| name         | age | level_name      |
+--------------+-----+-----------------+
| 阿门1号      | 188 | 超级管理员      |
| 阿门888号    | 888 | 操作员          |
| 阿门8号      |  26 | 操作员          |
+--------------+-----+-----------------+
3 rows in set (0.00 sec)
  1. like的使用(主要用于模糊查询):语法:
SELECT * from table  WHERE gender LIKE '%fe';

实例:

  • sql语句:
SELECT * from user  WHERE gender LIKE '%fe%';

  • 效果:
mysql> SELECT * from user  WHERE gender LIKE '%fe%';
+----+--------------+-----+--------+
| id | name         | age | gender |
+----+--------------+-----+--------+
|  1 | 阿门1号      | 188 | female |
|  3 | 阿门2号      |  20 | female |
|  5 | 阿门888号    | 888 | female |
|  7 | 阿门6号      |  24 | female |
|  9 | 阿门8号      |  26 | female |
+----+--------------+-----+--------+
  1. UNION(联表):语法
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];

实例:

  • sql语句:
SELECT name, age, country
FROM student
UNION ALL
SELECT name, age, country
FROM teacher;
  • 效果:
mysql> SELECT name, age, country
    -> FROM student
    -> UNION ALL
    -> SELECT name, age, country
    -> FROM teacher;
+--------+-----+---------+
| name   | age | country |
+--------+-----+---------+
| 张三   |  12 | USA     |
| 李四   |  12 | CN      |
| 王五   |  12 | USA     |
| 沈六   |  12 | CN      |
| 老A    |  21 | USA     |
| 老B    |  22 | CN      |
| 老C    |  23 | USA     |
| 老D    |  24 | CN      |
+--------+-----+---------+
8 rows in set (0.01 sec)
  1. 排序:

语法:

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]

ASC升序DESC降序

实例:-sql语句:

SELECT name, age, country
FROM student
UNION ALL
SELECT name, age, country
FROM teacher ORDER BY age DESC;
  • 效果:
mysql> SELECT name, age, country
    -> FROM student
    -> UNION ALL
    -> SELECT name, age, country
    -> FROM teacher ORDER BY age DESC;
+--------+-----+---------+
| name   | age | country |
+--------+-----+---------+
| 老D    |  24 | CN      |
| 老C    |  23 | USA     |
| 老B    |  22 | CN      |
| 老A    |  21 | USA     |
| 张三   |  12 | USA     |
| 李四   |  12 | CN      |
| 王五   |  12 | USA     |
| 沈六   |  12 | CN      |
+--------+-----+---------+
8 rows in set (0.01 sec)

10. 更新数据数据:

语法:
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
实例:
  1. 基础用法:
  • sql语句:
UPDATE user SET name='阿门1号', age='188';
  • 效果:
mysql> UPDATE user SET name='阿门1号', age='188';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
  • 更新后的效果:
mysql> SELECT * FROM user;
+----+------------+-----+--------+
| id | name | age | gender |
+----+------------+-----+--------+
| 1 | 阿门1号 | 188 | female |
+----+------------+-----+--------+
1 row in set (0.00 sec)
  1. 使用WHERE条件:
  • 语法:
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE condition1 [AND [OR]] condition2.....
  • 实例: sql语句:
UPDATE user SET name='阿门888号', age='888' WHERE id=5;

WHERE的条件使用参考 查询数据 模块的WHERE

11. 删除数据

语法:
DELETE FROM table_name [WHERE Clause]
实例:
  • sql语句:
DELETE FROM user WHERE id=10;

WHERE的条件使用参考 1.查询数据 模块的WHERE使用;

  • 效果:
mysql> DELETE FROM user WHERE id=10;
Query OK, 1 row affected (0.00 sec)
  • 执行后表的数据:
mysql> select * from user;
+----+--------------+-----+--------+
| id | name         | age | gender |
+----+--------------+-----+--------+
|  1 | 阿门1号      | 188 | female |
|  2 | 阿门1号      |  19 | male   |
|  3 | 阿门2号      |  20 | female |
|  4 | 阿门3号      |  21 | male   |
|  5 | 阿门888号    | 888 | female |
|  6 | 阿门5号      |  23 | male   |
|  7 | 阿门6号      |  24 | female |
|  8 | 阿门7号      |  25 | male   |
|  9 | 阿门8号      |  26 | female |
+----+--------------+-----+--------+
9 rows in set (0.00 sec)


这篇MySQL基础语法大全就讲到这里,感谢大家的阅读。


相关文章:

Mysql性能优化:为什么要用覆盖索引?

MySQL高级性能优化实战!看这篇就够了

SQL语句性能分析和优化,值得一看的干货!

更多技术资讯,请继续关注六星教育社区-程序员编程技术分享交流学习高端论坛

如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。

attachments-2022-06-RQ05r7pi62abe5ce02d2b.jpeg

  • 发表于 2021-04-14 16:23
  • 阅读 ( 477 )
  • 分类:数据库

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. Pack 1131 文章
  3. 小柒 1046 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章