MySQL表数据类型
类型 | 大小 | 用途 |
CHAR | 0-255字节 | 定长字符串 |
VARCHAR | 0-65535字节 | 变长字符串 |
INT或INTEGER | 4 字节 | 大整数值 |
FLOAT | 4 字节 | 单精度浮点数值 |
DOUBLE | 8 字节 | 双精度浮点数值 |
DECIMAL | 依赖于范围 | 小数值 |
用SQL语句创建表
- 语句解释
- 设定列类型 、大小、约束
- 设定主键
用SQL语句向表中添加数据
- 语句解释
- 多种添加方式(指定列名;不指定列名)
--插入一行
INSERT INTO customers
VALUES (NULL,
'Pep E. Lapew',,
'90046'
);
-- 插入多行
INSERT INTO cunstomers(cust_name,
cust_address,
cust_zip
)
VALUES(NULL,
'Pep E. Lapew',,
'90046'
);
INSERT INTO cunstomers(cust_Name,
cust_Address,
cust_zip
)
VALUES(NULL,
'Pep E. Lapew',,
'90046'
);
-- 另一种插入多行
INSERT INTO cunstomers(cust_name,
cust_address,
cust_zip
)
VALUES(NULL,
'Pep E. Lapew',,
'90046'
);
VALUES(NULL,
'Pepa. Lapew',,
'90046'
);
用SQL语句删除表
- 语句解释,从一个表中删除数据,使用DELETE语句。
- DELETE
DELETE FROM customers WHERE cust_id = 10006;
- DROP,drop命令用于删除数据库。drop命令格式:drop database <数据库名>;
- TRUNCATE, 如果想从表中删除所有行,不要使用DELETE,TRUNCATE速度更快,可使用TRUNCATE TABLE语句TRUNCATE 实际是删除原来的表并重新创建一个表,而不是逐行删除表中的数据。
- 不同方式的区别,当你不再需要表时,用drop,当你仍要保留该表,但要删除所有记录时,用truncate,当你要删除部分记录时,用delete.
用SQL语句修改表
- 修改
--修改表名 ALTER TABLE courses RENAME TO COURSES; -- 修改列 ALTER TABLE courses RENAME COLUMN class TO CLASS ; -- 修改表中的数据 UPDATE courses SET CLASS='math' WHERE student='D';
- 删除行或列
-- 删除列 ALTER TABLE courses DROP COLUMN student; --删除行 DELETE FROM courses WHERE student='I';
- 新建行或列
--新建行 INSERT INTO courses VALUES('A', 'Math'); --新建列 ALTER TABLE courses ADD gender CHAR(2);
项目三:
超过5名学生的课(难度:简单) 创建如下所示的courses 表 ,有: student (学生) 和 class (课程)。 例如,表:
编写一个 SQL 查询,列出所有超过或等于5名学生的课。 应该输出:
Note: 学生在每个课中不应被重复计算。
-- 创建表
CREATE TABLE courses(
student VARCHAR(255) NOT NULL PRIMARY KEY,
class VARCHAR(255) NOT NULL
);
-- 插入数据
INSERT INTO courses VALUES('A', 'Math');
INSERT INTO courses VALUES('B','English');
INSERT INTO courses VALUES('C','Math');
INSERT INTO courses VALUES('D','Biology');
INSERT INTO courses VALUES('E','Math');
INSERT INTO courses VALUES('F','Computer');
INSERT INTO courses VALUES('G','Math');
INSERT INTO courses VALUES('H','Math');
INSERT INTO courses VALUES('I','Math');
INSERT INTO courses VALUES('A','Math');
-- 查询
SELECT class
FROM (SELECT class, COUNT(*) AS num
FROM courses
GROUP BY class
HAVING num > 5) AS table_alias;
项目四:
交换工资(难度:简单) 创建一个 salary表,如下所示,有m=男性 和 f=女性的值 。 例如:
交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求使用一个更新查询,并且没有中间临时表。 运行你所编写的查询语句之后,将会得到以下表:
-- 创建表
CREATE TABLE salary(
id INT NOT NULL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
sex CHAR(2) NOT NULL,
salary INT NOT NULL
);
-- 插入数据
INSERT INTO salary VALUES('1','A','m','2500');
INSERT INTO salary VALUES('2','B','f','1500');
INSERT INTO salary VALUES('3','C','m','5500');
INSERT INTO salary VALUES('4','D','f','500');
--更新数据
UPDATE salary
SET sex = IF(sex = 'F','M','F');