第二阶段 MySQL函数库 表的修改与查询

一.表结构的修改(DDL)

1.添加表结构的字段
a.ALTER TABLE 表名
ADD 字段名 数据类型 [字段属性|约束条件]
[FIRST|AFTER 字段名];

b. 添加多个字段
ALTER TABLE 表名
ADD 字段名 数据类型 [字段属性|约束条件]
[FIRST|AFTER 字段名],
ADD 字段名 数据类型 [字段属性|约束条件]
[FIRST|AFTER 字段名]...;

2 删除字段
ALTER TABLE 表名
DROP 字段名,
DROP 字段名...;

3.修改字段
ALTER TABLE 表名
MODIFY 字段名 数据类型 [字段属性|约束条件]
[FIRST|AFTER 字段名];
4.修改字段名称
ALTER TABLE 表名
CHANGE 旧字段名 新字段名 数据类型 [字段属性|约束条件]
[FIRST|AFTER 字段名];

5.添加默认值
ALTER TABLE 表名
ALTER 字段名 SET DEFAULT 值;
6.删除默认值
ALTER TABLE 表名
ALTER 字段名 DROP DEFAULT;

7.添加主键
ALTER TABLE 表名
ADD PRIMARY KEY(字段名称);
8.删除主键
ALTER TABLE KEY|INDE表名
DROP PRIMARY KEY;
说明:如果有AUTO_INCRMENT属性,一定要先删除
AUTO_INCRMENT才能删除主键

9.添加唯一性
a.ALTER TABLE 表名
ADD UNIQUE KEY|INDEX(字段名);
b.a.ALTER TABLE 表名
ADD [CONSTRAINT 约束名称] UNIQUE KEY|INDEX(字段名);
10删除唯一性
ALTER TABLE 表名
DROP KEY|INDEX 唯一性约束名称;
说明:如果添加唯一性没有设置 唯一性约束名称,
默认为字段名称
11. 修改表名称
a. ALTER TABLE 表名
RENAME [AS|TO] 新表名;
b. RENAME TABLE 旧表名
TO 新表名;
12. 重置自动增长
ALTER TABLE 表名
AUTO_INCREMENT=1;
二.帮助
? 命令
help 命令
\h 命令

三.表中对数据的操作(DML)
(1)添加(INSERT)
a.不列出表字段的添加(从第一字段到最后一个字段都赋值)
INSERT [INTO] 表名
VALUE[S] (值,值,值...);
b.不省略字段添加(添加一条记录)
INSERT [INTO] 表名(字段名,字段名...)
VALUE[S] (值,值...);
c.不省略字段添加(添加多记录)
INSERT [INTO] 表名(字段名,字段名...)
VALUE[S]
(值,值...),
(值,值...)...;
d.INSERT...SET (只能添加一条记录)
INSERT [INTO] 表名 SET 字段名=值,
字段名=值...;
(2)更新(UPDATE)
UPDATE 表名 SET 字段名=值,
字段名=值... [WHERE 条件];
说明:
如果更新没有WHERE 条件,表中字段
值都相同的值记录
(3)删除 (DELETE)
a.DELETE FROM 表名 [WHERE 条件];
说明:如果删除没有WHERE 条件,
将会清空表中所有数据,
AUTO_INCREMENT 不重置
b. TRUNCATE 表名;
说明: 清空表中所有数据,
并且 AUTO_INCREMENT 重置
四.表中对数据的查询(DQL)
1. 查询所有字段(效率底)
SELECT * FROM 表名;

2.列出字段查询
SELECT 字段名|expr,字段名|expr...
FROM 表名;
3.给字段起别名
SELECT 字段名 [AS]别名
FROM 表名;
4.给表起别名
SELECT 字段名
FROM 表名 [AS]别名;
5.表名(别名).字段名(字段来自哪个表)
SELECT 表名(别名).字段名
FROM 表名 [AS]别名;
6. 数据库名.表名 (表来自哪个数据库)
SELECT 字段名
FROM 数据库名.表名;
7.
SELECT 字段名|expr,字段名|expr...
FROM 表名
[WHERE 条件]
[GROUP BY 字段]
[HAVING 条件]
[ORDER BY 字段]
[LIMIT [$offset,]$length];
7.1 WHERE 条件:条件过滤
(1)比较运算符
> >= < <= =(等于) != <>
<=>(判断NULL)
(2) IS [NOT] NULL (判断NULL)

(3)[NOT] BETWEEN ...AND 范围值

(4) [NOT] IN(值,值...) 某个值

(5) 逻辑运算符实现条件过滤
!非
&& AND 与
|| OR 或

(6) LIKE 实现模糊查询
[NOT] LIKE '字符串'

关键字
(1) %:包含任意多个字符(0个,1个,多个)
(2)_: 包含任意一个字符

7.2 GROUP BY 字段:分组,将字段中相同的值
分为一组
说明:
a.分组值显示一个结果,如果多个值显示
小编号的结果,一般显示分组的字段
b. 分组结合聚合函数使用
COUNT(*):获得每组中的个数,包含null
COUNT(字段) :不包含null值
AVG(字段):获得每组中的平均值
MAX(字段):获得每组中的最大值
MIN(字段):获得每组中的最小值
SUM(字段):获得每组中的和

7.3 HAVING 条件:二次条件过滤
说明:
a. WHERE 对字段的条件过滤
b. HAVING对一个运行结果的条件过滤,
结合分组使用

7.4 ORDER BY 字段:对字段排序
说明:
ORDER BY 字段 [ASC升序|DESC降序]

7.5
LIMIT [$offset,]$length:显示n条记录
说明:
a.$offset:偏移量,起始编号,编号从0开始
b.$length:显示记录(行)长度
c.实现web程序的分页原理
计算$offset =(当前页-1)*显示长度
$offset = ($curpage-1)*$pagesize


























 

posted @ 2016-05-01 16:06  下一站去哪里  阅读(127)  评论(0编辑  收藏  举报