1:添加列,alter table 表名 add 列名 数据类型 约束;
ALTER TABLE users ADD tel INT;
2:修改列的类型和约束,alter table 表名 modify 列名 数据类型 约束;
ALTER TABLE users MODIFY tel VARCHAR(20);
3:修改列名,alter table 表名 change 旧列名 新列名 数据类型 约束;
ALTER TABLE users CHANGE tel utel VARCHAR(20);
4:删除列,alter table 表名 drop 列名;
5:修改表名,rename table 旧表名 to 新表名;
6:修改字符集,alter table 表名 character set 字符集;
6.数据的操作
1:添加数据,insert into 表名 (列名1,类名2,类名3) values (值1,值2,值3)[可以不写自增主键的值]; insert into 表名 values (值1,值2,值3)[必须写自增主键的值]; insert into 表名 values (值1,值2,值3),(值1,值2,值3),(值1,值2,值3)[必须写主键];
2:修改数据,update 表名 set 列1=值1,列2=值2 where 条件;
条件(&& and,|| or,! not)。
3:删除数据,delete from 表名 where 条件[一条一条的删除,不清空自增主键的值]; truncate table 表名[将表全部删除,然后重建表,自增主键为0];
7.数据的基本查询
1:查询指定列,SELECT uid,username FROM users;(*表示查询所有)。
2:去重复的查询,distinct。SELECT DISTINCT username FROM users;
3:使用as设置别名,不写也可以。SELECT username AS name FROM users; SELECT username name FROM users;
8.条件查询
运算符
解释
'> < <= >= = <> ’
大于、小于、大于(小于)等于、不等于
BETWEEN …AND…
显示在某一区间的值(含头含尾)
IN(set)
显示在in列表中的值,例:in(100,200)
LIKE 通配符
模糊查询,Like语句中有两个通配符:% 用来匹配多个字符;例first_name like ‘a%’;_ 用来匹配一个字符。例first_name like ‘a_’;
IS NULL
判断是否为空
and
多个条件同时成立
or
多个条件任一成立
not
不成立
9.查询之后的处理
/*查询使用的数据*/CREATETABLE zhangwu (
id INTPRIMARYKEYAUTO_INCREMENT,
zname VARCHAR(200),
money DOUBLE);
1:排序,order by 列名 [desc(降序)][asc(升序,默认)];
2:分组查询,group by。SELECT SUM(money),zname FROM zhangwu GROUP BY zname;
3:在分组中where是先进行过滤,然后对结果进行分组。分组之后的过滤可以使用having,如:SELECT SUM(money) total,zname FROM zhangwu WHERE zname LIKE '%支出%' GROUP BY zname HAVING total > 5000 ORDER BY total DESC LIMIT 2;
10.乱码问题
1:MySQL安装时指定的编码是utf-8,Windows的cmd窗口的默认编码是GBK。使用set names'gbk';set names'utf8';设置窗口编码。
2:编码的查看,show variables like 'character%';更改,set character_set_results=gbk;