-
添加和删除字段操作
CREATE TABLE IF NOT EXISTS user1(
id INT UNSIGNED AUTO_INCREMENT KEY
);
–动态添加字段,username VARCHAR(20) 删除字段(已有的表下)。
ALTER TABLE user1
ADD username VARCHAR(20);
– 添加密码字段 password CHAR(32) NOT NULL。
ALTER TABLE user1
ADD password CHAR(32) NOT NULL;
– 添加邮箱字段email VARCHAR(50) NOT NULL UNIQUE 加到username之后。
ALTER TABLE user1
ADD email VARCHAR(50) NOT NULL UNIQUE AFTER username;
– 添加测试字段 test TINYINT(1) NOT NULL DEFAULT 0; 加到首位。
ALTER TABLE user1
ADD test TINYINT(1) NOT NULL DEFAULT 0 FIRST;
– 删除test字段
ALTER TABLE user1
DROP test;
– 添加age、addr字段,删除email字段
ALTER TABLE user1
ADD age TINYINT UNSIGNED NOT NULL DEFAULT 18,
ADD addr VARCHAR(100) NOT NULL DEFAULT ‘北京’,
DROP email; -
添加和删除默认值操作
–动态添加默认值
语法:
ALTER TABLE tbl_name
ALTER 字段名称 SET DEFAULT 默认值;
例子:
CREATE TABLE user2(
id INT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL,
age TINYINT UNSIGNED NOT NULL DEFAULT 18,
email VARCHAR(50) NOT NULL
);
– 给email字段添加默认值 imooc@qq.com
ALTER TABLE user2
ALTER email SET DEFAULT ‘imooc@qq.com’;
– 删除age字段的默认值
语法:ALTER TABLE tbl_name
ALTER 字段名称 DROP DEFAULT
例子:
ALTER TABLE user2
ALTER age DROP DEFAULT; -
MODIFY和CHANGE关键字的使用
–修改字段类型、字段属性
语法:ALTER TABLE tbl_name
MODIFY 字段名称 字段类型 [字段属性] [FIRST | AFTER 字段名称]
–修改字段名称、字段类型、字段属性
语法:ALTER TABLE tbl_name
CHANGE 原字段名称 新字段名称 字段类型 字段属性 [FIRST | AFTER 字段名称]
– 测试修改字段类型和字段属性、字段名称
CREATE TABLE user3(
id INT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(5) NOT NULL UNIQUE,
password CHAR(32) NOT NULL,
email VARCHAR(10) NOT NULL
);
– 将用户名字段的类型改为20
ALTER TABLE user3
MODIFY username VARCHAR(20) NOT NULL;
– 将密码的长度改为40
ALTER TABLE user3
MODIFY password CHAR(40) NOT NULL;
– 将email字段改为VARCHAR(50) NOT NULL FIRST
ALTER TABLE user3
MODIFY email VARCHAR(50) NOT NULL FIRST;
– 将username 名称改为user
ALTER TABLE user3
CHANGE username user VARCHAR(20) NOT NULL;
– 将password 名称改为pwd
ALTER TABLE user3
CHANGE password pwd CHAR(40) NOT NULL;
– 将email改成userEmail 类型改成VARCHAR(100) DEFAULT ‘imooc@qq.com’
ALTER TABLE user3
CHANGE email userEmail VARCHAR(100) DEFAULT ‘imooc@qq.com’; -
主键及唯一性约束
添加主键:ALTER TABLE tb_name ADD PRIMARY KEY(字段名称)
删除主键:ALTER TABLE tb_name DROP PRIMARY KEY;
添加唯一:ALTER TABLE tb_name ADD UNIQUE KEY|INDEX index_name ;
删除唯一:ALTER TABLE tb_name DROP INDEX index_name; -
重命名表的操作
修改数据表名称:ALTER TABLE tb_name RENAME [TO|AS] new _tb_name;
或RENAME TABLE tb_name TO new_tb_name;
– 将user6改为user666
ALTER TABLE user6
RENAME TO user666; -
更新及删除
update table_name set 字段名=值 where 条件
删除
delete from table_name [where]
不添加where 则全部删除
清空auto_increment
alter table table auto_increment=1
彻底清空数据表 truncate table table_name -
基础查询记录:
SELECT select_expr,… FROM tb_name
[WHERE 条件]
[GROP BY{col_name|position} HAVING 二次筛选]
[ORDER BY {col_name|position|expr}[ASC|DESC]]
[LIMIT 限制结果采集的显示条数]
1、SELECT * FROM tb_name查询表中的所有记录
2、SELECT 字段名称,… FROM tb_name
3、SECECT 字段名称,… FROM db_name.tb_name;不用打开数据库就能查询指定数据表
5、SELECT 字段名称[AS] 别名名称,… FROM db_name.tb_name;给字段起别名
6、给数据表起别名:SELECT 字段名称,… FROM tb_name AS 别名;
7、表名.字段名的形式:SELECT tb_name.字段名称,… FROM tb_name;
8、查询表达式中的顺序可以和原数据表中字段的顺序不一致,且SELECT中查询表达式的顺序将影响着结果的顺序; -
查询记录中的WHERE条件:会筛选出符合条件的记录
符号<=>可以检测NULL值,另外可以使用IS [NOT] NULL 检测值是否为空
指定范围:[NOT]BETWEEN … AND
指定集合:[NOT]IN(值,…)
逻辑运算符:AND逻辑与,OR 逻辑或
匹配字符(配合通配符使用):[NOT] LIKE(默认忽略大小写)
通配符:%任意长度的字符串;_任意一个字符 -
GROUP BY分组:
把值相同放到一个组中,最终查询出的结果只会显示组中一条记录
1、分组配合GROUP_CONCAT()查看组中某个字段的详细信息
2、配合聚合函数使用:COUNT()统计记录总数(如果写的是COUNT(字段名称),字段中的值为NULL,则不统计进来,如果写的是COUNT()会统计NULL值)、SUM()求和、MAX()求最大值、MIN()求最小值、AVG()求平均值,如SELECT COUNT() FROM user1;
3、配合WITH ROLLUP关键字:会在记录末尾添加一条记录,是上面所有记录的总和;
4、HAVING字句对分组结果进行二次筛选 如:HAVING 条件,用HAVING进行分组条件的指定时,一定要保证分组条件要么为聚合函数,要么条件中的字段必须出现在当前的SELECT语句中 -
OPDER BY排序:
ORDER BY 字段名称 ASC(升序,默认)|DESC(降序),字段名称 ASC|DESC;
SELECT RAND() 产生一个随机数(0到1之间的一个随机数)
ORDER BY RAND();随机记录