mysql数据库的使用及查询语句

使用数据库

连接

连接数据库时,如果仅仅输入mysql,可能会出现错误信息,因为可能需要安全证书,或者是因为MYSQL没有运行到本地或者默认端口上。mysql接受你可以使用的一组命令行参数。

mysql -u 数据库账户 -p 密码 

连接成功之后会出现以下欢迎信息

Welcome to the MySQL monitor...
...
mysql>

PS:

  • 命令输入在mysql>之后;
  • 命令用;或者\g结束,换句话说,仅按Enter不执行命令;
  • 输入help或者\h获取帮助,也可以输入更多的文本获得特定命令的帮助(如,输入help select获得使用select语句的帮助)
  • 输入quit或exit退出命令行实用程序

选择数据库

最初链接到MYSQL时,没有打开任何数据库,需要选择一个数据库,可以使用USE关键字(key word)
例如,为了使用crashcourse数据库,应该输入一下内容:

USE crashcourse;

成功之后会返回

Database changed

PS:USE语句并不返回任何结果,依赖于使用的客户机,显示某种形式的通知。例如这里显示的Database changed消息是mysql命令行实用程序在数据库选择成功后显示的。
$必须先使用USE打开数据库,才能读取其中的数据$

  • MYSQL数据库使用show命令来显示数据库的名字
SHOW DATABASES;

+-------------+
| Database    +
+-------------+
| 数据库一    |
| 数据库二    |
| 数据库三    |
+-------------+
  • 使用SHOW TABLES;命令可以获取数据库内的表的列表,如下图所示
SHOW TABLES;
+-----------------------+
| Tables_in_数据库名    +
+-----------------------+
|     表一              |
|     表二              |
|     表三              |
+-----------------------+
  • 当然,SHOW命令也可以用来显示表列
SHOW COLUMNS FROM customers;
+---------------+-----------+--------+
| Field         |  Type     | ...    |
+---------------+-----------+--------+
| cust_id       |int(11)    | ...    |  
| cust_name     |char(50)   | ...    |
| cust_address  |char(50)   | ...    |
| ...           |...        | ...    |
+---------------+-----------+--------+

SHOW COLUMNS要求给出一个表名,(这个例子中的FORM customers),他对每个字段返回一行,行中包含字段名、数据类型、是否允许NULL、键信息...
PS:DESCRIBE语句,MYSQL支持用该命令作为SHOW COLUMNS FROM的一种快捷方式。换句话说,DESCRIBE customers是SHOW COLUMNS FROM customers;de 一种快捷方式。

  • SHOW STATUS 用于显示广泛的服务器状态信息
  • SHOW CREATE DATBASE和SHOW CREATE TABLE,分别用来显示创建特定数据库或者表的mysql语句
  • SHOW GRANTS,用来显示授予用户的安全权限
  • SHOW ERRORS和SHOW WARNINGS用来显示服务器错误或警告消息

检索数据

SELECT语句 检索单个列

SELECT name FROM student;

上述语句利用SELECT语句从student表中检索一个名为name的列。

+------------+
|    name    |
+------------+
|    张一    |
|    张二    |
|    张三    |
+------------+

结束SQL语句: 多条SQL语句必须以;分隔。单条SQL语句后面可以不加;但是加上分号肯定没有坏处。如果你使用mysql命令行,必须加上;来结束SQL语句。
SQL语句和大小写:,SQL语句不区分大小写,但是习惯上对于所有SQL关键字使用大写,而对于所有列和表名使用小写,这样做使代码更易于阅读和调试。

检索多列

检索多列同样使用SELECT语句,不同的是在SELECT关键字后给出多个列,列名之间必须以逗号分隔(当选择多个列时,一定要在列名之间加上逗号,最后一个列名后不加,如果最后一个列名后加了逗号,将出现错误)

SELECT id, name, age FROM student; 

上述例子,表明从student表中检索学号,姓名,年龄

检索所有列

除了指定所需的列外,SELECT语句还可以检索所有的列而不必逐个列出他们。我们可以通过在实际列名的位置使用星号(*)通配符来达到。

SELECT * FROM student;

检索不同的行

SELECT 语句返回所有匹配的行。但是有时我们不想每个值每次都出现,对于重复的值只出现一次就好。
解决办法是使用DISTINCT(明显的、清楚的、有区别的)关键字

SELECT DISTINCT id FROM student;

使用上述命令,是只返回不同(唯一)的id,如果使用该关键字,他必须直接放在列名的前面。

限制结果

使用LIMIT子句,可以指定表中的每个行

SELECT name 
FROM student
LIMIT 5;

上述语句使用SELECT语句检索单个列,LIMIT 5只是mysql返回不多于5行

SELECT name 
FROM student
LIMIT 5, 5;

LIMIT 5,5 指示mysql返回从第5行开始返回5行,第一个数是开始位置,第二个为要检索的行数。行数不够时,mysql将只返回他能返回的那么多行。

排序检索数据

单纯的使用SELECT 子句检索数据,输出并没有特定的顺序。 而有时我们需要返回有序的的数据。这时我们可以使用 ORDER BY语句来实现。

SELECT id 
FROM student
ORDER BY id;

这条语句表明按id顺序返回学生的学号信息

按多个列排序

经常需要不止一个列进行数据排序。例如要显示雇员清单,可能希望按姓和名排序(先按照姓排序,在按照名字排序)
为了按多个列排序,只要指定列名,列名之间用逗号分开即可

SELECT id, name, age
FROM student
ORDER BY id, name;

上述语句将先按照学生id排序,当id相同时按照name排序。

指定排序方向

ORDER BY 默认按照升序排序(关键字ASC),我们可以通过使用关键字DESC来实现降序排列
DESC关键字,只要应用到直接位于其前面的列名

SELECT id, name, age
FROM student
ORDER BY id DESC, name;

上述语句将只对id降序排列,name列任然按照升序排列

$在给出ORDER BY 语句时,应该只保证它位于FROM子句之后,如果使用LIMIT它必须位于ORDER BY 之后,使用的子句次序不对将会产生错误消息$

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容

  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,028评论 0 19
  • SQL与MySQL简介 数据库基础 从SQL的角度来看,数据库就是一个以某种有组织的方式存储的数据集合。我们可以采...
    heming阅读 3,054评论 1 8
  • 1.MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。My...
    黄花菜已凉阅读 4,560评论 3 60
  • 活出自我,感恩生活。 活过这一遭,须得兼备坚持与修养,才不枉当初选了那一座任性又精彩的独木桥。 ...
    冷念阅读 195评论 0 1
  • 1 和我一起住的于木木是个非常非常上进的女孩子,究竟有多么上进呢?举个粒子,我在家帮她签收的快递多半是书。 心理学...
    YouCore_框架的力量阅读 927评论 0 1