【MySQL数据库开发之二】MySQL 基础语句的书写与操作!

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

本篇Himi简单介绍一些MySQL数据库的基础操作;

注:mysql 语句对大小写不敏感,语句以分号“;”标识语句结束;

1.   首先使用两个简单的查询语句;

查询当前版本:select version();

                        查询当前日期:select current_date;

查询当前时间:select now();

       两句合并: select version() , current_date , now(); 

显示结果如下:

 

 
 
  1. mysql> select version() , current_date , now(); 
  2. +-----------+--------------+---------------------+ 
  3. | version() | current_date | now()               | 
  4. +-----------+--------------+---------------------+ 
  5. | 5.5.23    | 2012-04-17   | 2012-04-17 14:34:53 | 
  6. +-----------+--------------+---------------------+ 
  7. 1 row in set (0.00 sec) 

2.  SQL语句可分多行来写:

 
 
  1. mysql> select version(), 
  2.     -> current_date, 
  3.     -> now(), 
  4.     -> user(); 
  5. +-----------+--------------+---------------------+----------------+ 
  6. | version() | current_date | now()               | user()         | 
  7. +-----------+--------------+---------------------+----------------+ 
  8. | 5.5.23    | 2012-04-17   | 2012-04-17 14:38:42 | root@localhost | 
  9. +-----------+--------------+---------------------+----------------+ 
  10. 1 row in set (0.00 sec) 

 3. 使用查询语句来作为计算器,让mysql 为我们计算结果,如下:

 

 
 
  1. mysql> select 1*1,2*2,3*3; 
  2. +-----+-----+-----+ 
  3. | 1*1 | 2*2 | 3*3 | 
  4. +-----+-----+-----+ 
  5. |   1 |   4 |   9 | 
  6. +-----+-----+-----+ 
  7. 1 row in set (0.00 sec) 

4. 使用 \c 取消SQL语句的输入;先看下MySQL的一些提示符:

