sql是什么?以及sql基础语句(二)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: sql是什么?以及sql基础语句

正文


CREATE DATABASE - 创建新数据库


SQL CREATE DATABASE 语句


SQL CREATE DATABASE 语句


CREATE DATABASE 语句用于创建数据库。


SQL CREATE DATABASE 语法


CREATE DATABASE dbname;

SQL CREATE DATABASE 实例


下面的 SQL 语句创建一个名为 "my_db" 的数据库:

CREATE DATABASE my_db;

数据库表可以通过 CREATE TABLE 语句来添加。


ALTER DATABASE - 修改数据库


在 MySQL 数据库中只能对数据库使用的字符集和校对规则进行修改,数据库的这些特性都储存在 db.opt 文件中。下面我们来介绍一下修改数据库的基本操作。


在 MySQL 中,可以使用 ALTER DATABASE 来修改已经被创建或者存在的数据库的相关参数。修改数据库的语法格式为:


  1. ALTER DATABASE [数据库名] {
  2. [ DEFAULT ] CHARACTER SET <字符集名> |
  3. [ DEFAULT ] COLLATE <校对规则名>}


语法说明如下:

  • ALTER DATABASE 用于更改数据库的全局特性。
  • 使用 ALTER DATABASE 需要获得数据库 ALTER 权限。
  • 数据库名称可以忽略,此时语句对应于默认数据库。
  • CHARACTER SET 子句用于更改默认的数据库字符集。


例 1


查看 test_db 数据库的定义声明的执行结果如下所示:


mysql> SHOW CREATE DATABASE test_db;

+----------+--------------------------------------------------------+

| Database | Create Database                                        |

+----------+--------------------------------------------------------+

| test_db  | CREATE DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET utf8 */|

+----------+--------------------------------------------------------+

1 row in set (0.05 sec)


使用命令行工具将数据库 test_db 的指定字符集修改为 gb2312,默认校对规则修改为 gb2312_unicode_ci,输入 SQL 语句与执行结果如下所示:


mysql> ALTER DATABASE test_db

   -> DEFAULT CHARACTER SET gb2312

   -> DEFAULT COLLATE gb2312_chinese_ci;

mysql> SHOW CREATE DATABASE test_db;

+----------+--------------------------------------------------------+

| Database | ALTER Database                                        |

+----------+--------------------------------------------------------+

| test_db  | ALTER DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET gb2312 */|

+----------+--------------------------------------------------------+

1 row in set (0.00 sec)


CREATE TABLE - 创建新表


SQL CREATE TABLE 语句


CREATE TABLE 语句用于创建数据库中的表。

表由行和列组成,每个表都必须有个表名。


SQL CREATE TABLE 语法


CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);

column_name 参数规定表中列的名称。


data_type 参数规定列的数据类型(例如 varchar、integer、decimal、date 等等)。


size 参数规定表中列的最大长度。


提示:如需了解 MS Access、MySQL 和 SQL Server 中可用的数据类型,请访问我们完整的 数据类型参考手册


SQL CREATE TABLE 实例


现在我们想要创建一个名为 "Persons" 的表,包含五列:PersonID、LastName、FirstName、Address 和 City。

我们使用下面的 CREATE TABLE 语句:


实例


CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);

PersonID 列的数据类型是 int,包含整数。

LastName、FirstName、Address 和 City 列的数据类型是 varchar,包含字符,且这些字段的最大长度为 255 个字符。

空的 "Persons" 表如下所示:

PersonID LastName FirstName Address City


提示:可使用 INSERT INTO 语句向空表写入数据。


ALTER TABLE - 变更(改变)数据库表


SQL ALTER TABLE 语句


ALTER TABLE 语句


ALTER TABLE 语句用于在已有的表中添加、删除或修改列。


SQL ALTER TABLE 语法


如需在表中添加列,请使用下面的语法:


ALTER TABLE table_name

ADD column_name datatype


如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):


ALTER TABLE table_name

DROP COLUMN column_name


要改变表中列的数据类型,请使用下面的语法:


SQL Server / MS Access:


ALTER TABLE table_name

ALTER COLUMN column_name datatype


My SQL / Oracle:


ALTER TABLE table_name

MODIFY COLUMN column_name datatype


Oracle 10G 之后版本:


ALTER TABLE table_name

MODIFY column_name datatype;


SQL ALTER TABLE 实例


请看 "Persons" 表:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

现在,我们想在 "Persons" 表中添加一个名为 "DateOfBirth" 的列。


我们使用下面的 SQL 语句:


ALTER TABLE Persons

ADD DateOfBirth date


请注意,新列 "DateOfBirth" 的类型是 date,可以存放日期。数据类型规定列中可以存放的数据的类型。如需了解 MS Access、MySQL 和 SQL Server 中可用的数据类型,请访问我们完整的 数据类型参考手册


现在,"Persons" 表将如下所示:

P_Id LastName FirstName Address City DateOfBirth
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes


3 Pettersen Kari Storgt 20 Stavanger



