5、SQL数据定义

简介: 5、SQL数据定义

1. create database创建数据库语句

CREATE DATABASE 语句

CREATE DATABASE 用于创建数据库。

SQL CREATE DATABASE 语法

CREATE DATABASE database_name

SQL CREATE DATABASE 实例

现在我们希望创建一个名为 “my_db” 的数据库。

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

CREATE DATABASE my_db

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

2. create table创建表语句

CREATE TABLE 语句

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

SQL CREATE TABLE 语法

CREATE TABLE 表名称

(

列名称1 数据类型,

列名称2 数据类型,

列名称3 数据类型,

)

数据类型(data_type)规定了列可容纳何种数据类型。下面的表格包含了SQL中最常用的数据类型:

| 数据类型 | 描述 |

| — | — |

|

- - integer(size)

int(size)

smallint(size)

tinyint(size)

| 仅容纳整数。在括号内规定数字的最大位数。 |

|

- - decimal(size,d)

numeric(size,d)

| 容纳带有小数的数字。

“size” 规定数字的最大位数。“d” 规定小数点右侧的最大位数。 |

| char(size) | 容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。

在括号中规定字符串的长度。 |

| varchar(size) | 容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。

在括号中规定字符串的最大长度。 |

| date(yyyymmdd) | 容纳日期。 |

SQL CREATE TABLE 实例

本例演示如何创建名为 “Person” 的表。

该表包含 5 个列,列名分别是:“Id_P”、“LastName”、“FirstName”、“Address” 以及 “City”:

CREATE TABLE Persons

(

Id_P int,

LastName varchar(255),

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

Id_P 列的数据类型是 int,包含整数。其余 4 列的数据类型是 varchar,最大长度为 255 个字符。

空的 “Persons” 表类似这样:

| Id_P | LastName | FirstName | Address | City |

| — | — | — | — | — |

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

SQL CREATE TABLE其他用法

基于已有数据表创建新表并复制所有数据

create table student1 as select * from student; (CTAS建表方式)

基于已有数据表创建新表并复制部分数据

create table student2 as select * from student where gender=‘女’;

基于已有数据库创建新表仅复制表结构不包括行数据

create table student3 as select * from student where 1=2;

create table student4 like student; (MYSQL专有语法)

3. 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

**注释:**某些数据库系统不允许这种在数据库表中删除列的方式 (DROP COLUMN column_name)。

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

ALTER TABLE table_name

ALTER COLUMN column_name datatype

原始的表 (用在例子中的):

Persons 表:

| Id | LastName | FirstName | Address | City |

| — | — | — | — | — |

| 1 | Adams | John | Oxford Street | London |

| 2 | Bush | George | Fifth Avenue | New York |

| 3 | Carter | Thomas | Changan Street | Beijing |

SQL ALTER TABLE 实例

现在,希望在表 “Persons” 中添加一个名为 “Birthday” 的新列。

我们使用下列 SQL 语句:

ALTER TABLE Persons

ADD Birthday date

请注意,新列 “Birthday” 的类型是 date,可以存放日期。数据类型规定列中可以存放的数据的类型。

新的 “Persons” 表类似这样:

| Id | LastName | FirstName | Address | City | Birthday |

| — | — | — | — | — | — |

| 1 | Adams | John | Oxford Street | London |   |

| 2 | Bush | George | Fifth Avenue | New York |   |

| 3 | Carter | Thomas | Changan Street | Beijing |   |

改变数据类型实例

现在希望改变 “Persons” 表中 “Birthday” 列的数据类型。

我们使用下列 SQL 语句:

ALTER TABLE Persons

ALTER COLUMN Birthday year

请注意,“Birthday” 列的数据类型是 year,可以存放 2 位或 4 位格式的年份。

DROP COLUMN 实例

接下来,我们删除 “Person” 表中的 “Birthday” 列:

ALTER TABLE Person

DROP COLUMN Birthday

Persons 表会成为这样:

| Id | LastName | FirstName | Address | City |

| — | — | — | — | — |

| 1 | Adams | John | Oxford Street | London |

| 2 | Bush | George | Fifth Avenue | New York |

| 3 | Carter | Thomas | Changan Street | Beijing |

4. drop database删除数据库

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

DROP DATABASE 数据库名称

5. drop table删除表

DROP TABLE 语句用于删除表(表的结构、属性以及索引也会被删除):

DROP TABLE 表名称

6. drop index删除索引

可以使用 DROP INDEX 命令删除表格中的索引。

用于 Microsoft SQLJet (以及 Microsoft Access) 的语法:

DROP INDEX index_name ON table_name

用于 MS SQL Server 的语法:

DROP INDEX table_name.index_name

用于 IBM DB2 和 Oracle 语法:

DROP INDEX index_name

用于 MySQL 的语法:

ALTER TABLE table_name DROP INDEX index_name

7. truncate table清空表数据

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

请使用 TRUNCATE TABLE 命令(仅仅删除表格中的数据):

TRUNCATE TABLE 表名称

8. rename table修改表名

不同语句修改表明参考以下相应命令:

1. MYSQL

rename table table1 to table2;

2. SQL SERVER

EXEC sp_rename ‘table1’, ‘table2’;

3. Oracle

alter table table1 rename to table2

4. db2

rename table table1 to table2;

相关文章
|
4月前
|
SQL Java 关系型数据库
SQL的作用
SQL的作用。
23 2
|
4月前
|
SQL 数据库
SQL 中的 NULL 值:定义、测试和处理空数据,以及 SQL UPDATE 语句的使用
NULL 值是指字段没有值的情况。如果表中的字段是可选的,那么可以插入新记录或更新记录而不向该字段添加值。此时,该字段将保存为 NULL 值。需要注意的是,NULL 值与零值或包含空格的字段不同。具有 NULL 值的字段是在记录创建期间留空的字段。
88 0
|
30天前
|
SQL 数据处理 数据库
SQL中的函数有哪些类型
【8月更文挑战第20天】SQL中的函数有哪些类型
17 1
|
18天前
|
SQL 存储 数据库
SQL中的不同关系类型:深入解析
【8月更文挑战第31天】
33 0
|
2月前
|
SQL 关系型数据库 数据处理
SQL结构
【7月更文挑战第28天】SQL结构
18 4
|
4月前
|
SQL 索引
SQL的数据定义
SQL的数据定义
34 0
|
4月前
|
SQL Serverless 数据库
SQL语句的类型
SQL语句的类型
|
4月前
|
SQL 数据库
SQL-修改数据
SQL-修改数据
|
10月前
|
SQL 存储 数据库
SQL概述及数据定义
SQL概述及数据定义
96 0
|
SQL Oracle Java
使用 SQL NOWAIT 的最佳方式
由于所有的主要数据库都支持此功能,Hibernate提供了一个NOWAIT选项,可以在不同数据库上调用这个功能,而且不影响代码的数据库可移植性。
300 0