mysql学习--mysql必知必会

上图为数据库操作分类:

以下的操作参考(mysql必知必会)

创建数据库 执行脚本建表:

mysql> create database mytest;
Query OK, 1 row affected (0.07 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| mytest             |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

mysql> use myte
ERROR 1049 (42000): Unknown database ‘myte‘
mysql> use mytest;
Database changed
mysql> show tables;
Empty set (0.00 sec)

mysql> source /home/huangcd/mysql_scripts/create.sql
mysql> source /home/huangcd/mysql_scripts/populate.sql
mysql> show tables;
+------------------+
| Tables_in_mytest |
+------------------+
| customers        |
| orderitems       |
| orders           |
| productnotes     |
| products         |
| vendors          |
+------------------+
6 rows in set (0.02 sec)

删除重复行:

mysql> select vend_id from products;

+---------+

| vend_id |

+---------+

|    1001 |

|    1001 |

|    1001 |

|    1002 |

|    1002 |

|    1003 |

|    1003 |

|    1003 |

|    1003 |

|    1003 |

|    1003 |

|    1003 |

|    1005 |

|    1005 |

+---------+

14 rows in set (0.00 sec)

mysql> select distinct vend_id from products;

+---------+

| vend_id |

+---------+

|    1001 |

|    1002 |

|    1003 |

|    1005 |

+---------+

4 rows in set (0.04 sec)

返回结果中不多于5行:

mysql> select prod_name from products

-> limit 5;

+--------------+

| prod_name    |

+--------------+

| .5 ton anvil |

| 1 ton anvil  |

| 2 ton anvil  |

| Detonator    |

| Bird seed    |

+--------------+

5 rows in set (0.00 sec)

从第5行开始的5行:

mysql> select prod_name

-> from products

-> limit 5,5;

+--------------+

| prod_name    |

+--------------+

| Carrots      |

| Fuses        |

| JetPack 1000 |

| JetPack 2000 |

| Oil can      |

+--------------+

5 rows in set (0.00 sec)

order by 子句对一个或者多个列进行输出排序:

mysql> select prod_name

-> from products

-> order by prod_name;

+----------------+

| prod_name      |

+----------------+

| .5 ton anvil   |

| 1 ton anvil    |

| 2 ton anvil    |

| Bird seed      |

| Carrots        |

| Detonator      |

| Fuses          |

| JetPack 1000   |

| JetPack 2000   |

| Oil can        |

| Safe           |

| Sling          |

| TNT (1 stick)  |

| TNT (5 sticks) |

+----------------+

首先按price排序,只有price相同时,才按照名称排序:

mysql> select prod_id, prod_price, prod_name

-> from products

-> order by prod_price, prod_name;

+---------+------------+----------------+

| prod_id | prod_price | prod_name      |

+---------+------------+----------------+

| FC      |       2.50 | Carrots        |

| TNT1    |       2.50 | TNT (1 stick)  |

| FU1     |       3.42 | Fuses          |

| SLING   |       4.49 | Sling          |

| ANV01   |       5.99 | .5 ton anvil   |

| OL1     |       8.99 | Oil can        |

| ANV02   |       9.99 | 1 ton anvil    |

| FB      |      10.00 | Bird seed      |

| TNT2    |      10.00 | TNT (5 sticks) |

| DTNTR   |      13.00 | Detonator      |

| ANV03   |      14.99 | 2 ton anvil    |

| JP1000  |      35.00 | JetPack 1000   |

| SAFE    |      50.00 | Safe           |

| JP2000  |      55.00 | JetPack 2000   |

+---------+------------+----------------+

14 rows in set (0.05 sec)

默认排序方式是升序,若用降序必须用DESC关键字:

mysql> select prod_id, prod_price, prod_name from products order by prod_price DESC;

+---------+------------+----------------+

| prod_id | prod_price | prod_name      |

+---------+------------+----------------+

| JP2000  |      55.00 | JetPack 2000   |

| SAFE    |      50.00 | Safe           |

| JP1000  |      35.00 | JetPack 1000   |

| ANV03   |      14.99 | 2 ton anvil    |

| DTNTR   |      13.00 | Detonator      |

| TNT2    |      10.00 | TNT (5 sticks) |

| FB      |      10.00 | Bird seed      |

| ANV02   |       9.99 | 1 ton anvil    |

| OL1     |       8.99 | Oil can        |

| ANV01   |       5.99 | .5 ton anvil   |

| SLING   |       4.49 | Sling          |

| FU1     |       3.42 | Fuses          |

| FC      |       2.50 | Carrots        |

| TNT1    |       2.50 | TNT (1 stick)  |

+---------+------------+----------------+

14 rows in set (0.02 sec)

mysql> select prod_id, prod_price, prod_name from products order by prod_price DESC, prod_name;

+---------+------------+----------------+

| prod_id | prod_price | prod_name      |

+---------+------------+----------------+

| JP2000  |      55.00 | JetPack 2000   |

| SAFE    |      50.00 | Safe           |

| JP1000  |      35.00 | JetPack 1000   |

| ANV03   |      14.99 | 2 ton anvil    |

| DTNTR   |      13.00 | Detonator      |

| FB      |      10.00 | Bird seed      |

| TNT2    |      10.00 | TNT (5 sticks) |

| ANV02   |       9.99 | 1 ton anvil    |

| OL1     |       8.99 | Oil can        |

| ANV01   |       5.99 | .5 ton anvil   |

| SLING   |       4.49 | Sling          |

| FU1     |       3.42 | Fuses          |

价格最高的一个:

mysql> select prod_price
    -> from products
    -> order by prod_price desc
    -> limit 1;
+------------+
| prod_price |
+------------+
|      55.00 |
+------------+
1 row in set (0.12 sec)

mysql> select prod_name, prod_price
    -> from products
    -> where prod_price between 5 and 10;
+----------------+------------+
| prod_name      | prod_price |
+----------------+------------+
| .5 ton anvil   |       5.99 |
| 1 ton anvil    |       9.99 |
| Bird seed      |      10.00 |
| Oil can        |       8.99 |
| TNT (5 sticks) |      10.00 |
+----------------+------------+
5 rows in set (0.09 sec)

空值检查:

mysql> select prod_name
    -> from products
    -> where prod_price is null;
Empty set (0.01 sec)

mysql> select cust_id
    -> from customers
    -> where cust_email is null;
+---------+
| cust_id |
+---------+
|   10002 |
|   10005 |
+---------+
2 rows in set (0.00 sec)

or操作符:

mysql> select prod_name,prod_price from products where vend_id =1002 or vend_id = 1003;
+----------------+------------+
| prod_name      | prod_price |
+----------------+------------+
| Detonator      |      13.00 |
| Bird seed      |      10.00 |
| Carrots        |       2.50 |
| Fuses          |       3.42 |
| Oil can        |       8.99 |
| Safe           |      50.00 |
| Sling          |       4.49 |
| TNT (1 stick)  |       2.50 |
| TNT (5 sticks) |      10.00 |
+----------------+------------+
9 rows in set (0.05 sec)

in操作符:

mysql> select prod_name, prod_price
    -> from products
    -> where vend_id in (1002, 1003)
    -> order by prod_name;
+----------------+------------+
| prod_name      | prod_price |
+----------------+------------+
| Bird seed      |      10.00 |
| Carrots        |       2.50 |
| Detonator      |      13.00 |
| Fuses          |       3.42 |
| Oil can        |       8.99 |
| Safe           |      50.00 |
| Sling          |       4.49 |
| TNT (1 stick)  |       2.50 |
| TNT (5 sticks) |      10.00 |
+----------------+------------+
9 rows in set (0.07 sec)

in最大的优点是可以包含其他select子句。

not操作符:

mysql> select prod_name, prod_price
    -> from products
    -> where vend_id not in (1002, 1003)
    -> order by prod_name;
+--------------+------------+
| prod_name    | prod_price |
+--------------+------------+
| .5 ton anvil |       5.99 |
| 1 ton anvil  |       9.99 |
| 2 ton anvil  |      14.99 |
| JetPack 1000 |      35.00 |
| JetPack 2000 |      55.00 |
+--------------+------------+
5 rows in set (0.00 sec)

在搜索子句中使用通配符,必须使用like操作符。like指示后跟的搜索模式是通配符而不是直接相等匹配。

%通配符:任意字符出现任意次数

mysql> select prod_id, prod_name
    -> from products
    -> where prod_name like ‘jet%‘
    -> ;
+---------+--------------+
| prod_id | prod_name    |
+---------+--------------+
| JP1000  | JetPack 1000 |
| JP2000  | JetPack 2000 |
+---------+--------------+
2 rows in set (0.05 sec)
mysql> select prod_id, prod_name from products where prod_name like ‘%anvil%‘;
+---------+--------------+
| prod_id | prod_name    |
+---------+--------------+
| ANV01   | .5 ton anvil |
| ANV02   | 1 ton anvil  |
| ANV03   | 2 ton anvil  |
+---------+--------------+
3 rows in set (0.00 sec)

_通配符:匹配任意单个字符

mysql> select prod_id, prod_name from products where prod_name like ‘_ton anvil‘;
Empty set (0.00 sec)

mysql> select prod_id, prod_name from products where prod_name like ‘_ ton anvil‘;
+---------+-------------+
| prod_id | prod_name   |
+---------+-------------+
| ANV02   | 1 ton anvil |
| ANV03   | 2 ton anvil |
+---------+-------------+
2 rows in set (0.00 sec)

mysql必知必会前八章如上。

mysql学习--mysql必知必会,布布扣,bubuko.com

时间: 2024-10-29 05:15:04

mysql学习--mysql必知必会的相关文章

MySQL必知必会 学习笔记(一)

第一章  了解SQL 模式:   关于数据库和表的布局以及特性的信息.[描述表可以存储什么样的数据,数据如何分解,各部分信息如何命名等等,可以用来描述数据库中特定的表以及整个数据库(和其中表的关系)]. 第二章 MySQL简介 MySQL是一种DBMS,即它是一种数据库软件.基于客户机----服务器的数据库. MySQL工具: 1.mysql 命令行实用程序 2.MySQL Administrator 3.MySQL query Browser 第四章 检索数据 LIMIT 5 表示MySQL返

mysql学习--mysql必知必会1

?? 例如以下为mysql必知必会第九章開始: 正則表達式用于匹配特殊的字符集合.mysql通过where子句对正則表達式提供初步的支持. keywordregexp用来表示后面跟的东西作为正則表達式处理. (.)是正則表達式的一个符号,表示匹配随意一个字符: mysql> select prod_name -> from products -> where prod_name regexp '.000' -> order by prod_name; +--------------

《MySQL必知必会学习笔记》:正则表达式

正则表达式的应用 前面的几节的过滤例子允许用匹配.比较和通配操作符来寻找数据.对于基本的数据过滤,这样就足够了.但是随着过滤条件的复杂性的增加,where子句本身的复杂性也有必要增加.这也就是正则表达式变得有用的地方. 正则表达式是用来匹配文本中特殊的字符集合. 正则表达式不是自己第一次见,在JAVA/C++ 这些语言中,都有正则表达式,不过他们的用途是一样的,都是匹配文本中的字符串.可能具体的用法不太一样,但也差不多.下面将一一进行学习.介绍. 基本字符的匹配 当我们想查找某列中的字符中是否有

《MySQL必知必会》学习笔记

<MySQL必知必会>注重实用性,操作性很强,适用于广大软件开发和数据库管理人员学习参考,Amazon全五星评价.学习与参考皆宜.

《MySQL必知必会》学习笔记_1

#选择数据库 USE mysql #返回可用数据库列表 SHOW DATABASES #返回当前数据库中可用表 SHOW TABLES #返回表列 SHOW COLUMNS FROM db #显示特定数据库的创建语句 SHOW CREATE DATABASE mysql #显示广泛的服务器状态信息 SHOW STATUS #显示授权用户的安全权限 SHOW GRANTS 多条SQL语句必须以分号分隔. SQL语句不区分大小写,习惯性大写. 检索不同的行用DISTINCT,只返回不同的值. 限制结

《MySQL必知必会》读书笔记_3

PS:这次的信息量有点大. 聚集不同值 SELECT AVG(DISTINCT prod_price) AS avg_price FROM products WHERE vend_id = 1003 #相同的值不会被计算 组合聚集函数 SELECT COUNT(*) AS num_items, MIN(prod_price) AS price_min, MAX(prod_price) AS price_max, AVG(prod_price) AS price_avg FROM products

《mysql必知必会》读书笔记--存储过程的使用

以前对mysql的认识与应用只是停留在增删改查的阶段,最近正好在学习mysql相关内容,看了一本书叫做<MySQL必知必会>,看了之后对MySQL的高级用法有了一定的了解.以下内容只当读书笔记. 如有转载请注明出处~ 存储过程的使用 执行存储过程 CALL productpricing() 执行名为productpricing的存储过程 创建存储过程 CREATE PROCEDURE productpricing() BEGIN SELECT avg(prod_price) AS pricea

MySQL必知必会 pdf完整版

需要学习的朋友可以通过网盘下载: http://tadown.com/fs/8yi6be9nsehu9e921/内容简介  · · · · · · <MySQL必知必会>MySQL是世界上最受欢迎的数据库管理系统之一.书中从介绍简单的数据检索开始,逐步深入一些复杂的内容,包括联结的使用.子查询.正则表达式和基于全文本的搜索.存储过程.游标.触发器.表约束,等等.通过重点突出的章节,条理清晰.系统而扼要地讲述了读者应该掌握的知识,使他们不经意间立刻功力大增. 读者评论: 飞林沙  2013-11

MySQL必知必会-官方数据库表及SQL脚本导入生成

最近在复习SQL语句,看的是MySQL必知必会这本书,但是发现附录中只有表设计,没有表的具体数据.所以在学习相应的语句中体验不是很好,去网上查了数据库的内容,自己慢慢导入到了数据库中.把表放出来作为参照,SQL脚本语句放在最后,可以直接导到自己的数据库. customer表 cust_id cust_name cust_address cust_city cust_state cust_zip cust_country cust_contact cust_email 10001 Coyote I