一、数据库和SQL
用来管理数据库的计算机系统称为数据库管理系统(Database Management System,DBMS)
和Excel一样,采用由行和列组成的二维表管理数据,这种类型的DBMS称为关系数据库管理系统(Relational Database Management System,RDBMS)
使用RDBMS时,最常见的系统结构 v个美女你不不不不不不不不不客户端/服务器类型(C/S类型)
服务器指的是用来接收其他程序发出的请求,并对该请求进行相应处理的程序(软件),或是安装了此类程序的设备(计算机)。
RDBMS也是一种服务器,能够从保存在硬盘上的数据库中读取数据并返回;
与之相对,向服务器发出请求的程序(软件),或者安装了该程序的设备(计算机)称为客户端。多个客户端可以同时对同一个数据库进行读写操作。
用来管理数据的二维表在关系数据库中简称为表。一个数据库中可以存储多个表。
根据SQL语句的内容返回的数据同样必须是二伟标的形式,这也是关系数据库的特征之一。表的列称为字段,它代表了保存在表中的数据项目。定义为数字的列只能输入数字,定义为日期的列只能输入日期。
与之相对,表的行,称为记录。
SQL语句及其种类
SQL用关键字、表名、列名等组合而成的一条语句来描述操作的内容。
SQL语句可以分为三类:
DDL(Data Definition Language,数据定义语言)
用来创建或者删除存储数据用的数据库,以及数据库中的表对象等对象。
CREATE:创建数据库和表等对象;
DROP:删除数据库和表等对象;
ALTER:修改数据库和表等对象的结构;
DML(Data Manipulation Language,数据操纵语言)
用来查询或者变更表中的记录。
SELECT:查询表中的数据;
INSERT:向表中插入新数据;
UPDATE:更新表中的数据;
DELETE:删除表中的数据;
DCL(Data Control Language,数据控制语言)
用来确认或取消对数据库中的数据进行的变更。此外,还可以对RDBMS的用户是否有权限操作数据库中的对象进行设定。
COMMIT:确认对数据库中的数据进行的变更;
ROLLBACK:取消对数据库中的数据进行的变更;
GRANT:赋予用户操作的权限;
REVOKE:取消用户操作的权限;
SQL基本书写规则
SQL语句以分号结尾;
SQL不区分关键字的大小写,表名和列名也是如此;但是插入到表中的数据是区分大小写;
可以根据个人喜好选择大写还是小写(或者混杂),但为了理解起来更加容易,可以用以下规则来书写SQL:
- 关键字大写
- 表名的首字母大写
- 其余(列名等)小写
命名规则:只能使用半角英文字母、数字、下划线作为数据库、表和列的名称,名称必须以半角英文字母开头;且,同一个数据库中不能创建两个相同名称的表;
在SQL语句中直接书写的字符串、日期或者数字称为常数;常数的书写方式如下所示:
- 字符串:使用单引号,如:'abc'
- 日期:同样需要使用单引号将其扩起来,如'2020-03-16'
- 数字:SQL书写数字不需要使用符号标识直接写,如1000
表的创建
表的最上面一行,是数据的项目名;真正的数据是从第二行开始;
创建表之前先要创建用来存储表的数据库。创建数据库:CREATE DATABASE语句
-- 创建名为shop的数据库
CREATE DTABASE shop;
创建表:CREATE TABLE语句
-- 创建商品表Product
-- 列名右边的INTEGER和CHAR等关键字,是用来声明该列的数据类型的
CREATE TABLE Product
(product_id CHAR(4) NOT NULL,
product_name VARCHAR(100) NOT NULL,
product_type VARCHAR(32) NOT NULL,
sale_price INTEGER ,
purchase_price INTEGER ,
regist_price INTEGER ,
PRIMARY_KEY (product_id));
- INTEGER型:指定存储整数的数据类型;
- CHAR:指定存储字符串的列的数据类型,在括号中指定该列可以存储的字符串的最大长度(以定长字符串的形式);
- VARCHAR:也是指定存储字符串的列的数据类型,也可以通过括号内的数字来制定字符串的最大长度,但是以可变长字符串的形式来保存字符串;
- VARCHAR2: Oracle中使用VARCHAR2类型;
(定长字符串在字符数未达到最大长度时会用半角空格补足,但可变长字符串不同,即使字符数未达到最大长度,也不会用补足)
约束:是除了数据类型之外,对列中存储的数据进行限制或者追加条件的功能;如NUT NULL表示必输;
主键约束:
-- 给product_id列设置主键约束
PRIMARY KEY (product_id)
所谓键,就是在指定特定数据时使用的列的组合;主键可以指定特定一行的数据。
表的删除和更新
表的删除(DROP TABLE)
-- 删除Product表
DROP TABLE Product
删除的表是无法恢复的;
表定义的更新(ALTER TABLE)
- 添加列
-- 在Product表中添加一列product_name_pinyin
-- 1.MySQL、DB2、PstgreSQL
ALTER TABLE Product ADD COLUMN product_name_pinyin VARCHAR(10);
-- 2.Oracle,Oracle可以添加多列,括号括起来
ALTER TABLE Product ADD (product_name_pinyin VARCHAR2(100));
-- 3.SQL Server
ALTER TABLE Product ADD product_name_pinyin VARCHAR(100);
- 删除列
-- 删除Product表中的product_name_pinyin列
-- 1.MySQL、SQL Server、DB2、PstgreSQL
ALTER TABLE Product DROP COLUMN product_name_pinyin;
-- 2.Oracle,Oracle删除多列的时候可以用括号括起来
ALTER TABLE Product DROP (product_name_pinyin);
ALTER TABLE语句和DROP TABLE语句一样,执行之后无法恢复;
网友评论