使用mysql创建和使用数据库

学习使用以下操作:

  • 创建数据
  • 创建表
  • 导入或插入数据
  • 通过各种方式从表中检索数据
  • 使用复杂的表

查看当前服务器中的数据库:

SHOW DATABASES;

162848_k208_1165991.png

使用数据库(USE和quit一样可以不用在语句末尾加分号):

USE world

164120_CMjZ_1165991.png

给账号分配使用数据库的权限(这句我不是很懂):

GRANT ALL ON menagerie.* TO 'your_mysql_name'@'your_client_host';

your_mysql_name(分配给你的MySQL用户名)、your_client_host(所连接的服务器所在的主机)

 

创建数据库:

CREATE DATABASE menagerie;

在Unix系统中,数据库对除了关键字外的其他值大小写敏感,所以menagerie不等于Menagerie或MENAGERIE,而在windows系统中,则没有大小写的限制。为了适应不同环境下的数据库,我们应保持大小写一致,以免出错。

menagerie数据库创建成功:

165055_njSD_1165991.png

使用数据库:

USE menagerie

165446_p3a7_1165991.png

登陆时直接连接相应的数据库:

mysql -h host -u user -p menagerie

165905_790K_1165991.png

显示当前连接的数据库:

SELECT DATABASE();

170130_FcZl_1165991.png

 

显示当前数据库中的表:

SHOW TABLES;

170318_xytH_1165991.png

确认你要创建的表所需要存储的信息内容,尽量存储一些固定不常变动的内容,比如我们可以用出生日期代替年龄,这样不必经常更新数据库,mysql数据库同时还提供了一些函数以供计算。

创建表:

CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);

171242_JOkk_1165991.png

语句太长也可换行。

查看创建的表:

DESCRIBE pet;

171423_gzCe_1165991.png

 

我们创建的表为空表,插入信息最快的方法是导入数据。

menagerie.txt文件中的数据,列之间用tab键分隔,如果数据为\N代表数据库中的null:

Whistler	Gwen	bird	\N	1997-12-09	\N

将txt文件的内容导入数据库: 

LOAD DATA LOCAL INFILE 'D:/menagerie.txt' INTO TABLE pet;

172607_0I4Z_1165991.png

将txt文件的内容批量导入数据库:

LOAD DATA LOCAL INFILE 'D:/menagerie.txt' INTO TABLE pet
LINES TERMINATED BY '\r\n';

173556_UtCt_1165991.png

使用sql语句插入数据:

INSERT INTO pet
VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);

173817_DQjO_1165991.png

 

查询数据库:

SELECT what_to_select
FROM which_table
WHERE conditions_to_satisfy;

what_to_select(要查询的内容)、which_table(查询的表)、conditions_to_satisfy(查询的条件)

174021_P0XZ_1165991.png

查询表中所有数据:

SELECT * FROM pet;

174548_Cf6D_1165991.png

修改数据:

UPDATE pet SET birth = '1989-08-31' WHERE name = 'Bowser';

174708_phTX_1165991.png

删除整个表中的数据:

DELETE FROM pet;

误删后如果有txt备份可重新导入数据进行恢复。

获得特定的数据:

SELECT * FROM pet WHERE name = 'Bowser';

174950_0d9j_1165991.png

SELECT * FROM pet WHERE birth >= '1998-1-1';

175021_cioB_1165991.png

SELECT * FROM pet WHERE species = 'dog' AND sex = 'f';

175109_Fcgx_1165991.png

SELECT * FROM pet WHERE species = 'snake' OR species = 'bird';

175140_lfex_1165991.png

SELECT * FROM pet WHERE (species = 'cat' AND sex = 'm')
OR (species = 'dog' AND sex = 'f');

175307_znFE_1165991.png

查询条件可以用AND或者OR连接,AND的优先级高于OR,但将一组查询条件用括号包裹起来仍然是一个好习惯。

 

查询特定的列:

SELECT name, birth FROM pet;

175639_txOo_1165991.png

查询不重复的列,使用关键字DISTINCT :

SELECT owner FROM pet;

175729_CmFK_1165991.png

SELECT DISTINCT owner FROM pet;

175831_Ayar_1165991.png

将列和行查询条件组合起来进行查询:

SELECT name, species, birth FROM pet
WHERE species = 'dog' OR species = 'cat';

180009_cTAI_1165991.png

根据某列的值对输出的行数据排序:

SELECT name, birth FROM pet ORDER BY birth;

180303_guTG_1165991.png

根据某列的值对输出的行数据进行降序排列:

SELECT name, birth FROM pet ORDER BY birth DESC;

180524_3t6Z_1165991.png

根据2列的值进行排序:

SELECT name, species, birth FROM pet
ORDER BY species, birth DESC;

180643_8U6y_1165991.png

根据当前时间和出生日期计算年龄,并将表输出在屏幕上:

SELECT name, birth, CURDATE(),
TIMESTAMPDIFF(YEAR,birth,CURDATE()) AS age
FROM pet;

110440_NSm4_1165991.png

按照年龄顺序排列:

SELECT name, birth, CURDATE(),
TIMESTAMPDIFF(YEAR,birth,CURDATE()) AS age
FROM pet ORDER BY age;

111015_YcpO_1165991.png

排除出生日期为空的并排序:

SELECT name, birth, CURDATE(),
TIMESTAMPDIFF(YEAR,birth,CURDATE()) AS age
FROM pet WHERE birth IS NOT NULL ORDER BY age;

111930_oH1I_1165991.png

MONTH()计算出月份:

SELECT name, birth, MONTH(birth) FROM pet;

112219_5Qy0_1165991.png

根据计算出的月份进行筛选:

SELECT name, birth FROM pet WHERE MONTH(birth) = 5;

112243_kXYU_1165991.png

未完待续……(练习简直太长了呀~~)

 

参考:

  1. http://dev.mysql.com/doc/refman/5.7/en/database-use.html

转载于:https://my.oschina.net/u/1165991/blog/739445

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值