首页 > 数据库 >【MySQL数据库开发之二】MySQL 基础语句的书写与一些数据库操作(创建使用数据库、表)!

【MySQL数据库开发之二】MySQL 基础语句的书写与一些数据库操作(创建使用数据库、表)!

时间:2022-11-25 12:06:13浏览次数:59  
标签:varchar people 数据库 MySQL 之二 sec mysql NULL

本站文章均为​ 李华明Himi ​​原创,转载务必在明显处注明


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

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

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

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

                        查询当前日期:select current_date;

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

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

显示结果如下:


​mysql> ​​ ​​select​​ ​​version() , ​​ ​​current_date​​ ​​, now();​


​+​​ ​​-----------+--------------+---------------------+​


​| version() | ​​ ​​current_date​​ ​​| now()               |​


​+​​ ​​-----------+--------------+---------------------+​


​| 5.5.23    | 2012-04-17   | 2012-04-17 14:34:53 |​


​+​​ ​​-----------+--------------+---------------------+​


​1 row ​​ ​​in​​ ​​set​​ ​​(0.00 sec)​


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


​mysql> ​​ ​​select​​ ​​version(),​


​-> ​​ ​​current_date​​ ​​,​


​-> now(),​


​-> ​​ ​​user​​ ​​();​


​+​​ ​​-----------+--------------+---------------------+----------------+​


​| version() | ​​ ​​current_date​​ ​​| now()               | ​​ ​​user​​ ​​()         |​


​+​​ ​​-----------+--------------+---------------------+----------------+​


​| 5.5.23    | 2012-04-17   | 2012-04-17 14:38:42 | root@localhost |​


​+​​ ​​-----------+--------------+---------------------+----------------+​


​1 row ​​ ​​in​​ ​​set​​ ​​(0.00 sec)​


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


​mysql> ​​ ​​select​​ ​​1*1,2*2,3*3;​


​+​​ ​​-----+-----+-----+​


​| 1*1 | 2*2 | 3*3 |​


​+​​ ​​-----+-----+-----+​


​|   1 |   4 |   9 |​


​+​​ ​​-----+-----+-----+​


​1 row ​​ ​​in​​ ​​set​​ ​​(0.00 sec)​


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

提示符

含义

mysql>

准备好接受新命令。

->

等待多行命令的下一行。

‘>

等待下一行,等待以单引号(“’”)开始的字符串的结束。

“>

等待下一行,等待以双引号(“””)开始的字符串的结束。

`>

等待下一行,等待以反斜点(‘`’)开始的识别符的结束。