提示符 含义
mysql> 准备好接受新命令。
-> 等待多行命令的下一行。
‘> 等待下一行,等待以单引号(“’”)开始的字符串的结束。
“> 等待下一行,等待以双引号(“””)开始的字符串的结束。
`> 等待下一行,等待以反斜点(‘`’)开始的识别符的结束。
/*> 等待下一行,等待以/*开始的注释的结束。

输入\c以后,它切换回到mysql>,提供反馈以表明mysql准备接受一个新命令。

4. 创建使用数据库:

4.1   查询当前已存在的数据库:

 
 
  1. mysql> show databases; 
  2. +--------------------+ 
  3. | Database           | 
  4. +--------------------+ 
  5. | information_schema | 
  6. | mysql              | 
  7. | performance_schema | 
  8. | test               | 
  9. +--------------------+ 
  10. 4 rows in set (0.17 sec) 

4.2  使用已有的数据库;例如使用已存在的 test 数据库;

mysql> use testDatabase changed

4.3   假设你在test 该数据库创建的任何东西可以被访问它的其它人删除,因此,你应该询问MySQL管理员许可你使用自己的一个数据库。假定你想要调用你的menagerie,管理员需要执行这样一条命令:

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

这里your_mysql_name是分配给你的MySQL用户名,your_client_host是所连接的服务器所在的主机。

4.4    创建并选择新的数据库;

 
 
  1. mysql> create database himiDB 
  2.     -> ; 
  3. Query OK, 1 row affected (0.06 sec) 
  4.   
  5. mysql> use himidb 
  6. Database changed 
  7. mysql> 

5. 创建使用表;

5.1     新创建的数据库中是没有任何表的,如上面我新建的himiDB,如下我使用 show tables; 显示:

 
 
  1. mysql> show databases 
  2.     -> ; 
  3. +--------------------+ 
  4. | Database           | 
  5. +--------------------+ 
  6. | information_schema | 
  7. | himiDB             | 
  8. | mysql              | 
  9. | performance_schema | 
  10. | test               | 
  11. +--------------------+ 
  12. 5 rows in set (0.00 sec) 
  13.   
  14. mysql> use himidb 
  15. Database changed 
  16. mysql> show tables 
  17.     -> ; 
  18. Empty set (0.00 sec) 

而关于表的创建比较麻烦,需要设计,较难的部分是决定你的数据库结构应该是什么:你需要什么数据库表,各数据库表中有什么样的列。你将需要一个包含你每个宠物的记录的表。它可称为pet表,并且它应该包含,最少,每个动物的名字。因为名字本身不是很有趣,表应该包含另外的信息。例如,如果在你豢养宠物的家庭有超过一个人,你可能想要列出每个动物的主人。你可能也想要记录例如种类和性别的一些基本的描述信息。

年龄呢?那可能有趣,但是存储到一个数据库中不是一件好事情。年龄随着时间流逝而变化,这意味着你将要不断地更新你的记录。相反, 存储一个固定值例如生日比较好,那么,无论何时你需要年龄,可以以当前日期和出生日期之间的差来计算它。MySQL提供了日期运算函数,因此这并不困难。存储出生日期而非年龄还有其它优点:·         你可以使用数据库完成这样的任务,例如生成即将到来的宠物生日的提示。(如果你认为这类查询有点蠢,注意,这与从商务数据库来识别出不久要发给生日祝贺的客户是同一个问题,因为计算机帮助私人联络。)·         你可以相对于日期而不止是当前日期来计算年龄。例如,如果你在数据库存储死亡日期,你能很容易地计算出一只宠物死时有多大。

这里假设我们创建一个people 的表,其中包含人的  名字、名族(h/m 来表示汉族/满族)、城市,性别(m/w man/woman)、出生和死亡日期。

 
 
  1. mysql> create table people ( 
  2.     -> name varchar(20), 
  3.     -> mz varchar(1), 
  4.     -> city varchar(10), 
  5.     -> sex varchar(1), 
  6.     -> birthday varchar(20), 
  7.     -> deathday varchar(20)); 
  8. Query OK, 0 rows affected (0.37 sec) 

创建表规则:  create table xx(table Name) ( item的名字  item的类型  );

这里 varchar 字符,varchar()小括号内的表示字符大小,根据情况自己定义,范围是:1到65535的任何长度(如果选择得不合适,后来证明你需要一个更长的字段,MySQL提供一个ALTER TABLE语句。)

OK,我们来查看这个新创建的表中的类目(具体每个记录的查看使用 select *from 语句):

 

 
 
  1. mysql> show tables; 
  2. +------------------+ 
  3. | Tables_in_himidb | 
  4. +------------------+ 
  5. | people           | 
  6. +------------------+ 
  7. 1 row in set (0.00 sec) 
  8.   
  9. mysql> describe people; 
  10. +----------+-------------+------+-----+---------+-------+ 
  11. | Field    | Type        | Null | Key | Default | Extra | 
  12. +----------+-------------+------+-----+---------+-------+ 
  13. | name     | varchar(20) | YES  |     | NULL    |       | 
  14. | mz       | varchar(1)  | YES  |     | NULL    |       | 
  15. | city     | varchar(10) | YES  |     | NULL    |       | 
  16. | sex      | varchar(1)  | YES  |     | NULL    |       | 
  17. | birthday | varchar(20) | YES  |     | NULL    |       | 
  18. | deathday | varchar(20) | YES  |     | NULL    |       | 
  19. +----------+-------------+------+-----+---------+-------+ 
  20. 6 rows in set (0.14 sec) 

5.2  往表中插入数据:

5.2.1. 第一种使用读取本地txt插入到表中,txt的每个value之间以tab空开,然后采用如下语句插入:

load data local infile ‘xxx路径’ into table people;

如下:

 
 
  1. mysql> load data local infile '/Users/Himi/Desktop/people.txt' into table people; 
  2. Query OK, 1 row affected (0.08 sec) 
  3. Records: 1  Deleted: 0  Skipped: 0  Warnings: 0 
  4.   
  5. mysql> SELECT * FROM people; 
  6. +------+------+---------+------+-----------+----------+ 
  7. | name | mz   | city    | sex  | birthday  | deathday | 
  8. +------+------+---------+------+-----------+----------+ 
  9. | himi | h    | beijing | m    | 1989-9-23 | NULL     | 
  10. +------+------+---------+------+-----------+----------+ 
  11. 1 row in set (0.03 sec) 

OK,没有问题,txt每一行对应表单的每一行,如果需要插入多行可以直接回车就OK啦。

注意:

mysql> LOAD DATA LOCAL INFILE ‘/path/people.txt’ INTO TABLE people;

请注意如果用Windows中的编辑器(使用\r\n做为行的结束符)创建文件,应使用:

mysql> LOAD DATA LOCAL INFILE ‘/path/people.txt’ INTO TABLE people    -> LINES TERMINATED BY ‘\r\n’;

(在运行OS X的Apple机上,应使用行结束符’\r’。)

如果你愿意,你也能明确地在LOAD DATA语句中指出列值的分隔符和行尾标记,但是默认标记是定位符和换行符。

5.2.2.  使用INSERT语句手动直接插入

 
 
  1. mysql> insert into people 
  2.     -> values('insertHimi','h','Anhui','m','1989-9-23',NULL); 
  3. Query OK, 1 row affected (0.10 sec) 
  4.   
  5. mysql> select *from people; 
  6. +------------+------+---------+------+-----------+----------+ 
  7. | name       | mz   | city    | sex  | birthday  | deathday | 
  8. +------------+------+---------+------+-----------+----------+ 
  9. | himi       | h    | beijing | m    | 1989-9-23 | NULL     | 
  10. | himi       | h    | beijing | m    | 1989-9-23 | NULL     | 
  11. | himi3      | h    | beijing | m    | 1989-9-23 | NULL     | 
  12. | insertHimi | h    | Anhui   | m    | 1989-9-23 | NULL     | 
  13. +------------+------+---------+------+-----------+----------+ 
  14. 4 rows in set (0.01 sec) 

 





本文转自 xiaominghimi 51CTO博客,原文链接:http://blog.51cto.com/xiaominghimi/908909,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
存储 关系型数据库 MySQL
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
47 0
|
3月前
|
关系型数据库 MySQL 数据库
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
49 0
|
4月前
|
关系型数据库 MySQL Docker
利用docker 开发 信息系统,python + mysql + flask + jquery
利用docker 开发 信息系统,python + mysql + flask + jquery
59 2
|
6月前
|
存储 Java 关系型数据库
JSP考试质量分析系统myeclipse开发mysql数据库bs框架java编程web网页结构
JSP 考试质量分析系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
183 1
|
3月前
|
NoSQL 关系型数据库 MySQL
基于Python和mysql开发的智慧校园答题考试系统(源码+数据库+程序配置说明书+程序使用说明书)
基于Python和mysql开发的智慧校园答题考试系统(源码+数据库+程序配置说明书+程序使用说明书)
|
3月前
|
NoSQL 关系型数据库 MySQL
基于Python和mysql开发的BBS问答社区管理系统(源码+数据库+程序配置说明书+程序使用说明书)
基于Python和mysql开发的BBS问答社区管理系统(源码+数据库+程序配置说明书+程序使用说明书)
|
1天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
4天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
6月前
|
存储 Java 关系型数据库
JSP考试质量分析系统myeclipse开发mysql数据库bs框架java编程web网页结构
JSP 考试质量分析系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
124 0
|
1月前
|
Java 关系型数据库 MySQL
【项目】手把手带你用 SpringBoot、Uniapp、MySql 开发一个简单的活动报名项目
【项目】手把手带你用 SpringBoot、Uniapp、MySql 开发一个简单的活动报名项目
124 1