免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 741 | 回复: 0
打印 上一主题 下一主题

Mysql 5.1 参考手册系列学习(三) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-20 09:46 |只看该作者 |倒序浏览
第三章 教程
3.1 连接和断开数据库
mysql -h host -u user -p
host 和 user 分别代表mysql 服务器运行的主机名和mysql 账户用户名

quit
退出

3.2 输入查询
select version(), current_date;
. 一个命令有sql 语句,随后跟着一个分号。
. 一条命令,一个回复。. 用表格方式显示查询输出。
. 命令不区分大小写。
. 一行可以多条命令。
. 较长命令可以写成多行,直到输入分号。

特殊提示符
> 接受新命令
-> 等待多行命令
'> 等待 '
"> 等待
"/*> 等待*/

3.3 创建并使用数据库
show databases;
显示服务器上的数据库

3.3.1 创建并选择数据库
create database databasname
创建数据库

use tablename
选择表

3.3.2 创建表
show tables
显示数据库中的表

create table pet (name varchar(20), owner varchar(20), *** varchar(2));
创建表

describe pet;
显示表中的列的名称和类型

3.3.3 将数据装入表中
1. 通过txt文件导入文本文件每行包含一个记录,用定位符(tab)把值分开,并且以CREATE TABLE语句中列出的列次序给出。对于丢失的值,你可以使用NULL值。为了在你的文本文件中表示这些内容,使用\N(反斜线,字母N)
load data local infile 'pet.txt' into table pet;

2. insert
insert into pet values("pufall", "diama", "hamer");

3.3.4 从表中检索信息
3.3.4.1 选择所有数据
select * from pet;

3.3.4.2 选择特殊的行
select * from pet where name = "browse";

3.3.4.3 选择特殊的列
select name, birth from pet;
增加关键字DISTINCT可以检索出每个唯一的输出记录

3.3.4.4 分类行
select name, birth from pet order by birth;
对于某一列,可以使用BINARY强制执行区分大小写的分类功能,如:ORDER BY BINARY col_name
order by 默认排序是升序,最小的值在第一。要想以降序排序,在你正在排序的列名上增加DESC(降序)关键字

3.3.4.5 日期计算
YEAR() 提取日期的年部分
MONTH() 提取日期的月部分

3.3.4.6 Null 值操作
NULL意味着“没有值”或“未知值”,且它被看作与众不同的值。不能用算术比较,应使用IS NULLIS NOT NULL操作符。 如 1 is null 返回 0
在MySQL中,0或 NULL意味着假而其它值意味着真。NULL操作的常见错误是不能在定义为NOT NULL的列内插入0或空字符串,事实上完全可以在定义为NOT NULL的列内插入0或空字符串。

3.3.4.7 模式匹配
SQL模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零字符)。
在 MySQL中,SQL的模式默认是忽略大小写的。注意使用SQL模式时,不能使用=或!=;而应使用LIKE或NOT LIKE比较操作符。
select * from pet where name like '%fy';

扩展正则表达式
一些字符是扩展正则表达式的一些字符是:
1.‘.’匹配任何单个的字符。
2. 字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的范围,使用一个“-”。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。
3. “* ”匹配零个或多个在它前面的字符。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配任何数量的数字,而“.*”匹配任何数量的任何字符。
4. 在模式开始处使用“^”或在模式的结尾用“$”.

3.3.4.8 计数行
count()
计算行数
使用GROUP BY对每个owner的所有记录分组,没有它,你会得到错误消息。

3.3.4.9 使用1个以上的表
SELECT p1.name, p1.***, p2.name, p2.***, p1.species   
 -> FROM pet AS p1, pet AS p2   
 -> WHERE p1.species = p2.species AND p1.*** = 'f' AND p2.*** = 'm';

3.4 获得数据库和表的信息
select database();
显示当前使用的数据库

show tables;
当前数据库中的表

describe pet;
表中的列信息

3.5 在批处理模式下使用mysql
输入 : mysql < file;
输出 : mysql < file > sql.out;

3.6 常用查询的例子
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP