一、学习内容
1. MySQL表数据类型(常用数据类型)
整数:tinyint 1字节, samllint 2字节, int 4字节,bight 8字节
浮点数:float (p(所占总位数)、s(小数点所占位数))4字节 ;double(p、s)8字节
定点数:decimal(p、s)
日期/时间:data、time、datatime
文本:char、varchar、text
二进制:bit
2. 用SQL语句创建表
- 最简单的创建方式:
CREATE TABLE table_name (column_name column_type);
- 带主键的创建方式:
CREATE TABLE table_name (id int not null primary key, name char(20));
- 复合主键
CREATE TABLE table_name (id int not null , name char(20),primary key(id,name));
3. 用SQL语句向表中添加数据
- 为表中所有字段添加数据
INSERT INTO 表名(字段名1,字段名2,....)
VALUES(值1,值2,...);
INSERT INTO 表名VALUES(值1,值2,...);
- 为表中指定字段添加数据
语句解释:只向部分字段添加值,其他值为默认值。默认值使用*Show create table 表名;*查看字段的默认值。
INSERT INTO 表名(字段名1,字段名2,....)
VALUES(值1,值2,...);
4. 用SQL语句删除表
- DELETE 删除符合条件的表达式
DELETE FROM 表名
WHERE 条件表达式;
- DROP语句删除表的结构,以及被依赖的约束,触发器,索引
DROP TABLE table_name;
- TRUNCATE 只能删除表中全部数据
TRUNCATE[TABLE] 表名;
- 删除方式之间区别
delete语句每删除一条记录,都会在日志中记录。truncate语句不会记录。 - 查询
SELECT * from student
WHERE 条件表达式;
5. 用SQL语句修改表
- 修改列名
ALTER TABLE table_name CHAGE 字段i 字段j 类型
- 修改表中数据
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
- 删除行
DELETE FROM table_name
WHERE which rows to decide
- 删除列
ALTER TABLE table_name DROP 字段
- 新建列
ALTER TABLE table_name ADD 字段 type
- 新建行
INSTERT INTO table_name VALUES(value1,'value2')
二、项目三
超过5名学生的课(难度:简单)
创建如下所示的courses 表 ,有: student (学生) 和 class (课程)。
例如,表:
student | class |
---|---|
A | Math |
B | English |
C | Math |
D | Biology |
E | Math |
F | Computer |
G | Math |
H | Math |
I | Math |
A | Math |
编写一个 SQL 查询,列出所有超过或等于5名学生的课。
应该输出:
class |
---|
Math |
Note:
学生在每个课中不应被重复计算。
三、项目四-交换工资(难度:简单)
创建一个 salary表,如下所示,有m=男性 和 f=女性的值 。
例如:
id | name | sex | salary |
---|---|---|---|
1 | A | m | 2500 |
2 | B | f | 1500 |
3 | C | m | 5500 |
4 | D | f | 500 |
交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求使用一个更新查询,并且没有中间临时表。
运行你所编写的查询语句之后,将会得到以下表:
id | name | sex | salary |
---|---|---|---|
1 | A | f | 2500 |
2 | B | m | 1500 |
3 | C | f | 5500 |
4 | D | m | 500 |