使用mysql建立和使用数据库

学习使用如下操做:html

  • 建立数据
  • 建立表
  • 导入或插入数据
  • 经过各类方式从表中检索数据
  • 使用复杂的表

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

SHOW DATABASES;

使用数据库(USE和quit同样能够不用在语句末尾加分号):sql

USE world

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

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

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

 

建立数据库:服务器

CREATE DATABASE menagerie;

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

menagerie数据库建立成功:学习

使用数据库:ui

USE menagerie

登录时直接链接相应的数据库:code

mysql -h host -u user -p menagerie

显示当前链接的数据库:

SELECT DATABASE();

 

显示当前数据库中的表:

SHOW TABLES;

确认你要建立的表所须要存储的信息内容,尽可能存储一些固定不常变更的内容,好比咱们能够用出生日期代替年龄,这样没必要常常更新数据库,mysql数据库同时还提供了一些函数以供计算。

建立表:

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

语句太长也可换行。

查看建立的表:

DESCRIBE pet;

 

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

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

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

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

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

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

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

使用sql语句插入数据:

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

 

查询数据库:

SELECT what_to_select
FROM which_table
WHERE conditions_to_satisfy;

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

查询表中全部数据:

SELECT * FROM pet;

修改数据:

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

删除整个表中的数据:

DELETE FROM pet;

误删后若是有txt备份可从新导入数据进行恢复。

得到特定的数据:

SELECT * FROM pet WHERE name = 'Bowser';

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

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

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

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

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

 

查询特定的列:

SELECT name, birth FROM pet;

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

SELECT owner FROM pet;

SELECT DISTINCT owner FROM pet;

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

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

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

SELECT name, birth FROM pet ORDER BY birth;

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

SELECT name, birth FROM pet ORDER BY birth DESC;

根据2列的值进行排序:

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

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

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

按照年龄顺序排列:

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

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

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

MONTH()计算出月份:

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

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

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

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

 

参考:

  1. http://dev.mysql.com/doc/refman/5.7/en/database-use.html
相关文章
相关标签/搜索