改变数据类型实例


现在,我们想要改变 "Persons" 表中 "DateOfBirth" 列的数据类型。


我们使用下面的 SQL 语句:


ALTER TABLE Persons

ALTER COLUMN DateOfBirth year


请注意,现在 "DateOfBirth" 列的类型是 year,可以存放 2 位或 4 位格式的年份。


DROP COLUMN 实例


接下来,我们想要删除 "Person" 表中的 "DateOfBirth" 列。

我们使用下面的 SQL 语句:

ALTER TABLE Persons

DROP COLUMN DateOfBirth


现在,"Persons" 表将如下所示:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger


DROP  


SQL 撤销索引、撤销表以及撤销数据库


通过使用 DROP 语句,可以轻松地删除索引、表和数据库。


DROP INDEX 语句


DROP INDEX 语句用于删除表中的索引。


用于 MS Access 的 DROP INDEX 语法:


DROP INDEX index_name ON table_name


用于 MS SQL Server 的 DROP INDEX 语法:


DROP INDEX table_name.index_name


用于 DB2/Oracle 的 DROP INDEX 语法:


DROP INDEX index_name


用于 MySQL 的 DROP INDEX 语法:


ALTER TABLE table_name DROP INDEX index_name


DROP TABLE 语句


DROP TABLE 语句用于删除表。

DROP TABLE table_name

DROP DATABASE 语句


DROP DATABASE 语句用于删除数据库。

DROP DATABASE database_name

TRUNCATE TABLE 语句


如果我们仅仅需要删除表内的数据,但并不删除表本身,那么我们该如何做呢?

请使用 TRUNCATE TABLE 语句:

TRUNCATE TABLE table_name


CREATE INDEX - 创建索引(搜索键)


SQL CREATE INDEX 语句


CREATE INDEX 语句用于在表中创建索引。

在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。


索引


您可以在表中创建索引,以便更加快速高效地查询数据。

用户无法看到索引,它们只能被用来加速搜索/查询。

注释:更新一个包含索引的表需要比更新一个没有索引的表花费更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。


SQL CREATE INDEX 语法


在表上创建一个简单的索引。允许使用重复的值:

CREATE INDEX index_name
ON table_name (column_name)


SQL CREATE UNIQUE INDEX 语法


在表上创建一个唯一的索引。不允许使用重复的值:唯一的索引意味着两个行不能拥有相同的索引值。Creates a unique index on a table. Duplicate values are not allowed:

CREATE UNIQUE INDEX index_name
ON table_name (column_name)

注释:用于创建索引的语法在不同的数据库中不一样。因此,检查您的数据库中创建索引的语法。


CREATE INDEX 实例


下面的 SQL 语句在 "Persons" 表的 "LastName" 列上创建一个名为 "PIndex" 的索引:

CREATE INDEX PIndex
ON Persons (LastName)

如果您希望索引不止一个列,您可以在括号中列出这些列的名称,用逗号隔开:

CREATE INDEX PIndex
ON Persons (LastName, FirstName)

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
SQL 存储 缓存
SQL语句简介
MySQL 基础架构分析 下图是 MySQL 的一个简要架构图,从下图你可以很清晰的看到用户的 SQL 语句在 MySQL 内部是如何执行的。 先简单介绍一下下图涉及的一些组件的基本作用帮助大家理解这幅图,在后面会详细介绍到这些组件的作用。 连接器: 身份认证和权限相关(登录 MySQL 的时候)。 查询缓存: 执行查询语句的时候,会先查询缓存(MySQL 8.0 版本后移除,因为这个功能不太实用)。 分析器: 没有命中缓存的话,SQL 语句就会经过分析器,分析器说白了就是要先看你的 SQL 语句要干嘛,再检查你的 SQL 语句语法是否正确。 优化器: 按照 MySQL 认为最优的方案去执
47 0
|
SQL 存储 关系型数据库
SQL常用语句 笔记2
SQL常用语句 笔记2
65 0
|
SQL 关系型数据库 MySQL
SQL常用语句 笔记1
SQL常用语句 笔记
78 0
|
SQL
SQL语句学习系列(1)
SQL语句学习系列(1)
46 0
|
SQL 存储 Oracle
sql是什么?以及sql基础语句(一)
sql是什么?以及sql基础语句
150 0
|
SQL 关系型数据库 MySQL
【SQL】一文带你掌握SQL基础语法
英文:Structured Query Language,简称 SQL 结构化查询语言,一门操作关系型数据库的编程语言 定义操作所有关系型数据库的统一标准 对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”
210 0
|
SQL 数据库 索引
SQL基础知识V2——SQL语句快速参考
以下是一些可以当工具书使用的参考语句,都是固定写法,需要的时候可以拿出来参考一下,一些不懂的可以暂时先跳过,紫色代码均是SQL语句的关键字~
|
SQL 关系型数据库 MySQL
SQL 手册-实用 SQL 语句-多语句
本文将介绍PolarDB-X多语句的相关信息。
149 0