第一次参加Datawhale开源学习——开启我的SQL学习之旅

DAY 1 task01

学习笔记

环境搭建

按照Datawhale的教程一步一步操作是很顺利的,教程的步骤写的很详细,这里点个赞

我安装的是mysql 8.0.28版本,数据库工具用的是DBeaver。

教程地址:ch00: 环境搭建.md · Datawhale/wonderful-sql - 码云 - 开源中国 (gitee.com).

创建数据库

搭建完环境,创建了第一个数据库和第一章表还是很激动的~(就像学编程语言第一次打印hello world一样)

上图是我遇到的一个小问题,红色框没有选择数据库,导致语句执行没有反应,后来才发现,要在特定数据库中执行SQL语句才行。

总结一下,创建数据库和表需要用到的语句 

create database 数据库名称;
create table 表名;

 创建表时每个字段会设置数据类型、约束条件。像实例中这样

CREATE TABLE product
(product_id CHAR(4) NOT NULL,
 product_name VARCHAR(100) NOT NULL,
 product_type VARCHAR(32) NOT NULL,
 sale_price INTEGER ,
 purchase_price INTEGER ,
 regist_date DATE ,
 PRIMARY KEY (product_id));

这里还会设计数据类型,int整数型、char存储定长字符、varchar存储可变长度字符、date存储日期。

约束条件目前学到的是 非空约束not null 和主键约束primary key.

下图是创建表的过程中遇到的一个错误,仔细检查发现,原来是最后少了一个括号,应该是对书写规范还不太熟悉。

创建了表如何查看呢,我百度了一个语句,这样可以查看表的完整内容了。

select * from productions P;

接下来学到了删除表和更新表

涉及的语句有:

drop table 表名:
alter table 表名 add column 列;
alter table 表名 drop colunm 列;

还有删除特定行用delete语句。这里就要加where条件了。 

更新数据的语句也好理解。where条件尤为关键,可以限定要修改的条件。

UPDATE <表名>
   SET <列名> = <表达式> [, <列名2>=<表达式2>...]  
 WHERE <条件>  -- 可选,非常重要
 ORDER BY 子句  --可选
 LIMIT 子句; --可选

接下来是想表中插入数据。主要是insert语句。

INSERT INTO <表名> (列1, 列2, 列3, ……) VALUES (值1, 值2, 值3, ……);  

 这里面涉及一个commit语句,学完还是好奇在什么情况下使用它。之后可以实验一下。

最后了解了索引的各种概念,像创建索引、主键索引、唯一索引、普通索引、前缀索引、全文索引等,也知道了创建索引后会极大提高查询效率,但还是对使用方法比较陌生。

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
INDEX [indexName] (username(length))  
 
);  

刷题时间到啦,以下就是我的答案啦

练习题

题目1:

编写一条 CREATE TABLE 语句,用来创建一个包含下表中所列各项的表 Addressbook (地址簿),并为 regist_no (注册编号)列设置主键约束

解答:

create table addressbook
(regist_no int not null,
name varchar(128) not null,
address varchar(256) not null,
tel_no char(10),
mail_address char(20),
primary key(regist_no));

题目2:

假设在创建题目1中的 Addressbook 表时忘记添加如下一列 postal_code (邮政编码)了,请编写 SQL 把此列添加到 Addressbook 表中。

列名 : postal_code

数据类型 :定长字符串类型(长度为 8)

约束 :不能为 NULL

解答:

alter table addressbook add column postal_code char(8) not null;

题目3:

请补充如下 SQL 语句来删除 Addressbook 表。

(drop) table Addressbook;

题目4:

是否可以编写 SQL 语句来恢复删除掉的 Addressbook 表?

解答:不可以。表一旦被删除,是无法恢复的。所以删除操作要慎重。(如果删库了,就准备跑路吧!) 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值