SQL基础——SQL概要

概要

系统学习SQL的笔记,用于记录学习过程。

SQL语句及其种类

SQL是用关键字,表名,列名等组合成的一条语句用来描述操作的内容。
关键字是指那些含义或者使用方法已经事先定义好的英语单词。

DDL(Data Definition Language)数据定义语言

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

CREATE:创建数据库和表对象
DROP:删除数据库和表等对象
ALTER:修改数据库和表等对象的结构

DML(Data Manipulation Language)数据操纵语言

DML(Data Manipulation Language,数据操纵语言)用于查询或者变更表中的记录。

DML包含以下的几种指令:

SELECT:查询表中的数据
INSERT:向表中插入新数据
UPDATE:更新表中的数据
DELETE:删除表中的数据

DCL(Data Control Language)数据控制语言

DCL(Data Control Language数据控制语言)用来确认或者取消对数据库中的数据进行的变更。还可以对RDBMS的用户是否有权限操作数据库中的对象(数据库表等)进行设定。

DCL包含以下的几种指令:

COMMIT:确认对数据库中的数据进行的变更。
ROLLBACK:取消对数据库中的数据进行标称
GRANT:赋予用户的操作权限
REVOKE:取消用户的操作权限

SQL的基本书写规则

  1. SQL语句要以分号(;)结尾
  2. SQL语句不区分大小写,关键字不区分大小写。
  3. 字符串和日期常数需要使用单引号(')括起来。数字常数无需加注单引号(直接书写数字即可)。
  4. 英语单词之间需要使用半角空格或者换行符进行分隔。

表的创建

语法1.1创建数据库的CREATE DATABASE语句

CREATE DATABASE <数据库名称>;

代码示例1.1 创建数据库shop

CREATE DATABASE shop;

语法1.2创建表的CREATE TABLE语句

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

代码示例1.2创建Product表的CREATE TABLE语句

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_date DATE,
PRIMARY KEY ( product_id ));

命名规则

一般只能使用半角英文字母、数字、下划线(_) 作为数据库、表和类的名称。
例如不能将product_id写成product-id,因为标准SQL并不允许使用连字符作为列名等名称。$ # ? 等支付同样不能作为名称使用。
虽然有些RDBMS允许使用上面这些支付作为列的名称,但是只是限于在该RDBMS中使用,并不能保证在其他RDBMS中也能使用。

  1. 数据库名称、表名和列名等可以使用以下三种字符。
    半角英文字母
    半角数字
    下划线(_)
  2. 名称必须以半角英文字母作为开头。
  3. 名称不能重复。
    在同一个数据库中不能创建两个相同名称的表,在同一个表中也不能创建两个名称相同的列。

四种基本的数据类型

INTEGER类型

用于存储整数的数据类型,不能存储小数

CHAR型

CHAR是CHARACTER的缩写,用于指定存储字符串的列的数据类型。
可以像CHAR(10)
或者CHAR(200)
这样,在括号中指定该列可以存储的字符串的长度(最大长度)。字符串超出最大长度的部分是无法输入到该列中的。RDBMS不同,长度单位也不一样,既存在使用字符个数的情况,也存在使用字节长度 的情况。

VARCHAR型

同CHAR型一样,varchar型也是用来指定存储字符串的类的数据类型。但是该类型的列是以可变长字符串的形式来保存字符串的。定长字符串在字符数未达到最大长度时用半角空格补足,但是可变字符串即使字符数未达到最大长度,也不会用半角空格补足。
例如向VARCHAR(8)类型的列中输入字符串’abc’的时候,保存的就是字符串’abc’

DATE型

用来指定存储日期(年月日)的列的数据类型(日期型)

约束的设置

约束是除了数据类型之外,对列中存储的数据进行限制或者追加条件的功能。

NOT NULL约束

数据类型的右侧设置了NOT NULL
约束 NULL是代表空白(无记录)的关键字。在NULL
之前加上了表示否定的NOT,就是给该列设置了不能输入空白,也就是必须输入数据的约束(如果什么都不输入就会出错)。

primary key主键约束

 PRIMARY KEY (product_id)

用来给product_id列设置主键约束
的。所谓键,就是在指定特定数据时使用的列的组合。键种类多样,主键(primary key)就是可以特定一行数据的列。也就是说,如果把product_id列指定为主键,就可以通过该列取出特定的商品数据了。

表的删除和更新

使用DROP TABLE语句来删除表。
使用ALTER TABLE语句向表中添加列或者从表中删除。

表的删除(DROP TABLE语句)

语法1.3 删除表

DROP TABLE <表名>;

代码示例1.3 删除Product表

DROP TABLE Product;

注意:删除的表是无法恢复的,所以需要特别注意,不要误删表。

表的更新(ALTER TABLE语句)

如果发现表创建出来之后发现少了几列,这个时候使用ALTER TABLE语句就可以了。

语法1.4 添加列的ALTER TABLE语句

ALTER TABLE <表名> ADD COLUMN <列的定义>

注意:在Oracle和SQL Server中不用写COLUMN.

 ALTER TABLE <表名> ADD <列名>

代码示例1.4 添加一列可以存储100位的可变长字符串的product_name_pinyin列

ALTER TABLE Product ADD COLUMN product_name_pinyin VARCHAR(100);

语法1.5 删除列的 ALTER TABLE语句

 ALTER TABLE <表名> DROP COLUMN <列名>

注意:在Oracle和SQL Server中不用写COLUMN.

 ALTER TABLE <表名> DROP <列名>

代码示例1.5 删除product_name_pinyin列

ALTER TABLE Product DROP COLUMN product_name_pinyin;

ALTER TABLE语句和DROP TABLE语句一样,执行之后无法恢复。误添列可以通过ALTER TABLE语句删除,或者将表全部删除之后重新再创建。

表的修改

修改表名

代码实例1.6 修改表名

RENAME TABLE Poduct to Product;

如果博主的文章对您有所帮助,可以评论、点赞、收藏,支持一下博主!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王卫——David

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值