数据库学习(1)-SQL概要

作者: ls_本性
本文章是关于SQL基本内容,和对表的基本操作,代码为sql server,由于本人也是在学习阶段,难免会有错误,希望大家可以指正。
😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍

SQL语句的种类

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

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

DDL(Data Definition Language,数据定义语言)
用来查询或者变更表中的记录。DML 包含以下几种指令。

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

DCL(Data Control Language,数据控制语言)
用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对 RDBMS 的用户是否有权限操作数据库中的对象(数据库表等)进行设定。DCL 包含以下几种指令。

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

实际使用的 SQL 语句当中有 90% 属于 DML。

SQL语句大小写与命名

SQL语句的关键字、数据库名、表名不区分大小写,但是插入到表中的数据是区分大小写的。例如,在操作过程中,数据Computer、COMPUTER 或 computer,三者是不一样的。

一般命名习惯:

  • 关键字大写
  • 表名的首字母大写
  • 其余(列名等)小写

表的创建

表的创建

在创建表前需要先创建数据库。

CREATE DATABASE <数据库名称>;
CREATE DATABASE shop;

然后创建表:

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

约束可以在定义列的时候进行设置(对列的约束),也可以在语句的末尾进行设置 (主键约束/副键约束)。
在数据库中创建表 1-2 中的商品表(Product 表)的 CREATE TABLE 语句,如代码清单 1-2 所示。

USE Shop
-- 如果不写上面这句,表将会创建在master数据库中,而不是shop中
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));

这里值得说明的是,如果在创建表时没有定义对列的约束,则是采用NULL(可以为空,不是一定为空),但现在还有采用DEFAULT这种默认约束的。

数据类型

  • INTEGER型:
    用来指定存储整数的列的数据类型(数字型),不能存储小数。
  • CHAR型:
    是用来指定存储字符串的列的数据类型(字符型)。可以像 CHAR(10) 或者 CHAR(200) 这样,在括号中指定该列可以存储的字符串的长度(最大长度)。字符串超出最大长度的部分是无法输入到该列中的。
    该字符串是定长字符串所谓定长字符串,就是当列中存储的字符串长度达不到最大长度的时候,使用半角空格进行补足。例如,我们向 CHAR(8) 类型的列中输入 'abc’的时候,会以 'abc '(abc 后面有 5 个半角空格)的形式保存起来。
  • VARCHAR型:
    该类型的列是以可变长字符串  的形式来保存字符串的。例如,我们向 VARCHAR(8) 类型的列中输入字符串 ‘abc’ 的时候,保存的就是字符串 ‘abc’。
  • DATE型:
    用来指定存储日期(年月日)的列的数据类型(日期型)。

约束的设置

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

  1. 列约束:
product_id CHAR(4) NOT NULL,
product_name VARCHAR(100) NOT NULL,
product_type VARCHAR(32) NOT NULL,
  1. 主键约束
PRIMARY KEY (product_id)

个人对主键的理解:通过主键约束可以找到需要的列(该列是唯一的有且只有一个)。

表的删除和更新

表的删除

DROP TABLE <表名>DROP TABLE Product;

表的更新

向表中添加列
ALTER TABLE <表名> ADD <列名>ALTER TABLE Product ADD product_name_pinyin VARCHAR(100),product_cy CHAR(10);
在表中删除列
ALTER TABLE <表名> DROP COLUMN <列名>ALTER TABLE Product DROP COLUMN product_name_pinyin,product_cy;
在表中插入数据(记录)
BEGIN TRANSACTION;
INSERT INTO Product VALUES ('0001', 'T恤衫', '衣服',
1000, 500, '2009-09-20');
INSERT INTO Product VALUES ('0002', '打孔器', '办公用品',
500, 320, '2009-09-11');
INSERT INTO Product VALUES ('0003', '运动T恤', '衣服',
4000, 2800, NULL);
INSERT INTO Product VALUES ('0004', '菜刀', '厨房用具',
3000, 2800, '2009-09-20');
INSERT INTO Product VALUES ('0005', '高压锅', '厨房用具',
6800, 5000, '2009-01-15');
INSERT INTO Product VALUES ('0006', '叉子', '厨房用具',
500, NULL, '2009-09-20');
INSERT INTO Product VALUES ('0007', '擦菜板', '厨房用具',
880, 790, '2008-04-28');
INSERT INTO Product VALUES ('0008', '圆珠笔', '办公用品',
100, NULL,'2009-11-11');
COMMIT;

使用插入行的指令语句 INSERT,就可以把表 1-2 中的数据都插入到表中了。开头的 BEGIN TRANSACTION 语句是开始插入行的指令语句,结尾的 COMMIT 语句是确定插入行的指令语句。

改变名称

sp_rename更改当前数据库中用户创建的对象(如表,列或用户定义数据类型)的名称

exec sp_rename 'Product', 'Poduct'; --重命名表
exec sp_rename 'Poduct.[product_id]','id','column';-- 改变字段名。

这里还是推荐手动重命名。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值