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开始的2行。第一个数为开始位置,第二个数为要检索的行数。
行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;

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

3.2 按多个列排序
SELECT phone,name FROM table1 ORDER BY home,id;

此命令对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;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值