mysql的使用实验报告_MySQL基本操作

这篇实验报告详细介绍了MySQL的基本操作,包括USE切换数据库、LOAD DATA INFILE导入数据、INSERT插入记录、UPDATE修改数据、SELECT查询及排序、计算年龄、正则表达式以及GROUP BY分组。通过实例展示了如何进行数据操作,并强调了大小写敏感性、NULL处理以及正则表达式在查询中的应用。
摘要由CSDN通过智能技术生成

mysql> USE test

很有意思,切换数据库即使键入;也能成功执行

VARCHAR适合于name、owner和species列,因为这些列值的长度是可以变化的,这些列的长度不必都相同,而且不必是20。你可以选从1到65535选择一个最合理的值作为列属性值的长度。如果选择得不合适,MySQL提供一个ALTER TABLE语句来修改表格(后来证明你需要一个更长的字段)。

动物性别可以由多个名称表示,例如,"m"和"f",或"male"和"female"。使用单字符"m"和"f"是最简单的方法。

很显然,birth和death列应选用DATE(日期)数据类型。

mysql> DESCRIBE pet; #查看表结构

mysql> LOAD DATA INFILE '/path/pet.txt' INTO TABLE pet;

实际实验中,要去掉课程中的LOCAL,否则会提示版本不支持。

mysql> INSERT INTO pet

-> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);

插入单条数据

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

修改数据

字符串比较时通常对大小写不敏感,因此你可以将名字指定为"bowser"、"BOWSER"等,查询结果相同。

AND和OR可以混用,但AND比OR具有更高的优先级。如果你使用两个操作符,最好是使用圆括号指明如何按条件分组:

由于字符串类型的数据对大小写并不敏感。这意味着,对于大小写不同其他都一样的列,排序后的结果都不会更改。这种情况下,可以使用BINARY强制执行区分大小写的排序功能,如:ORDER BY BINARY col_name。

默认排序是升序,也就是最小的值排在第一。要想以降序排序,在你正在排序的列名旁边增加DESC(降序 )关键字:

可以对多个列进行排序,并且可以按不同的方向对不同的列进行排序。例如,按升序对动物的种类进行排序,然后按降序根据生日对各动物种类进行排序(最年轻的动物在最前面),使用下列查询:

mysql> SELECT name, species, birth FROM pet

-> ORDER BY species, birth DESC;

注意DESC关键字仅适用于在它前面的列名(birth);不影响pecies列的排序顺序。

计算年纪:

mysql> SELECT name, birth, CURDATE(),

-> TIMESTAMPDIFF(YEAR,birth,CURDATE()) AS age

-> FROM pet;

比较这两个查询语句的结果

mysql> SELECT name, birth, CURDATE(),

-> (YEAR(CURDATE())-YEAR(birth))

-> - (RIGHT(CURDATE(),5)

-> FROM pet;

执行结果相同。

mysql> SELECT name, birth, death,

-> (YEAR(death)-YEAR(birth)) - (RIGHT(death,5)

-> AS age

-> FROM pet WHERE death IS NOT NULL ORDER BY age;

查询使用death IS NOT NULL而非death != NULL,因为NULL是特殊的值,不能使用普通比较符来比较。

在GROUP BY中,两个NULL值被视为相同等价的。

执行ORDER BY语句排序时,如果运行ORDER BY ... ASC,则NULL值出现在最前面,若运行ORDER BY ... DESC,则NULL值出现在最后面。

REGEXP扩展的正则表达式:

‘.’匹配任何单个的字符。

字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的范围,使用一个“-”。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。

“ ”匹配零个或多个在它前面的字符。例如,“x”匹配任何数量的“x”字符,“[0-9]”匹配任何数量的数字,而“.”匹配任何数量的任何字符。

mysql> SELECT owner, COUNT(*) FROM pet GROUP BY owner;

注意,使用GROUP BY对每个owner的所有记录分组,没有它,你会得到错误消息:

mysql> SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex;

可按两列分组显示

为了在你的宠物之中选择繁殖中的配偶,你可以用pet表联结自身来进行相同种类的雄雌配对:

mysql> SELECT p1.name, p1.sex, p2.name, p2.sex, p1.species

-> FROM pet AS p1, pet AS p2

-> WHERE p1.species = p2.species AND p1.sex = 'f' AND p2.sex = 'm';

61968981637bbc8f2f547a21dfd02e1d-wm

76ffea716a3c86a13cb01258da7d3759-wm

ec84e17e335bd4476158585856a39d9f-wm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值