数据库基础——第一天

   结构化查询语言——SQL是在关系型数据库上执行数据操作、检索及维护所使用的标准语言,所有数据库都使用相同或者相似的语言。而且SQL语言语法较为简单,可谓举一隅易以三隅返,如果仅是利用数据库管理数据而非数据库开发尽可不在意数据库版本。现在用于学习研究的当是MySQL最火,然博主并不推荐SQL Server,究其原因请自行百度。
   Oracle软件本身是免费的,所以任何人都可以从Oracle官方网站下载并安装Oracle的数据库软件,收费的是License,即软件授权,如果数据库用于商业用途,就需要购买相应Oracle产品的License。
   本文以Oracle为例,分五部对SQL基础部分进行总结——
        1. 数据库原理、SQL(DDL、DML)
        2. 字符串操作、数值操作、日期操作、控制操作
        3. SQL(基础查询)、SQL(关联查询)
        4. SQL(高级查询)
        5. 视图、序列、索引、约束

SQL可以分为:

  • 数据定义语言(DDL)
  • 数据操纵语言(DML)
  • 事务控制语言(TCL)
  • 数据查询语言(DQL)
  • 数据控制语言(DCL)

一.DDL语句
DDL操作是不可滚回的,再次更改只能删表

  • 创建表employee——CREATE
-- 数据库中所有的字段值都是NULL,当插入数据时,某个字段没有值的时候,则会将NULL值设为该字段的值,可以通过DEFAULT关键字为指定的字段设置一个指定的默认值;
-- 对于字符串的自变量而言,在数据库中是使用单引号括起来的;
-- SQL语言不区分大小写,但是字符串内容区分大小写;

CREATE TABLE employee01_bluh (
  id NUMBER(4), 
  name VARCHAR2(20) NOT NULL,
  gender CHAR(1) DEFAULT 'M',
  birth DATE,
  salary NUMBER(6,2) DEFAULT 5000,
  job VARCHAR2(30),
  deptno NUMBER(2)
);
-- 查看表结构:
DESC employee01_bluh ;
  • 删除表
-- 删除表或其他对象结构
DROP TABLE employee01_bluh;
-- 删除表数据,保留表结构
TRUNCATE TABLE employee01_bluh;
  • 修改表
-- 1:修改表名
-- 语法:RENAME old_name TO new_name
RENAME employee01_bluh to employee_bluh
-- 2:修改表结构

-- 2.1:添加新字段
-- 注意:该方法只能将新字段追加到表的末尾
ALTER TABLE employee_bluh ADD (hiredate DATE DEFAULT SYSDATE);

-- 2.2:修改表中现有字段
-- 修改只能修改字段的类型、长度、默认值以及是否为空
-- 该操作不建议在表中已经含有数据的情况下进行,否则
-- 有可能修改不成功。尽量不修改字段类型,修改长度尽
-- 量增加而不是减少
-- 注:不能改字段名
ALTER TABLE employee_bluh MODIFY (job VARCHAR2(40));

-- 2.3:修改列名(字段名)
DESC employee_bluh
ALTER TABLE employee_bluh RENAME COLUMN id TO emp_name;

-- 2.4:删除表字段
ALTER TABLE employee_bluh DROP (hiredate);

二.DML语句
对表中的数据进行操作
包含:增删改操作
DML是伴随事务的

-- INSERT语句:向表中插入数据
-- INSERT INTO ... VALUES(...)
INSERT INTO employee_bluh(id,name,job,deptno) values(1,'Jack','CLERK',10);
INSERT INTO employee_bluh(id,name,job,deptno) values(2,'Tim','CLERK',10);
-- COMMIT    提交事务
-- ROLLBACK  回滚事务
-- 事务仅在DML操作(数据库操作)中有效
COMMIT;
-- 全列操作
-- INSERT INTO employee_bluh VALUE()
-- 插入日期(建议使用内置函数)
-- TO_DATE,当然也可以使用字符串,但是格式必须遵循:DD-MON-RR;
-- 由于有语言差异,不建议使用
INSERT INTO employee_bluh(id,name,deptno,birth)
VALUES(3,'Mike',20,TO_DATE('1992-09-02','YY-MM-DD'))
-- UPDATE:修改表中数据
-- UPDATE table_name SET ... WHERE...
-- 可以同时修改多个字段,用逗号隔开
-- WHERE指定修改范围,若不指定则是对整张表操作
UPDATE employee_bluh SET salary = 6000,deptno = 20
WHERE gender = 'M';
-- DELETE语句:删除数据
DELETE FROM employee_bluh WHERE gender = 'M';
ROLLBACk;
-- DELETE与UPDATE通常都需要添加WHERE条件,否则就是对表中所有数据进行操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值