打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
MySQL中文实例基础操作手册(下)
字体大小: - - hdyjcs   发表于 11-05-13 10:00     阅读(218)       分类:Linux
8.       查询表项
这一节,我们将学习如何查询到数据库表中的内容。这里,我们将学习一个新的命令
Select(选择)。
a.       全部查询
select  *     from  tablename;
选择  任意   从    表名
上面这个语句,描述起来就是:从指定表中选择任意项进行查询。下面,我们来看看
它的效果怎样。
mysql> select  *  from  stuff;
+---------+--------+
| name  | age   |
+---------+--------+
| joe    | 30    |
| david  | 28    |
+---------+---------+
2 rows in set  (0.00 sec)
从上表中,我们可以看出,我们设置了两个字段:name和age,下面有两个项joe 30
和david  28,这是我们表中所有的内容。
那么,如果我们只想查询到名字相关的字段,或者年龄相关的字段,我们又该怎么做呢?
b.      查询指定字段(列查询)
select  field1|field2  from  tablename;
选择  字段1|字段2  从    表名
这里,我们给它指定一个条件field1或field2来查询。field1和field2是您的表中的实
际字段,这里是name和age。多个字段使用“,”隔开。
mysql> select  name  from  stuff;
+---------+
| name  |
+---------+
| joe    |
| david  |
+---------+
2 rows in set  (0.00 sec)
mysql> select  age  from  stuff;
+--------+
| age   |
+--------+
| 30    |
| 28    |
+---------+
2 rows in set  (0.00 sec)
c.       查询指定值(行查询)
在这里,我们需要引入一个条件语句:where field=value,命令如下:
select  *    from  tablename  where  field=value;
选择  任意  从    表名       哪里  字段为值 //如果值为字符串,需要加引号
mysql> select  *  from  stuff  where  name=”joe”;
+---------+--------+
| name  | age   |
+---------+--------+
| joe    | 30    |
+---------+---------+
1 row in set  (0.00 sec)
与上面相同的结果的一个查询为:
mysql> select  *  from  stuff  where  age=30;
+---------+--------+
| name  | age   |
+---------+--------+
| joe    | 30    |
+---------+---------+
1 row in set  (0.02 sec)
d.      查询指定字段中的指定值(交叉查询)
这一节中,我们将使上面两种查询结合起来,查找出指定的值。
select  field1|field2    from  tablename  where  field=value;
选择   字段1|字段2   从   表名      哪里   字段为值
该句命令的含义为:从tablename表中选择field1或field2中field值为value的项。结
果如下:
mysql> select  name  from  stuff  where  age=30;
+---------+
| name  |
+---------+
| joe    |
+---------+
1 row in set  (0.00 sec)
当然,如果这里的匹配条件不对的话,那么查询结果就不会有任何匹配,就会出现Empty
set的回应了。这里,查询主字段为name,匹配条件为age为30。也就是说,选择出age为30的name,其结果就是显示对应的名字。如果将主字段设置为age,那么显示结果就是年龄了。
除了使用“=”作为条件外,我们还可以使用“>”或“<”。比如,我们要查询stuff表中年龄小于30岁的字段,可以写成下面这样:
select  *  from  stuff  where  age<30;
e.       其它select查询
l         Limit查询:
select  *     from  tablename  limit   m,n;
选择  任意   从    表名      限制   m行起的n行
这里,m是查询的起始行,n是自m行开始的行数
l         统计行数:
select  count(*)       from  tablename;
选择   计数(任意)  从    表名
l         排序:
select  *   from  tablename  order  by  field  desc;
选择  任意 从     表名     顺序  为  字段   降序
这里,后面的的desc为降序,如果不写desc则为升序。
l         模式匹配:
select  *    from  tablename  where  field  like ‘mode’;
选择  任意  从     表名      哪里   字段  如   模式
这里模式使用通配符%和_,%为任意个任意字符,_为单个任意字符。如:
M%:匹配M开头的值
%s:匹配s结尾的值
%a%:匹配任意含有a的值
-:匹配一个字符
-----:匹配5个字符
l         分组统计数:
select  *   from  tablename  group  by  field;
选择  任意  从   表名      组    为  字段
这将以指定的字段来统计其重复数。
9.       修改表项
修改表是用于更改目前表的结构。我们可以添加或者删除列,更改目前列的类型以及对表或者列重新命名。同时我们也可以修改表的注释和表的类型。 其语法为:
alter  table  tablename  arguments(arguments);
改变  表     表名      参数(参数)
这里的参数就是指定的alter可用的命令,具体参数如下:
Alter 参数
说明
Rename
对表的名称重新命名
Add
添加新列,键,索引
Add First
使用First定位符添加列
Add After
使用After定位符添加列
Drop
删除列,索引,键
Change
更改列的名称
Change Type
更改列的类型
Modify
修改列的类型
从上表中我们可以看出,我们可以使用alter命令来对数据表进行重命名、添加、删除以及对表中的列作出各种修改。
a.             修改表名
mysql> alter  table  stuff  rename  class;
这样,我们把表名修改为class了。现在,把它改回来吧。
b.          添加字段
mysql> alter  table  stuff  add  column  sex enum(‘m’,’f’);
这样,我们又为stuff表新增了一个栏目sex,值的类型为enum。如果您使用描述表
命令查询的话,您会发现添加进去栏目在最后。那么,如果我们要在最前面添加该栏目,该怎么办呢?其实也很简单,只需在前面的命令最后加一个first参数。那么,您的命令可能会看起来像这样:
mysql> alter  table  stuff  add  column  sex  enum(‘m’,’f’)  first;
那么,如果我想添加指定字段到指定位置,行不行呢?答案是行的。您只需要在结尾处使用after参数,就能添加到after指定的字段后面。比如,我要将sex字段添加到name后面,可以将命令写成:
mysql> alter  table  stuff  add  column  sex  enum(‘m’,’f’)  after  name;
c.       删除字段、索引或键
刚才,我们添加了一个不需要的字段,现在要把它删除掉,那么可以使用以下命令进行删除:
mysql> alter  table  stuff  drop  column  sex;
d.      更改字段
现在,我们发现name字段定义得不够具体,需要重新定义成stuff_name,命令如下:
mysql> alter  table  stuff  change  name  stuff_name  varchar(20);
这里我们需要注意的是,在改变字段时,需要指定新字段的值的类型。当然,如果您只需要更改相应字段的类型属性,那么字段名只需写成原字段名即可。
e.  更改字段类型
除了上面的方法外,另外一种更直接的修改字段类型的方法是使用modify参数,见下面的命令:
mysql> alter  table  stuff  modify  stuff_name  char(20);
10.   更改表中数值
有时候,我们发现我们为数据表添加了错误的数值,这时候就需要进行修改。MySQL
为我们提供这样的命令,以便我们在出错时能及时进行修改。修改数值的命令是:
update  tablename  set   field=nvalue  where  field=mvalue;
更新    表名      设置    字段为值    哪里  字段为值
该句的意思是:更新指定表tablename中field为mvalue的值对应的项中指定字段设置为nvalue值。比如,我们要将stuff表中的david的年龄修改29,我们可以这样做:
mysql> update  stuff  set  age=30  where  name=’david’;
这里,where子句只是用于检索出对应的项。至于where子句要检索哪个字段是无关紧要的。
11.   删除表中数值
现在,我们基本已经完成了我们的实验。最后,我们要做的,是将我们所有的操作清
除。首先,让我们来把表中的项逐一删除。
delete  from  tablename  [where  condition];
删除    从    表名      哪里  检索条件
该句是说:从表tablename中删除哪里符合检索条件的项。当然,这里的where子句不是必须的,但没有where子句的命令,会造成很严重的后果,具体将在下面说明。下面,让我们来删除表中关于david的项,请看操作:
mysql> delete  from  stuff  where  name=’david’;
上面的命令,将name为david的stuff表中的项删除了。如果您不确定,您可以通过查询表中内容来确认。当然,如果表中有很多项,而这些所有的项又都不要了,这样逐一去删除很浪费时间。那么我们可以通过以下命令,直接删除表中所有内容:
mysql> delete  from  stuff;
这样,您就将表中所有项都完全删除了。因为该命令会造成毁灭性的后果,因此,在操作前请确认您的这些数据已经不需要了。
12.   删除表
好了,我们已经将表中数据删除完毕,现在,让我们将表也删除吧。这次,我们不能
使用delete命令了。命令如下:
drop  table  tablename;
丢弃  表     表名
该命令很好理解,就是丢弃名为tablename的表。下面,让我们将stuff表丢弃吧:
mysql> drop  table  stuff;
13.   删除数据库
下面将进行最后一步,将没用的数据库也删除掉。删除数据库的命令与删除表的命令
类似,只是替换不同的参数:
drop  database  dbname;
丢弃  数据库  数据库名
明白了吧?下面,让我们一起来完成最后一步吧。
mysql> drop  database  testdb;
到这里,我们的实例操作手册也结束了。本手册只是帮助您学习、掌握一些基本的操作技能,如果您觉得还不够,那么请找一些这方面专业书籍进行深入学习吧!最后,
祝您学习愉快!
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
mysql数据库常用语句
mysql常用操作指令——ALTER语句用法
MySQL从零开始:03 基本入门语句
mysql 添加字段、删除字段、调整字段顺序 | mysql添加字段
MySql修改字段常用命令
mysql中SQL语句删除
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服