关系数据库学习笔记1(2021.6.23)

第一章 数据库简介
1.1数据库的结构:
(1)用来管理数据的二维表在关系数据库中简称为“”;
(2)表的列(垂直方向)称为字段
(3)表的行(水平方向)称为记录,关系数据库以行为单位读写数据;
1.2 SQL概要:
(1)DDL(数据定义语言):对库和表等对象操作,包括:create(创建)、drop(删除)、alter(修改结构);
(2)DML(数据操纵语言):用来查询或者变更表中的记录,包括:select查、insert插、updata更新、delete删除;
(3)DCL(数据控制语言):用来确认或取消对数据库中的数据进行的变更,包括:commit(确认对数据库中的信息进行变更)、rollback(取消对数据库中的数据进行的变更)、grant(赋予用户操作权限)、revoke(取消用户的操作权限);
(4)数据库语句的书写法则:
①以分号“;”结尾;
②不区分关键字大小写,但是一般关键字大写,表名的首字母大写,其余(列名)等小写;
③字符串和日期常数需要使用单引号(‘),数字直接书写即可;
④单词之间使用半角空格或者换行符进行分隔;
1.3 表的创建:
(1)创建库:CREATE DATABASE <数据库名称>;
(2)创建表:

CREATE TABLE <表名><列名1><数据类型><该列所需约束>,
<列名2><数据类型><该列所需约束>,
<该表的约束>);

需要注意:
① 数据类型包括:
CHAR(m):定长,存取快,未满填充半角空格;
VARCHAR(n):可变长的字符串,n指最大长度;
INTEGER:整数;
DATE:日期;
② 该列约束包括:NOT NULL 和空都可;
③ 表的约束一般是设置主键:PRIMARY KEY(列名);通过设置主键可以通过此列提取出特定的商品数据;
(3)命名规则:英文、数字、下划线;必须以英文开头且不能重复;
#oracle一般使用VARCHAR2型;oracle中的DATE还包含时分秒;
1.4 表的删除和更新:
(1)表的删除:DROP TABLE <表名>;

需要注意删除的表无法恢复!!!只能重建。

(2)表的更新:
① 添加列:ALTER TABLE <表名> ADD COLUMN <列的定义>;
列的定义参考:<列名2><数据类型><该列所需约束>;
#oracle和sql server中不用写COLUMN,且oracle中形式为…ADD(<列名>,<列名>);
② 删除列:只需将ADD改为DROP即可;
③ 向表中添加数据:

BEGIN TRANSACTIONINSERT INTO Product VALUES(‘001’,‘T恤衫’,‘衣服’,500,1000,‘2009-01-20’);
…………
COMMIT

需要注意:Mysql须改为:START TRANSACTIOIN;oracle和DB2无需使用BEGIN TRANSACTION;COMMIT是确定插入行的指令语句;
④变更表名:
Oracle、PostgreSQL:ALTER TABLE Poduct RENAME TO Product;
DB2:RENAME TABLE Poduct TO Product;
SQL Server:sp_rename ‘Poduct’ ,’Product’;
MySQL:RENAME TABLE Poduct to Product;

第二章 基础查询
2.1 SELECT语句基础
(1)简单的SELET语句:

SELECT <列名>
FROM <表名>

①可以多加几列,查询结果中列的顺序和SELECT子句中的顺序相同;
②要查询所有列可以使用 SELECT *;但无法设定显示顺序,会按照创建表的定义对列进行排序;
③SQL语句中换行符等可以随意使用,但是不能插入空行,会造成执行错误;
④SQL语句可以使用AS关键字为列设定别名,别名可以使用中文,但需要用双引号(“) 括起来;
⑤从结果中删除重复行,使用DISTINCT实现(NULL也不例外):

SELECT DISTINCT product_type
FROM Product;

可以加两列去除重复行,但是去除的行必须满足两个列的值都相同的条件;
⑥根据WHERE语句来选择记录,指定查询条件:在FROM语句后,加入:

WHERE <条件表达式>

这里需要注意,SQL执行时先执行WHERE语句,选出符合条件的记录,再选出SELECT语句指定的列;
(2)SQL中注释的书写方式:
①写在“- -”之后,只能写在同一行;

--这是示例

②写在/ * 和 * /之间,可以跨多行;

/*这是示例
可以跨好几行*/

2.2 算数运算符和比较运算符
(1)可以在SELECT语句中使用四则运算,也可以使用()提升计算的优先级;
(2)所有包含NULL的计算,结果肯定是NULL;
(3)oracle必须要有FROM语句,如果不需要表,可以使用DUAL这个临时表;DB2中可以使用SYSIBM.SYSDUMMY1这个临时表;
(4)比较运算符需要注意:不等于表示为“<>”,大于等于和小于等于都采用“不等号在左,等号在右”的格式;日期也可以使用比较运算符:

WHERE regist_date <2009-09-27’;

(5)字符串使用比较运算符时,规律如下:‘1’ ‘10’ ‘11’ ‘2’ ‘222’ ‘3’;如果使用chr > ‘2’筛选,结果只有‘222’和‘3’;即字符串类型的数据原则上按照字典顺序进行排序,与数字大小顺序不同;
(6)不能对NULL使用比较运算符,而是使用**“IS NULL”“IS NOT NULL”** 等;
2.3 逻辑运算符(NOT、OR、AND)
(1)NOT :不能单独使用,只能和其他查询条件组合起来使用;
(2)AND:两边都成立;一般先执行AND左边,再执行右边(顺序很关键 ! )
(3)OR:任意一边成立;
(4)AND 的优先级高于OR,如果想先执行OR运算符,可以使用括号
(5)逻辑运算符:对比较运算符等返回的真值进行操作;使用AND 的逻辑运算称位逻辑积;使用OR 的逻辑运算称为逻辑和
(6)SQL逻辑运算符和其他语言不同,为三值逻辑,包括(TRUE,FALSE,UNKNOWN),UNKNOWN一般指逻辑运算出现NULL;
(7)NULL值会大大增加逻辑运算复杂性,因此需要设置NOT NULL约束,少用NULL

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值