天池龙珠计划SQL训练营-Task01学习打卡

天池龙珠计划SQL训练营 task01课程地址

一、初始数据库

数据库是将大量数据保存起来,通过计算机加工而成的可以 进行高效访问的数据集合。该数据集合称为数据库(Database,DB)。用来管理数据库的计算机系统称为数据库管理系统(Database Management System,DBMS)。

1.1、DBMS的种类

DBMS 主要通过数据的保存格式(数据库的种类)来进行分类,现阶段主要有以下 5 种类型.

  • 层次数据库(Hierarchical Database,HDB)
  • 关系数据库(Relational Database,RDB)

这种类型的 DBMS 称为关系数据库管理系统(Relational Database Management System,RDBMS)。比较具有代表性的 RDBMS 有如下 5 种。

* Oracle Database:甲骨文公司的RDBMS
* SQL Server:微软公司的RDBMS
* DB2:IBM公司的RDBMS
* PostgreSQL:开源的RDBMS
* MySQL:开源的RDBMS
  • 面向对象数据库(Object Oriented Database,OODB)
  • XML数据库(XML Database,XMLDB)
  • 键值存储系统(Key-Value Store,KVS),举例:MongoDB

1.2、RDBMS 的常见系统结构

使用 RDBMS 时,最常见的系统结构就是客户端 / 服务器类型(C/S类型)这种结构

1.3、数据库安装

二、初识SQL

2.1、概念介绍

数据库中存储的表结构类似于excel中的行和列,在数据库中,行称为记录,它相当于一条记录,列称为字段,它代表了表中存储的数据项目。

行和列交汇的地方称为单元格,一个单元格中只能输入一条记录。

SQL是为操作数据库而开发的语言。国际标准化组织(ISO)为 SQL 制定了相应的标准,以此为基准的SQL 称为标准 SQL(相关信息请参考专栏——标准 SQL 和特定的 SQL)。

完全基于标准 SQL 的 RDBMS 很少,通常需要根据不同的 RDBMS 来编写特定的 SQL 语句,原则上,本课程介绍的是标准 SQL 的书写方式。

根据对 RDBMS 赋予的指令种类的不同,SQL 语句可以分为以下三类.

DDL

DDL(Data Definition Language,数据定义语言) 用来创建或者删除存储数据用的数据库以及数据库中的表等对象。DDL 包含以下几种指令。

  • CREATE : 创建数据库和表等对象

  • DROP : 删除数据库和表等对象

  • ALTER : 修改数据库和表等对象的结构

DML

DML(Data Manipulation Language,数据操纵语言) 用来查询或者变更表中的记录。DML 包含以下几种指令。

  • SELECT :查询表中的数据

  • INSERT :向表中插入新数据

  • UPDATE :更新表中的数据

  • DELETE :删除表中的数据

DCL

DCL(Data Control Language,数据控制语言) 用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对 RDBMS 的用户是否有权限操作数据库中的对象(数据库表等)进行设定。DCL 包含以下几种指令。

  • COMMIT : 确认对数据库中的数据进行的变更

  • ROLLBACK : 取消对数据库中的数据进行的变更

  • GRANT : 赋予用户操作权限

  • REVOKE : 取消用户的操作权限

实际使用的 SQL 语句当中有 90% 属于 DML

2.2 SQL 基本的书写规则

  • SQL语句要以分号( ; )结尾
  • SQL 不区分关键字的大小写,但是插入到表中的数据是区分大小写的
  • win 系统默认不区分表名及字段名的大小写
  • linux / mac 默认严格区分表名及字段名的大小写
  • 单词需要用半角空格或者换行来分隔

数据库 操作

  • 创建数据库
create database <数据库名>

eg:create database demo

  • 使用/切换 数据库
use <数据库名>

eg:use demo

  • 删除 数据库
drop <数据库名>

eg:drop demo

数据表操作

  • 创建数据表
CREATE TABLE < 表名 >
( < 列名 1> < 数据类型 > < 该列所需约束 > ,
  < 列名 2> < 数据类型 > < 该列所需约束 > ,
  < 列名 3> < 数据类型 > < 该列所需约束 > ,
  < 列名 4> < 数据类型 > < 该列所需约束 > ,
  .
  .
  .
  < 该表的约束 1> , < 该表的约束 2> ,……);

eg:

CREATE TABLE user(
user_id integer not null,
user_name varchar(20) not null,
user_age integer not null,
primary key(user_id)
);
  • 添加表字段
alter table <表名> add column <列的定义>

eg:alter table user add column user_sex char(1) not null;

  • 删除表字段
alter table <表名> drop column <列名>

eg:alter table user drop column user_sex;

  • 清空表数据
truncate table <表名>

优点:相比drop/delete,truncate用来清除数据时,速度最快。

数据操作

  • 插入数据(单行)
insert into <表名> (1,2,3, ……) VALUES (1,2,3, ……);

eg: insert into user (user_id,user_name,user_age) values(1,"gaolei",26);

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

eg:update user set user_name="gaodalei" where user_id=1 order by user_id asc limit 1;

  • 使用 update 时要注意添加 where 条件,否则将会将所有的行按照语句修改
  • 使用 UPDATE 也可以将列更新为 NULL(该更新俗称为NULL清空)。此时只需要将赋值表达式右边的值直接写为 NULL 即可。

练习题解答

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 column postal_code char(8) 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) 
);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值