MySQL入门

MySQL使用指南

3.1连接和断开服务器

shell> mysql -h host -u user -p
Enter password: ********
其中host是主机名,user是数据库用户名。-h和主机名之间的空格可有可无,-u和-p类似。如:

 
因为是登录在本地,-h localhost可省略。成功登陆后显示mysql>提示符。

    断开连接,就直接在mysql>下输入quit或者/q,
mysql> QUIT
Bye

3.2输入查询

    在连接服务器的情况下,可以输入命令,如

 
输出服务器的版本号和当前的日期。

注意:命令不区分大小写,以分号;结尾。mysql以表格形式显示查询结果。mysql显示返回的行数和执行查询的用时。

    可以将mysql用作简单的计算器,如
 

    可以在同一行执行多个查询,如

 
    也可以将一个查询写在多行上,如

 
    如果要取消前面的输入,就以/c结束输入,如

 
    除了mysql>外,还有下列提示符
提示符    含义
->           等待多行命令的下一行
'>           等待完成以单引号(')起始的字符串
">           等待完成以双引号(")起始的字符串
`>           等待完成以反引号(`)起始的标志符
/*>         等待完成以/*起始的注释


 
3.3 创建和使用数据库

    显示当前存在于服务器的数据库,

 
    要使用其中某个数据库,需要先执行

 
 注意:use database_name命令和quit一样,可以不以;结束。use语句的另一个特殊之处在于它不能换行。

3.3.1 创建和选择数据库

    创建数据库的语句如下

 
注意:在Unix下,数据库名称是区分大小写的,同样表名也是如此。但在Windows下没有这种限制。

    在创建数据库后还需要用use语句显式地选择它。如果希望在连接服务器的时候就指定使用的数据库,可以这样:

 
用下列命令显示当前使用的数据库,

 
3.3.2 创建表格

    显示当前数据库中的表格

目前无表格。

    这里创建一个关于宠物的表格。它的属性包括宠物名,宠物主人,种类,性别,出生和死亡日期。

 
    现在再显示数据库中的表格,

 
    如果要检查确认刚才创建表格的各个属性,使用

 
3.3.3 给表格装载数据

    可以通过倒入文本文件来装载数据。如有文件pet.txt

 
    用下列命令可以将数据导入表格
 

    查看表格内容

 
对于文本文件pet.txt要注意:各个字段之间用水平制表键分隔。空字段用/N表示。

    如果希望一次插入一条记录,就使用insert语句,如

 
可以看到在表格最底层多了Puffball这条记录。

    要删除表格中的所有数据,可以用下面命令

 
3.3.4 从表格检索信息
要修改某条记录有两种方法,一是在文本文件修改后重新载入;二是用update语句。如,

 
选择不同的行或列的几个例子:
     找出所有的雄性猫和雌性狗,

 
     选择所有的宠物主人,去掉重名

 
     选择宠物名和出生日期两列,并根据出生日期降序排列

 若要升序排列,去掉desc关键字即可。

     先按种类排,再按出生日期由早到晚排列

 
     获取宠物年龄,并按升序排列

 
     NULL是一个缺失的未知值,与其他类型值不同。不能用算术比较操作符来测试NULL值。如

 
运算结果都为毫无意义的null。要测试NULL值,使用IS NULL和IS NOT NULL操作符,如

 
注意:在MySQL中,0或者NULL意味错误,其他的都表示正确。

模式匹配

    SQL的模式匹配允许'_'匹配单个字符,'%'匹配任意数目的字符(包括没有,即0个字符)。在MySQL中,SQL的模式不区分大小写。在使用模式匹配时,使用LIKE或NOT LIKE比较操作符。

     查找宠物名以'b'打头的记录

 
     查找宠物名包含'w'的记录

 
     查找宠物名五个字母的记录

 
    MySQL提供的其他类型的模式匹配来源于正则表达式。对于这种类型的模式匹配使用REGEXP和NOT REGEXP操作符。

部分匹配特征:
  • '.'匹配任意单个字符
  •      '[...]'匹配括号中的任意字符。如'[a-z]'匹配任意字母,'[0-9]'匹配任意数字
  •      '*'匹配它前面的0个或多个字符
  •      只要在测试的对象中含有模式,REGEXP匹配就成功,这与LIKE模式匹配不同,它需要模式匹配整个对象才返回正确。如上文中查找宠物名包含'w'的记录只需要SELECT * FROM pet WHERE name REGEXP 'w';就可以了。
  •      要使模式的首尾必须匹配,则在模式的开头放置'^',结尾放置'$'.
范例
     上文查找宠物名以'b'打头的记录的另一种方法


    如果要使匹配区分大小写,则加上BINARY关键字

 
     上文查找宠物名五个字母的记录

 
行计数
     统计宠物表的行数

 
     统计宠物主人拥有宠物的数量

 
     查找已知性别的每种宠物两种性别的数量

 

3.5 用批处理模式操作MySQL

可以如上文那般交互式地输入查询,查看结果,MySQL也提供了批处理的操作模式。如在E:/下有这样一个文本文件query.txt

在命令行指定连接参数,执行如下

但是输出结果的可读性没有交互式模式下强,

当以批处理方式操作MySQL时,我们首先创建一个脚本文件,然后执行了它。如果脚本中的某条语句有错误,而我们希望继续执行,可以加上—force选项。

使用脚本的几个原因:

  • 如果我们重复地执行查询(比如说,每天或每周),把查询写成一个脚本就避免了每次执行的键入。
  • 通过拷贝并编辑脚本文件从类似的现有的查询生成一个新查询。
  • 在开发某个查询时,批模式也是很有用的,特别对多行命令或多行语句序列。如果犯了一点错误,无须重新键入,只要编辑脚本来改正错误,然后告诉mysql再次执行它。
  • 如果有一个产生很多输出的查询,就可以使用分页器(pager),而不是盯着它翻屏到你屏幕的顶端来运行输出:

shell> mysql < batch-file | more

  • 捕捉输出到一个文件中进行近一步的处理:

shell> mysql < batch-file > mysql.out

  • 可以散发脚本给另外的人,这样他们也能运行这些命令。
  • 有一些情况不允许交互地使用MySQL,例如, 当从一个cron任务中运行查询时。在这种情况下,就必须使用批处理模式。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值