SQL入门经典前两节笔记

  • 第一章节:SQL概要

数据库SQL命令的类型:

  • 数据定义语言DDL
  • 数据操纵语言DML
  • 数据查询语言DQL
  • 数据控制语言DCL
  • 数据管理命令
  • 事务控制命令

DDL:
- create table
- alter table
- drop table
- create index
- alter index
- drop index
- create view
- drop view

DML:

  • insert
  • update
  • delete

DQL:

  • select

DCL:

  • alter password
  • grant
  • revoke
  • create synonym

数据管理命令:

  • start audit
  • stop audit

事务控制命令:

  • commit:提交数据库事务
  • rollback:撤销数据库事务
  • savepoint:在一组事务里创建标记点以用于回退
  • set transaction:设置事务的名称

表名的应该符合商业规则,有利于辅助使用。例如表名为XX_TAB字段名为user_id。

表的构成:字段,记录,列,主键,NULL值。

  • 第二章节:定义数据结构
  • 数据基本类型可以设置字段的类型,一些数据类型可以自动转换为其他数据类型,隐式转换了。例如从一个数值字段的数据取出来放到字符串里,数据库可以完成自动转换,但有的必能完成自动转换,要显式才用cast和convert。
    最基本三种类型:字符串,数值,日期和时间类型。

定长与变长字符串:主要考虑不要造成空间浪费。varchar为常见变长的。
大对象类型:varchar太小,blob与text保存大数据集,blob是二进制大对象(很长的二进制字符串)。

数值类型:
bit(n)
bit varying(n)
decimal(p,s)
Integer
smallint
bigint
float(p,s)
double precision(p,s)
real(s)
p为最大长度,s为小数后位数
有个通用类型numeric。整数小数正负数都可以

小数类型:
decimal(p,s) 有四舍五入的性质,34.33放到decimal(3,1)保存为34.3

整数:-
浮点数:
单精度浮点有效位数1-21.
双精度有效位数22-53
定义两个 float(15) float(50)

日期和时间类型:
date
time
datetime
timestamp

datetime数据类型的元素:
year
month
day
hour
minute
second

直义字符串:一般来说字符串需要使用单引号,数值不需要

NULL类型:
为空

布尔型:
true false null

自定义类型:极大丰富存储的数据。
自定义一个类型:create type person as object(name varchar(30),ssn varchar(9))
使用:create table em_tab(employee person,salary decimal(10,2),)

域:可以被使用的数据类型的集合。域与数据相关联,从而只能接受特定的数据。
创建域:
create domain money_d as number(8,2);
还可以给域添加约束条件:
alter domain money_d add constraint money_con1 check(value > 5)
然后这样引用域:
create table emp_ pay(emp_id number(9),em_name varchar(30),pay_rate money_d)

  • 第三章:管理数据库对象
    数据库对象:表,视图,簇,序列,索引和异名。表示最主要最简单的储存形式。
    规划:某个用户名相关联的数据库的对象集合。当用户user创建一个对象就是在自己的规划里创建了它。对于数据库来说全名是user.表名.自己在自己的规划内使用不需要加user,其他用户要访问这个表就要加用全名。

表:列,行。
create table语句-

命名规范

alter table命令-

从现有的表新建另一个表:
create table new_table_name as select [* | column1,column2] from table_name [where]

删除表:-

  • 完整性约束
    主键约束:唯一
    唯一性约束:也可作为主键
    外键约束:为确保标语表之间引用完整性的主要机制。外键作为主键的那个表为父表,在子表插入一个数据必须也在父表中有其值,类似在父表中删除了该字段,子表里的对应值也应该被全部删除,这就是应用完整性。
    用alter向表里添加外键:alter table 【子表名】add constraint 【子表中字段名】 foreign key(【外键名】) references 【父表名】(【父表字段名】)
    not null约束
    检查约束:用于检查输入到特定的字段的数据的有效性。
    去除约束-

你可能感兴趣的:(数据库)