第十三天3月7日之MySQL基础(二)

2014-11-24 10:52:40 · 作者: · 浏览: 5
TH+10 from STUDENT;

统计每个学生的总分。

mysql>select NAME,CHINESE+ENGLISH+MATHfrom STUDENT;

使用别名表示学生分数。

mysql>select NAME as姓名,CHINESE+ENGLISH+MATH总分 from STUDENT;

查询姓名为王五的学生成绩

mysql>select * from STUDENT where NAME='王五';

查询英语成绩大于90分的同学

mysql>select * from STUDENT whereENGLISH>90;

查询总分大于200分的所有同学

mysql>select * from STUDENT where(CHINESE+ENGLISH+MATH)>200;

模糊查询的pattern: _ 表示匹配一个字符 % 匹配任意字符

查询英语分数在 80-90之间的同学。

mysql>select NAME,ENGLISH from STUDENTwhere ENGLISH between 80 and 90;

查询数学分数为89,90,91的同学。

mysql>select NAME,MATH from STUDENTwhere MATH in(89,90,91);

查询所有姓李的学生成绩。

mysql>select * from STUDENT where NAMElike '李%';

查询数学分>80,语文分>80的同学。

mysql>select * from STUDENT whereMATH>80 and CHINESE>80;

满足where条件的记录才会显示,逻辑运算的结果true。

对数学成绩排序后输出。

mysql>select NAME,MATH from STUDENTorder by MATH;

对总分排序后输出,然后再按从高到低的顺序输出

mysql>select NAME,CHINESE+MATH+ENGLISH总分 from STUDENT order by总分 desc;

注意:order是关键字。把关键字当做普通标示符对待,使用``(不是单引号,反引号)引起来

对姓李的数学学生成绩排序输出

mysql>select NAME,MATH from STUDENTwhere NAME like '李%' order by MATH desc;

分页查询

查询前3条记录

limit M,N; M开始记录的索引(从0开始),N一次要查询的条数

mysql>select * from STUDENT limit 0,3;

七、数据的完整性

数据完整性是为了保证插入到数据中的数据是正确的,它防止了用户可能的输入错误。

1、域完整性(列完整性)

数据库表的列(即字段)必须符合某种特定的数据类型或约束

ID int(11):该字段必须是整数,长度不能超过11

NAME varchar(100) not null:不能为null

USERNAME varchar(100) unique:有的话必须唯一

2、实体完整性(记录完整性)

规定表的一行(即每一条记录)在表中是唯一的实体

主键约束:primary key

ID int primary key; ID就是主键(不能为null,而且是唯一的)

或者

ID int,

primary key(ID)

MySQL:主键可以自动增长。auto_increment(主键的值由MySQL数据来管理和维护)。oracle中没有自动增长。

create table T2(

ID int primary keyauto_increment,//auto_increment是方言,不是标准,只有MySQL中有。

NAME varchar(100)

);

3、参照完整性(引用完整性):外键 foreign key (多表情况)

一对多、多对多、一对一

remote:远程意思

collation校对意思

charset字符集意思

manipulation操作

MySQL:

时间戳:赋值了没用,不赋值就是把当前值给字段(数据库中)

clob(存放文本数据)能存的,bolb(存放二进制文件)就能存。

engine引擎:InnoDB:表示支持事务,安装时自己选择的

1.域完整性

not null 可以是空字符串,但不没能没有

unique可以为空,有的话必须唯一

2.order by后面的字段必须出现在select后面即投影字段的后面吗?不是必须的

+------------+--------------+------+-----+---------+-------+

| ID | int(11) | YES | |NULL | |

| NAME | varchar(200) | YES | | NULL | |

| GENDER | varchar(200) | YES | | NULL | |

| BIRTHDAY | date | YES | |NULL | |

| entry_date | date | YES | | NULL | |

| job | varchar(200) | YES | | NULL | |

| salary | float(8,2) | YES | |NULL | |

| resume | text | YES | | NULL | |

| IMAGE | blob | YES | |NULL | |

+------------+--------------+------+-----+---------+-------+

9 rows in set (0.01 sec)

mysql> alter table employee modify JOBvarchar(60);

Query OK, 0 rows affected (0.08 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> desc employee;

+------------+--------------+------+-----+---------+-------+

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

+------------+--------------+------+-----+---------+-------+

| ID | int(11) | YES | |NULL | |

| NAME | varchar(200) | YES | | NULL | |

| GENDER | varchar(200) | YES | | NULL | |

| BIRTHDAY | date | YES | |NULL | |

| entry_date | date | YES | | NULL | |

| JOB | varchar(60) | YES | |NULL | |

| salary | float(8,2) | YES | |NULL | |

| resume | text | YES | |NULL | |

| IMAGE | blob | YES | |NULL | |

+------------+--------------+------+-----+---------+-------+

9 rows in set (0.01 sec)

mysql> alter table employee

-> drop image;

Query OK, 0 rows affected (0.18 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> desc employee;

+------------+--------------+---