MySQL命令学习笔记(一)

MySQL命令学习笔记

1 使用数据库

1.1 连接数据库

  安装教程参考此博客Windows下Mysql和Navicat的安装及使用。为连接到mysql,需要以下信息:

  • 主机名(计算机名)——若连接到本地mysql服务器,为localhost;
  • 端口(若使用默认端口3306之外的端口);
  • 用户名和密码
    在Windows下,利用cmd登录mysql,命令如下:
net start mysql   #启动mysql服务
mysql -u root -p  #登录mysql

当配置文件更改后,需要重启mysql服务,命令如下:

net stop mysql   #停止mysql服务
net start mysql   #启动mysql服务
mysql -u root -p  #登录mysql

结果如下图:
login

使用SHOW命令来查看数据库的信息

SHOW DATABASES;

结果如下:
show

使用SHOW TABLES命令来获取一个数据库内的表的列表,命令如下:

SHOW TABLES;

结果如下:
show+select
这里输入上述命令的时候,出现ERROR 1046:No database selected,因为没有选择数据库,所以先使用USE命令选择数据库的名称,再使用SHOW TABLES命令,查看test数据库下的表格,如图所示:

USE test;
SHOW TABLES;
SHOW COLUMNS FROM table1;

show+columns

SHOW COLUMNS要求给出一个表名,其对每个字段返回一行,行中包含字段名、数据类型、是否允许NULL、键信息、默认值以及其他信息

**自动增量:**在每个行添加到表中时,mysql可以自动地为每个行分配下一个可用的编号,不用在添加一行时手动分配唯一值。
所支持的其他SHOW语句还有:

  • SHOW STATUS——用于显示广泛的服务器信息;
  • SHOW CREATE DATABASESHOW CREATE TABLE——分别用来显示创建特定数据库或表的mysql语句;
  • SHOW GRANTS——用来显示授予用户(所有用户或特定用户)的安全权限;
  • SHOW ERRORSSHOW WARNINGS,用来显示服务器错误或警告信息。

2 检索数据

2.1 SELECT语句

检索单个列,命令格式如下:

SELECT 列名称 FROM 表名称;
SELECT id FROM table1;    #在表table1中检索id列

所需的列名在SELECT关键字之后给出,FROM关键字指出从其中检索数据的表名

注:
**结束sql语句:**多条SQL语句必须以分号(;)分隔
**sql语句和大小写:**SQL语句不区分大小写
**使用空格:**在处理SQL语句时,其中所有空格都被忽略

2.2 检索多个列

SELECT关键字后给出多个列名,列名之间必须以逗号分隔,即可检索一个表中的多个列。命令格式如下:

SELECT id,name,home FROM table1;

2.3 检索所有列

用星号(*)通配符来检索所有的列,如下所示:

SELECT * FROM table1;

2.4 检索不同的行

当检索的列中有相同的行时,可使用DISTINCT关键字来指示mysql只返回不同的值,如下所示:

SELECT DISTINCT id FROM table1;

SELECT DISTINCT id告诉mysql只返回不同(唯一)的id行,DISTINCT关键字必须放在列名的前面。

2.5 限制结果

SELECT语句返回所有匹配的行,它们可能是指定表中的每个行。为
了返回第一行或前几行,可使用LIMIT子句,命令如下:

SELECT name FROM table1 LIMIT 3;

LIMIT 3返回从首行开始的三行。
下面返回第n行开始的m行,命令如下:

SELECT name FROM table1 LIMIT 3,2;

LIMIT 3, 2指示MySQL返回从行3开始的5行。第一个数为开始
位置,第二个数为要检索的行数。

注:
行0 检索出来的第一行为行0而不是行1。因此LIMIT 1,1
将检索出第二行而不是第一行。
mysql 5支持LIMIT的另一种替代语法:LIMIT 4 OFFSET 3意为从行3开始取4行,就像LIMIT 3, 4一样。

2.6 使用完全限定的表名

若table1确实在test数据库中,则可使用以下命令:

SELECT table1.name FROM test.table1;

3 排序检索数据

3.1 排序数据

为了明确地排序用SELECT语句检索出的数据,可使用ORDER BY子句。
ORDER BY子句取一个或多个列的名字,据此对输出进行排序:

SELECT id FROM table1 ORDER BY home;

此命令指示mysql对id列以home中的元素的字母顺序排序输出,即对home按照字母进行排序,然后id按照此排序输出。

3.2 按多个列排序

SELECT phone,name FROM table1 ORDER BY home,id;

此命令指示mysql对phone列先按home中的元素的字母顺序排序,再按照id排序输出。

3.3 指定排序方向

数据排序不限于升序排序(从A到Z)。这只是默认的排序顺序,还可
以使用ORDER BY子句以降序(从Z到A)顺序排序。为了进行降序排序,
必须指定DESC关键字,命令如下:

SELECT phone FROM table1 ORDER BY home DESC;

**注:**DESC关键字只应用到直接位于其前面的列名。

结合上述例子,可使用ORDER BYLIMIT的合,找出一个列中最高或最低的值,命令如下:

SELECT phone FROM table1 ORDER BY home DESC LIMIT 1;

猜你喜欢

转载自blog.csdn.net/qq_18150255/article/details/90577367