/*>

等待下一行,等待以/*开始的注释的结束。

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

4. 创建使用数据库:

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


​mysql> show databases;​


​+​​ ​​--------------------+​


​| ​​ ​​Database​​           ​​|​


​+​​ ​​--------------------+​


​| information_schema |​


​| mysql              |​


​| performance_schema |​


​| test               |​


​+​​ ​​--------------------+​


​4 ​​ ​​rows​​ ​​in​​ ​​set​​ ​​(0.17 sec)​


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


​mysql> use test​


​Database​​ ​​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    创建并选择新的数据库;


​mysql> ​​ ​​create​​ ​​database​​ ​​himiDB​


​-> ;​


​Query OK, 1 row affected (0.06 sec)​


 


​mysql> use himidb​


​Database​​ ​​changed​


​mysql>​


 5. 创建使用表;

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


​mysql> show databases​


​-> ;​


​+​​ ​​--------------------+​


​| ​​ ​​Database​​           ​​|​


​+​​ ​​--------------------+​


​| information_schema |​


​| himiDB             |​


​| mysql              |​


​| performance_schema |​


​| test               |​


​+​​ ​​--------------------+​


​5 ​​ ​​rows​​ ​​in​​ ​​set​​ ​​(0.00 sec)​


 


​mysql> use himidb​


​Database​​ ​​changed​


​mysql> show tables​


​-> ;​


​Empty ​​ ​​set​​ ​​(0.00 sec)​


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

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

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


​mysql> ​​ ​​create​​ ​​table​​ ​​people (​


​-> ​​ ​​name​​ ​​varchar​​ ​​(20),​


​-> mz ​​ ​​varchar​​ ​​(1),​


​-> city ​​ ​​varchar​​ ​​(10),​


​-> sex ​​ ​​varchar​​ ​​(1),​


​-> birthday ​​ ​​varchar​​ ​​(20),​


​-> deathday ​​ ​​varchar​​ ​​(20));​


​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 语句):


​mysql> show tables;​


​+​​ ​​------------------+​


​| Tables_in_himidb |​


​+​​ ​​------------------+​


​| people           |​


​+​​ ​​------------------+​


​1 row ​​ ​​in​​ ​​set​​ ​​(0.00 sec)​


 


​mysql> describe people;​


​+​​ ​​----------+-------------+------+-----+---------+-------+​


​| Field    | Type        | ​​ ​​Null​​ ​​| ​​ ​​Key​​ ​​| ​​ ​​Default​​ ​​| Extra |​


​+​​ ​​----------+-------------+------+-----+---------+-------+​


​| ​​ ​​name​​     ​​| ​​ ​​varchar​​ ​​(20) | YES  |     | ​​ ​​NULL​​    ​​|       |​


​| mz       | ​​ ​​varchar​​ ​​(1)  | YES  |     | ​​ ​​NULL​​    ​​|       |​


​| city     | ​​ ​​varchar​​ ​​(10) | YES  |     | ​​ ​​NULL​​    ​​|       |​


​| sex      | ​​ ​​varchar​​ ​​(1)  | YES  |     | ​​ ​​NULL​​    ​​|       |​


​| birthday | ​​ ​​varchar​​ ​​(20) | YES  |     | ​​ ​​NULL​​    ​​|       |​


​| deathday | ​​ ​​varchar​​ ​​(20) | YES  |     | ​​ ​​NULL​​    ​​|       |​


​+​​ ​​----------+-------------+------+-----+---------+-------+​


​6 ​​ ​​rows​​ ​​in​​ ​​set​​ ​​(0.14 sec)​


5.2  往表中插入数据:

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

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

如下:


​mysql> ​​ ​​load​​ ​​data ​​ ​​local​​ ​​infile ​​ ​​'/Users/Himi/Desktop/people.txt'​​ ​​into​​ ​​table​​ ​​people;​


​Query OK, 1 row affected (0.08 sec)​


​Records: 1  Deleted: 0  Skipped: 0  Warnings: 0​


 


​mysql> ​​ ​​SELECT​​ ​​* ​​ ​​FROM​​ ​​people;​


​+​​ ​​------+------+---------+------+-----------+----------+​


​| ​​ ​​name​​ ​​| mz   | city    | sex  | birthday  | deathday |​


​+​​ ​​------+------+---------+------+-----------+----------+​


​| himi | h    | beijing | m    | 1989-9-23 | ​​ ​​NULL​​     ​​|​


​+​​ ​​------+------+---------+------+-----------+----------+​


​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语句手动直接插入


​mysql> ​​ ​​insert​​ ​​into​​ ​​people​


​-> ​​ ​​values​​ ​​(​​ ​​'insertHimi'​​ ​​,​​ ​​'h'​​ ​​,​​ ​​'Anhui'​​ ​​,​​ ​​'m'​​ ​​,​​ ​​'1989-9-23'​​ ​​,​​ ​​NULL​​ ​​);​


​Query OK, 1 row affected (0.10 sec)​


 


​mysql> ​​ ​​select​​ ​​*​​ ​​from​​ ​​people;​


​+​​ ​​------------+------+---------+------+-----------+----------+​


​| ​​ ​​name​​       ​​| mz   | city    | sex  | birthday  | deathday |​


​+​​ ​​------------+------+---------+------+-----------+----------+​


​| himi       | h    | beijing | m    | 1989-9-23 | ​​ ​​NULL​​     ​​|​


​| himi       | h    | beijing | m    | 1989-9-23 | ​​ ​​NULL​​     ​​|​


​| himi3      | h    | beijing | m    | 1989-9-23 | ​​ ​​NULL​​     ​​|​


​| insertHimi | h    | Anhui   | m    | 1989-9-23 | ​​ ​​NULL​​     ​​|​


​+​​ ​​------------+------+---------+------+-----------+----------+​


​4 ​​ ​​rows​​ ​​in​​ ​​set​​ ​​(0.01 sec)​


OK,本篇就到这里,下篇继续~


标签:varchar,people,数据库,MySQL,之二,sec,mysql,NULL
From: https://blog.51cto.com/xiaominghimi/5886197

相关文章

  • 【 Makefile 编程基础之二】Makefile 书写规划以及语法规则!
    本站文章均为​​ 李华明Himi ​​​原创,转载务必在明显处注明:书写规则:规则包含两个部分,一个是依赖关系,一个是生成目标的方法。在Makefile中,规则的顺序是很重要的,因为,Mak......
  • 使用Xenon实现MySQL高可用集群
    使用Xenon实现MySQL高可用集群1、Xenon介绍 https://github.com/radondb/xenon#VIP就是对外提供服务的IP,比如jdbc配置就是写这个VIPxenon架构介绍 ,每个MySQL节点安装......
  • 巨杉数据库入选中国数据管理生态报告
    获国际权威分析机构认可!巨杉数据库凭借湖仓一体架构技术优势,作为典型产品入选Forrester《TrendReport:NavigateTheDataManagementEcosystemInChina》。 近期,巨......
  • Oracle数据库批量删除表、视图、序列、存储过程、函数脚本
    批量删除表、视图、序列、存储过程、函数前,生成对应的SQL执行脚本,然后执行生成对应的脚本即可:一、删除数据库表   --生成删除oracle数据库表的脚本语句   select......
  • mysql商品评论表
    CREATEDATABASEshop;USEshop;CREATETABLEsh_goods(idINTUNSIGNEDPRIMARYKEYAUTO_INCREMENTCOMMENT'商品id',category_idINTUNSIGNEDNOTNULLDEFAULT0......
  • 数据库函数 group_concat ( ) 结果有长度限制
    #在MySQL配置文件(my.ini)中默认无该配置项,使用默认值时,值为1024,可在客户端执行下列语句修改:#SETGLOBALgroup_concat_max_len=1024;#该语句执行后重启客户端即可用......
  • 第13节-MySQL事件调度器
    14.1、事件调度器使用场景数据库管理是一项重要且烦琐的工作,许多日常管理任务往往会频繁地﹑周期性地执行,例如定期维护索引﹑定时刷新数据﹑定时关闭帐户﹑定义打开或关闭数据库......
  • 【Mysql】 linux | mysql | 配置日志路径 | 关闭binlog
    一、说明        1、linux环境       2、操作数据库,一定要慎重;尤其是涉及到配置,搞不好数据就丢了,备份,备份,备份。二、日常维护1、配置错误日志路径1)mysql重......
  • 【MySQL】mysql | 时间函数 | 时间戳 | 日期转时间戳
    一、说明        1、where条件需要加入mysql的运算函数        2、留存日常使用二、函数1、日期转时间戳1)函数SELECTUNIX_TIMESTAMP(NOW());说明1:时间戳......
  • 【MySQL】mysql | 数据处理 | 行转列 | 一种行转列的处理思路
    一、说明        1、mysql数据库        2、行转列场景,对于不同行业来说,使用频率不一样        3、本文档仅提供一种行转列的思路,仅做参考二、开始......