MySQL 基础 (二)- 表操作

  • MySQL表数据类型
    字符串类型
    MySQL 基础 (二)- 表操作
    数值数据类型
    MySQL 基础 (二)- 表操作
    日期和时间数据类型
    MySQL 基础 (二)- 表操作
    • 用SQL语句创建表
      创建新表
      设定列类型 、大小、约束

    CREATE TABLE 新表名
    (
    列名1 类型(n) NOT NULL(或null),
    列名2 类型(n) NOT NULL,
    … … …
    );

设定主键
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:
MySQL 基础 (二)- 表操作
– 列出去重后所有超过或等于5名学生的课

SELECT class
FROM courses
GROUP BY class
HAVING COUNT(DISTINCT student)>=5;

项目四:交换工资
MySQL 基础 (二)- 表操作
MySQL 基础 (二)- 表操作