Mysql快速复习(一)基础

下文数据库名选用meter,表名选用elec。

如图:

Mysql快速复习(一)基础_第1张图片

一:基础

1.选择数据库

  use meter;

  分析:use语句并不返回任何结果,依赖于使用的客户机,显示某种形式的通知。


2.显示数据库

  show databases;

  显示数据表:show tablels;


3.显示表列

  show columns from elec;   

  或者使用:describe elec;


4.所支持的其他show语句有:

  show status;  用于显示广泛的服务器状态信息。

  show create database; 和  show create table 分别用来显示创建的特定数据库或表的MySQL语句。

  show grants:用来心事授权用户的安全权限。

  show errors; 和 show warnings;用来显示服务器错误或警告信息。


二:select语句

1.从products表中选择2列

select id,name from elec;

将会显示id和name列的所有内容。


2.检索所有列

select * from elec;

3.select检索时会显示所有匹配的行,比如Id都为1007都会被显示。

假如你只想检索不同的值的列表呢:

select distinct id from elec;   则只会显示id不同的所有行。


4.限制检索结果。为了返回第一行或前几行,可使用limit语句。

select id from elec limit 5;   指示mysql显示不多于5行。

为了得出下一个5行,可使用:select id from elec limit 5,5;      指示从第五行开始的后五行。


5.使用完全限定的列名和表名

select elec.id from elec;     限定列名,这个和检索某一列功能一样。

select elec.id from smart_meter.elec;    后面同时限定了表名


三:排序检索数据

1.排序

select id from elec order by id;    指示mysql按照id进行排序


2.按照多个列排序

selet id,name from elec order by id, name;   指示mysql首先按照id排序,其次按照name排序


3.指定排序方向

select id,name from elec order by id desc;       指示mysql按照id降序排序

升序的关键字是ASC,实际上asc没有多大用处,因为升序是默认的。


4.使用order by 和 limit 的组合,能够找出一个列中最高或最低的值

select id from elec order by id desc limit 2;              返回一个列中最低的两个值


四:过滤和检索数据

1.使用where子句
select id from elec where id = 1002;

注意:同时使用where子句和order by子句时,应该让order by位于where之后,否则将产生错误。

mysql的where子句支持下列操作符:
Mysql快速复习(一)基础_第2张图片




2.范围值检查
select id from elec where id between 1002 and 1007;


2.检查单个值
select id from elec where id < 1002;


3.不匹配检查
select id from elec where id <> 1002;

4.空值检查
select id from where id is NULL;

五:数据过滤

mysql支持and 和 or 等操作符。

1.select id from elec where id = 10 or id = 1003;

and 操作符比 or操作符 优先级高。

2.想用and和or时,控制优先级可用括号
如:select id from elec where (id = 1002 or id = 1004) and id > 1001;

3.in操作符
select id from where id in (1002, 1004) order by id;                in操作符其实完成了与or相同的功能

4.not 操作符
where子句中not操作符有且只有一个功能,那就是否定它之后所有跟的任何条件。
如:select id from elec where id not in (1002, 1007) order by id;


六:用通配符进行过滤

为在搜索子句中使用通配符,必须使用LIKE操作符。LIKE指示mysql在后跟的搜索模式中利用通配符匹配而不是直接相等匹配进行比较。
谓词:操作符何时不是操作符?答案是它作为谓词,从技术上说,LIKE是谓词而不是操作符,虽然最终的结果是相同的,但应该对此术语有所了解。

1.百分号%通配符
最长使用的通配符是%,在搜索串中,%表示任何字符的出现任意次数。
例如:select id from elec where id like '100%';
那么id开头是10的所有行都会被显示出来。

2.select id from elec where id like '%00%;
表示通配前后任意的词。

%还可通配0个,1个,或多个字符。虽然通配符可以匹配任何东西,但 有一个例外,就是NULL

3.下划线通配符_
与%用途一样,但是只匹配单个字符而不是多个字符。


使用表别名

其他版本

SELECT 语句的可读性可通过为表指定别名来提高,别名也称为相关名称或范围变量。分配表别名时,可以使用 AS 关键字,也可以不使用:

  • table_name AStable alias

  • table_name table_alias

在以下示例中,将别名 c 分配给 Customer,而将别名 s 分配给 Store





你可能感兴趣的:(数据库)