SQL训练营初始数据库与SQL学习笔记

本学习笔记为阿里云天池龙珠计划SQL训练营的学习内容,学习链接为https://tianchi.aliyun.com/forum/postDetail?spm=5176.20222307.J_9059755190.2.29d94cb37pEvFf&postId=163421 

一、学习知识点概要

1.介绍数据库

2.介绍SQL的建表语句

二、学习内容

1.简单介绍了数据库的定义和目前比较常见的数据库类型。

        其中主要是围绕关系型数据库,常见的比如MySql、Oracle、SqlServer、DB2等等

2.本节主要介绍了SQL的DDL和DML;

  • 创建表语句:
CREATE TABLE < 表名 > (
    < 列名 1> < 数据类型 > < 该列所需约束 > , 
    < 列名 2> < 数据类型 > < 该列所需约束 > ,
    < 列名 3> < 数据类型 > < 该列所需约束 > , 
    < 列名 4> < 数据类型 > < 该列所需约束 > ,
    . . . < 该表的约束 1> , < 该表的约束 2> ,……);
  • 删除表
DROP TABLE <表名>
  • 添加列或删除列
  ALTER TABLE <表名> ADD COLUMN <列的定义>;---列的定义包括<列名> <数据类型> [所需约束]

  ALTER TABLE <表名>  DROP COLUMN <列名>
  • 数据的更新
UPDATE <表名> 
    SET <列名> = <表达式> [, <列名2>=<表达式2>...]; 
    [WHERE <条件>; ]
    [ORDER BY 子句; ]
    [LIMIT 子句; ]
  • 数据的插入
INSERT INTO <表名> (列1, 列2, 列3, ……) VALUES (值1, 值2, 值3, ……);

//如果插入所有列名 则可以省略:
INSERT INTO <表名>- VALUES (值1, 值2, 值3, ……);

//如果插入多条数据 根据数据库类型的不同大致有以下两种:
//DB2、SQL、SQL Server、 PostgreSQL 和 MySQL的多行插入
INSERT INTO <表名> 
VALUES(值1, 值2, 值3, ……), 
(值1, 值2, 值3, ……), 
(值1, 值2, 值3, ……);

//Oracle
INSERT ALL INTO <表名> VALUES (值1, 值2, 值3, ……) 
INTO productins VALUES (值1, 值2, 值3, ……) 
INTO productins VALUES (值1, 值2, 值3, …) 
SELECT * FROM DUAL; 

三、学习问题与解答

下图是本次课后练习的作业

--3.1  创建addressbook表
CREATE TABLE Addressbook (
	regist_no integer NOT NULL,
	name varchar(128) NOT NULL,
	address varchar(256) NOT NULL,
	tel_no char(10),
	mail_address char(20),
	PRIMARY KEY (regist_no)
);

--3.2 添加一列postal_code
ALTER TABLE Addressbook ADD postal_code char(9) NOT NULL;

--3.3  删除addressbook表
DROP TABLE ADDRESSBOOK 

--3.4  恢复Addressbook表
CREATE TABLE Addressbook (
	regist_no integer NOT NULL,
	name varchar(128) NOT NULL,
	address varchar(256) NOT NULL,
	tel_no char(10),
	mail_address char(20),
	postal_code char(8) NOT NULL,
	PRIMARY KEY (regist_no)
);

四、学习思考与总结

我用的是Oracle数据库 所以语言上有点不一样

插入时间数据时会出现报错,需要加一个to_date()函数

以及在新增列名时 原式写的是

ALTER TABLE Addressbook ADD COLUMN postal_code char(9) NOT NULL;

会出现提示[标识符错误]

这里需要把COLUMN关键字删除  虽然参考答案中有oracle格式的语句 但我试了一下还是不可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值