MySQL基础(二)

一、数据表的修改

总格式:ALTER  TABLE tbl_name +具体命令;

1.1添加列的具体命令为:

ADD [COLUMN] column_definition [FIRST | AFTER col_name ]

比如:

ALTER TABLE seckill ADD age INT AFTER NAME;//在seckill表中name列后加一列age

ALTER TABLE seckill ADD age2 INT FIRST;//在seckill表中加一列age(加在第一列)

ALTER TABLE seckill ADD age INT AFTER NAME,ADD age2 INT AFTER NAME;


1.2删除列的具体命令为:

DROP [COLUMN] col_name

比如:

ALTER TABLE seckill DROP age2 ;//删除age2列

ALTER TABLE seckill DROP age2,DROP age; 删除两列


1.3修改列的定义(数据类型或位置)

MODIFY,CHANGE


1.4添加约束具体命令为:

添加/删除主键约束:

ALTER TABLE success_killed DROP 
PRIMARY KEY;


ALTER TABLE success_killed ADD 
PRIMARY KEY(seckill_id,state);

添加/删除唯一约束:

ALTER TABLE success_killed ADD 
UNIQUE user_phone;

添加/删除外键约束:

ALTER TABLE success_killed ADD 
FOREIGN KEY(user_phone) REFERENCES seckill(seckill_id);


二、操作数据表记录

1.增删查改insert,delete,selectk,update(略)

2.where条件(略)

3.group by 语句(把列相同的记录分组整合一起)

我们拥有下面这个 "Orders" 表:

O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter

现在,我们希望查找每个客户的总金额(总订单)。

我们想要使用 GROUP BY 语句对客户进行组合。

我们使用下列 SQL 语句:

SELECT Customer,SUM(OrderPrice) FROM Orders

GROUP BY Customer

结果集类似这样:

Customer SUM(OrderPrice)
Bush 2000
Carter 1700
Adams 2000


4.having子句(分组条件)

分组可以添加分组的条件语句,但是不能用where子句,得用having子句

在上面3 group by的数据基础上,

现在,我们希望查找订单总金额少于 2000 的客户。

我们使用如下 SQL 语句:

SELECT Customer,SUM(OrderPrice) FROM Orders

GROUP BY Customer

HAVING SUM(OrderPrice)<2000

结果集类似:

Customer SUM(OrderPrice)
Carter 1700


5.order by 将查询结果进行排序

ORDER BY 语句默认按照升序ASC对记录进行排序

以逆字母顺序显示公司名称,并以数字顺序显示顺序号:

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC


6.limit语句限制查询数量

分两种形式:

一个参数的:SELECT * FROM table LIMIT 5;     //检索前 5 个记录行

两个参数的:SELECT * FROM table LIMIT 5,10; //检索记录行6-15 注意是第六行





你可能感兴趣的:(数据库)