一.表的约束
1.设置t_hero的主键为id
mysql> alter table t_hero add primary key(id);
2.设置t_hero id属性非空
mysql> alter table t_hero modify id int not null;
3.设置name属性为非空非重复
mysql> alter table t_hero modify name varchar(255) not null;
mysql> alter table t_hero add unique (name);
4.设置检查约束
mysql> alter table t_hero add constraint chk_gender check(gender in ('男', '女'));
mysql> desc t_hero;

二.查询语句练习
1.基本查询语句
-- 查询所有数据
select * from t_hero;
-- 查询需要的字段信息
select id, name, password from t_hero;
-- 查询一个字段,一个等值条件
select name from t_hero where id = 1;
-- select 字段列表 from 表名称 where 条件
2.聚合函数使用
mysql> select count(*) from t_hero;
+----------+
| count(*) |
+----------+
| 4 |
+----------+
1 row in set (0.00 sec)
3.查询时的别称使用
mysql> select count(*) 总数 from t_hero;
+------+
| 总数 |
+------+
| 4 |
+------+
1 row in set (0.00 sec)
4.常见条件查询
mysql> select id,name,address from t_hero where id in (2,4);
+----+----------+---------+
| id | name | address |
+----+----------+---------+
| 2 | 林黛玉 | 贾府 |
| 4 | 紫霞仙子 | 盘丝洞 |
+----+----------+---------+
2 rows in set (0.00 sec)
5.模糊查询
mysql> select * from t_hero where name like "林%";
+----+--------+----------+------+--------+---------+------------+-------+
| id | name | nickname | age | gender | address | weapon | types |
+----+--------+----------+------+--------+---------+------------+-------+
| 2 | 林黛玉 | 林妹妹 | 18 | 女 | 贾府 | 倒拔垂杨柳 | 人类 |
+----+--------+----------+------+--------+---------+------------+-------+
1 row in set (0.00 sec)
6.逻辑运算符and
mysql> select id,name,address from t_hero where name like "林%" and address = "贾府";
+----+--------+---------+
| id | name | address |
+----+--------+---------+
| 2 | 林黛玉 | 贾府 |
+----+--------+---------+
1 row in set (0.00 sec)
7. 分组查询
mysql> select nickname from t_hero group by nickname;
+----------+
| nickname |
+----------+
| 齐天大圣 |
| 林妹妹 |
| 黑旋风 |
| 盘丝大仙 |
+----------+
4 rows in set (0.00 sec)
8.结果排序
mysql> select * from t_hero where id <= 3 order by id;
+----+--------+----------+------+--------+---------+------------+-------+
| id | name | nickname | age | gender | address | weapon | types |
+----+--------+----------+------+--------+---------+------------+-------+
| 1 | 孙悟空 | 齐天大圣 | 1000 | 男 | 花果山 | 如意金箍棒 | 猴子 |
| 2 | 林黛玉 | 林妹妹 | 18 | 女 | 贾府 | 倒拔垂杨柳 | 人类 |
| 3 | 李逵 | 黑旋风 | 30 | 男 | 沂州 | 两柄板斧 | 人类 |
+----+--------+----------+------+--------+---------+------------+-------+
3 rows in set (0.00 sec)
三.外键与多表关联
1.创建用于外键关联的表
mysql> select * from typesName;
+----+----------+
| id | name |
+----+----------+
| 1 | 猴子 |
| 2 | 人类 |
| 3 | 神仙 |
+----+----------+
2.创建外键相关字段
mysql> alter table t_hero add bookNum int;

3.多表关联
mysql> alter table t_hero
-> ADD CONSTRAINT fk_hero_book
-> foreign key(bookNum) references bookName(id);
mysql> UPDATE t_hero
-> SET heroNum = 1
-> WHERE book = "西游记";
mysql> UPDATE t_hero
-> SET heroNum = 2
-> WHERE book = "红楼梦";
mysql> UPDATE t_hero
-> SET heroNum = 3
-> WHERE book = "水浒传";
mysql> UPDATE t_hero
-> SET heroNum = 4
-> WHERE book = "西游记";