目录
Datawhale_SQL课程打卡
ch00.MySQL安装
ch01.初识数据库
1.命令
命令 不区分大小写;
每行结束以 ;进行隔开;
数据类型共有 char varchar integer date 四种;
在char以及varchar中可以通过(数字)来设置长度;
数据类型后,可以增加 not null 限制;
数据类型后,还可以增加 default 数字 进行默认值设置
primary key 要求该列数值唯一,用于区分各条数据。
常用命令及示例如下
(摘抄自datawhaleteam-learning-sql/Task01:初识数据库.md at main · datawhalechina/team-learning-sql · GitHub)。
-
CREATE : 创建数据库和表等对象
CREATE TABLE product ( product_id CHAR(4) NOT NULL, sale_price INTEGER default 0, --设置默认值 PRIMARY KEY (product_id) );
-
DROP : 删除数据库和表等对象
删除的表无法恢复
DROP TABLE product;
-
ALTER : 修改数据库和表等对象的结构
执行之后无法恢复
- 添加一列可以存储100位的可变长字符串的 product_name_pinyin 列
ALTER TABLE product ADD COLUMN product_name_pinyin VARCHAR(100);
- 删除列的 ALTER TABLE 语句
ALTER TABLE < 表名 > DROP COLUMN < 列名 >;
- TRUNCATE : 清空表内容
TRUNCATE TABLE TABLE_NAME;优点:相比
drop / delete
,truncate
用来清除数据时,速度最快。
-
INSERT :向表中插入新数据
对表进行全列 INSERT 时,可以省略表名后的列清单。这时 VALUES子句的值会默认按照从左到右的顺序赋给每一列。
-- 包含列清单 INSERT INTO productins (product_id, product_name, product_type, sale_price, purchase_price, regist_date) VALUES ('0005', '高压锅', '厨房用具', 6800, 5000, '2009-01-15'); -- 省略列清单 INSERT INTO productins VALUES ('0005', '高压锅', '厨房用具', 6800, 5000, '2009-01-15');可以使用INSERT … SELECT 语句从其他表复制数据。
-- 将商品表中的数据复制到商品复制表中 INSERT INTO productcopy (product_id, product_name, product_type, sale_price, purchase_price, regist_date) SELECT product_id, product_name, product_type, sale_price, purchase_price, regist_date FROM Product;
-
UPDATE :更新表中的数据
UPDATE <表名> SET <列名> = <表达式> [, <列名2>=<表达式2>...]; WHERE <条件>; -- 可选,非常重要。 ORDER BY 子句; --可选 LIMIT 子句; --可选 UPDATE product SET sale_price = sale_price * 10 WHERE product_type = '厨房用具';
2.常用
- mysql workbench 创建数据库或表后在schemas找不到
- 注释
单行注释
#注释
-- 注释 (破折号后必须有空格)
多行注释
/*
注释
注释
*/
- 数据恢复
1.减少错误
2.及时备份