mysql 基础语法回顾

创建数据库

mysql>create database wordpress;

删除数据库

mysql>drop database wordpress;

查看数据库

mysql>show databases;

进入数据库

mysql>use databasename

创建表

    mysql> CREATE TABLE IF NOT EXISTS `user`(
    -> `uuid` VARCHAR(36) NOT NULL,
    -> `name` VARCHAR(30) NOT NULL,
    -> `date` DATE,
    -> PRIMARY KEY (`id`)
    -> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.04 sec)

实例解析:

  • 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
  • AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
  • PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
  • ENGINE 设置存储引擎,CHARSET 设置编码。

显示表

mysql> show tables;
+---------------------+
| Tables_in_wordpress |
+---------------------+
| user                |
+---------------------+
1 row in set (0.01 sec)

查看表结构

mysql> desc user ;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | varchar(36) | NO   | PRI | NULL    |       |
| name  | varchar(30) | NO   |     | NULL    |       |
| date  | date        | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

mysql>

删除表

mysql> drop table user;
Query OK, 0 rows affected (0.02 sec)

显示表

mysql> show tables;
+---------------------+
| Tables_in_wordpress |
+---------------------+
| apps                |
| user                |
+---------------------+
2 rows in set (0.00 sec)

插入数据

mysql> INSERT INTO user (uuid,name,date) VALUES (UUID(),'张三',NOW());
Query OK, 1 row affected, 1 warning (0.02 sec)

查看数据

mysql> SELECT * FROM user;
+--------------------------------------+--------+------------+
| uuid                                 | name   | date       |
+--------------------------------------+--------+------------+
| 8e0ce8f4-e9e6-11e7-aa91-fa163e4d93c3 | 张三   | 2017-12-26 |
+--------------------------------------+--------+------------+
1 row in set (0.00 sec)

当数据量大时,不建议使用通配符 * 去查询数据

查看指定字段的数据

mysql> SELECT uuid,name FROM user;
+--------------------------------------+--------+
| uuid                                 | name   |
+--------------------------------------+--------+
| 8e0ce8f4-e9e6-11e7-aa91-fa163e4d93c3 | 张三   |
+--------------------------------------+--------+
1 row in set (0.00 sec)

WHERE 子句

当数据量比较大时候,我们需要查询某一条字段,需要根据条件去过滤,例如有表

mysql> select * from user;
+--------------------------------------+--------+------------+
| uuid                                 | name   | date       |
+--------------------------------------+--------+------------+
| 8e0ce8f4-e9e6-11e7-aa91-fa163e4d93c3 | 张三   | 2017-12-26 |
| ec0bd4cf-e9e6-11e7-aa91-fa163e4d93c3 | 李四   | 2017-12-26 |
| eec4e0b2-e9e6-11e7-aa91-fa163e4d93c3 | 王五   | 2017-12-26 |
| f39e6daf-e9e6-11e7-aa91-fa163e4d93c3 | 牛二   | 2017-12-26 |
| f769b50a-e9e6-11e7-aa91-fa163e4d93c3 | 狗娃   | 2017-12-26 |
+--------------------------------------+--------+------------+
5 rows in set (0.00 sec)

我们希望查询李四的信息,则使用 where

mysql> select uuid,name,date from user where name='李四'
    -> ;
+--------------------------------------+--------+------------+
| uuid                                 | name   | date       |
+--------------------------------------+--------+------------+
| ec0bd4cf-e9e6-11e7-aa91-fa163e4d93c3 | 李四   | 2017-12-26 |
+--------------------------------------+--------+------------+
1 row in set (0.00 sec)

说明:

  • 查询语句中你可以使用一个或者多个表,表之间使用逗号, 分割,并使用 WHERE 语句来设定查询条件。
  • 可以在 WHERE 子句中指定任何条件。
  • 可以使用 AND 或者 OR 指定一个或多个条件。
  • WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
操作符 描述 实例
= 等号,检测两个值是否相等,如果相等返回true (A = B) 返回false。
<>, != 不等于,检测两个值是否相等,如果不相等返回true (A != B) 返回 true。
> 大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true (A > B) 返回false。
< 小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true (A < B) 返回 true。
>= 大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true (A >= B) 返回false。
<= 小于等于号,检测左边的值是否小于于或等于右边的值, 如果左边的值小于或等于右边的值返回true (A <= B) 返回 true。

UPDATE 查询

mysql> UPDATE user SET name='李五'  where uuid='ec0bd4cf-e9e6-11e7-aa91-fa163e4d93c3';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

DELETE 语句

mysql> delete from user where uuid='ec0bd4cf-e9e6-11e7-aa91-fa163e4d93c3';
Query OK, 1 row affected (0.01 sec)

LIKE 语句

mysql> SELECT * FROM user WHERE name like '牛%';
+--------------------------------------+--------+------------+
| uuid                                 | name   | date       |
+--------------------------------------+--------+------------+
| 2f379b0d-e9e8-11e7-aa91-fa163e4d93c3 | 牛一   | 2017-12-26 |
| 31d28bb1-e9e8-11e7-aa91-fa163e4d93c3 | 牛二   | 2017-12-26 |
| 3a914c85-e9e8-11e7-aa91-fa163e4d93c3 | 牛三   | 2017-12-26 |
| f39e6daf-e9e6-11e7-aa91-fa163e4d93c3 | 牛二   | 2017-12-26 |
+--------------------------------------+--------+------------+
4 rows in set (0.00 sec)    
  • 可以在 WHERE 子句中指定任何条件。
  • 可以在 WHERE 子句中使用LIKE子句。
  • 可以使用LIKE子句代替等号 =。
  • LIKE 通常与 % 一同使用,类似于一个元字符的搜索。
  • 可以使用 AND 或者 OR 指定一个或多个条件。
  • 可以在 DELETE 或 UPDATE 命令中使用 WHERE…LIKE 子句来指定条件。