MySQL 基础 (二)- 表操作
- MySQL表数据类型
字符串类型
数值数据类型
日期和时间数据类型- 用SQL语句创建表
创建新表
设定列类型 、大小、约束
CREATE TABLE 新表名
(
列名1 类型(n) NOT NULL(或null),
列名2 类型(n) NOT NULL,
… … …
); - 用SQL语句创建表
设定主键
1.创表时,可在约束后面添加 primary key
2.
ALTER TABLE 表名
ADD CONSTRAINT PRIMARY KEY(列名)
指定默认值
可在约束后面添加 default n
获取系统日期
current_date
- 用SQL语句向表中添加数据
数据插入表中
新建行 不指定列名
INSERT INTO 表名
VALUES(‘值1’,
‘值2’,
…);
新建行 指定列名
INSERT INTO customers(列名1,
列名2,
…)
VALUES(‘值1’,
‘值2’,
…);
注意:省略列输入数据只适合省略的列允许null值,或有默认值。
插入检索出的数据
把表2中的列名1,列名2,…数据检索出来,合并到表名1中
INSERT INTO 表名1(列名1,
列名2,
…)
SELECT 列名1,
列名2,
…
FROM 表名2;
复制表到新表中 -用于测试
CREATE TABLE CustCopy
SELECT *FROM customers;
新建列
ALTER TABLE 表名
ADD 新列名 类型(n);
- 用SQL语句修改表
修改列名
ALTER TABLE 表名 CHANGE 原列名 新列名 新类型(n);
修改表中数据
修改(表名)中 列名2 为 值1 的 某条数据 的 列名1的值 为 新值,列名3的值 为 新值2
UPDATE 表名
SET 列名1=‘新值’,
列名3=‘新值2’
WHERE 列名2=‘值1’;
构建批量更新
UPDATE yoiurtable
SET dingdan = CASE id
WHEN 1 THEN 3
WHEN 2 THEN 4
WHEN 3 THEN 5
END
WHERE id IN (1,2,3)
这句sql 的意思是,更新dingdan 字段,如果id=1 则dingdan 的值为3,如果id=2 则dingdan 的值为4
如果更新多个值的话,只需要稍加修改:
UPDATE categories
SET dingdan = CASE id
WHEN 1 THEN 3
WHEN 2 THEN 4
WHEN 3 THEN 5
END,
title = CASE id
WHEN 1 THEN ‘New Title 1’
WHEN 2 THEN ‘New Title 2’
WHEN 3 THEN ‘New Title 3’
END
WHERE id IN (1,2,3)
删除行
从表中删除特定行
DELETE FROM 表名
WHERE列名 =‘值’;
删除列
ALTER TABLE 表名
DROP COLUMN 列名;
- 用SQL语句删除表
删除整个表
1、DELETE
DELETE FROM 表名;
2、DROP
DROP TABLE 表名;
TRUNCATE
不同方式的区别
1、当你不再需要该表时, 用 drop;
2、当你仍要保留该表,但要删除所有记录时, 用 truncate;
3、当你要删除部分记录时, 用 delete。
作业:
项目3:
– 列出去重后所有超过或等于5名学生的课
SELECT class
FROM courses
GROUP BY class
HAVING COUNT(DISTINCT student)>=5;
项目四:交换工资