SQL基础——SQL概要

简介: SQL基础——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;

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

目录
相关文章
|
6月前
|
SQL
leetcode-SQL-1587. 银行账户概要 II
leetcode-SQL-1587. 银行账户概要 II
47 0
|
SQL 存储 关系型数据库
Mysql碎片整理:SQL语句的分类及简略概要
SQL语句的分类及简略概要。
97 0
|
2月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
4月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
115 13
|
4月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
4月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
62 6
|
4月前
|
存储 SQL C++
对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型
【7月更文挑战7天】SQL Server 中的 VARCHAR(max) vs VARCHAR(n): - VARCHAR(n) 存储最多 n 个字符(1-8000),适合短文本。 - VARCHAR(max) 可存储约 21 亿个字符,适合大量文本。 - VARCHAR(n) 在处理小数据时性能更好,空间固定。 - VARCHAR(max) 对于大文本更合适,但可能影响性能。 - 选择取决于数据长度预期和业务需求。
390 1
|
3月前
|
SQL 安全 Java
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
501 0
|
4月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
319 3
|
4月前
|
SQL 存储 安全
数据库数据恢复—SQL Server数据库出现逻辑错误的数据恢复案例
SQL Server数据库数据恢复环境: 某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。 SQL Server数据库故障: 存放SQL Server数据库的D盘分区容量不足,管理员在E盘中生成了一个.ndf的文件并且将数据库路径指向E盘继续使用。数据库继续运行一段时间后出现故障并报错,连接失效,SqlServer数据库无法附加查询。管理员多次尝试恢复数据库数据但是没有成功。
下一篇
无影云桌面