数据定义语言

合集下载

数据操作跟控制语言详解

数据操作跟控制语言详解

下面我们看一个例子.我们有一个回滚段表空间大小是2G,在高峰时期需要10个回滚段以满足用户的需要,这些高峰在线用户只有小的事务。一周我们连续运行了4个大的事务,这些事务需要删除和加载数据,每一个撤销需要1G,回滚段的大小如下:
rb_large(initial 100M minextenta 2)
列目录是可选的,缺省的列的目录是所有的列名,包括comlumn_id,comlumn_id可以在数据字典视图ALL_TAB_COLUMNS,USER_TAB_COLUMNS,或者DBA_TAB_COLUMNS中找到。
插入行的数据的数量和数据类型必须和列的数量和数据类型相匹配。不符合列定义的数据类型将对插入值实行隐式数据转换。NULL字符串将一个NULL值插入适当的列中。关键字NULL常常用于表示将某列定义为NULL值。
VALUES (SYSDATE,'Transfer to brokerage',-5000);
UPDATE brokerage
SET cash_balance=cash_balance+5000
WHERE account='Kiesha';
INSERT INTO brokerage_log(action_date,action,amount)

BEGIN
INSERT INTO ATM_LOG(who,when,what,where)
VALUES ('Kiesha',SYSDATE,'Withdrawal of $100','ATM54')
SAVEPOINT ATM_LOGGED;
UPDATE checking

DDL数据定义语言

DDL数据定义语言

DDL数据定义语⾔DDL(Data Definition Language):数据定义语⾔,⽤于库和表的创建、修改、删除。

主要包括CREATE、DROP、ALTER语句;1、对数据库的操作-- 创建数据库create database [if not exists] 数据库名 [character set 字符集名];-- 删除数据库drop database [if exists] 数据库名;-- 修改数据库的字符集alter database 数据库名 character set gbk;2、常⽤的数据类型数值tinyint,⾮常⼩的数据,1个字节。

(bit)smallint,较⼩的数据,2个字节。

(short)mediumint,中等⼤⼩的数据,3个字节。

int,标准的整数,4个字节。

bigint,较⼤的整数,8个字节。

(long)float,单精度浮点数,4个字节。

double,双精度浮点数,8个字节。

decimal,字符串形式的浮点数(⽤于⾦融计算)。

字符串char,固定长字符串,⽐较耗费空间,长度⼤⼩:0~255。

varchar,可变字符串,长度⼤⼩:0~65535。

(String)tinytext,微型⽂本,2^8-1。

text,⽂本串,2^16-1。

(保存⼤⽂本)时间⽇期date,⽇期,YYYY-MM-DD。

time,时间,HH:mm:ss。

datetime,最常⽤的时间格式,YYYY-MM-DD HH:mm:ss。

timestamp,时间戳,1970.1.1到现在的毫秒数。

year,年份。

3、对表的操作表(table)是数据库的基本组成单元,所以数据都以表的形式组织,⽬的是可读性强。

表分为⾏和列,⾏:数据/记录(data),列:字段(column)字段属性:字段名,数据类型,相关的约束-- 创建数据表create table [if not exists] `表名`(`字段名` 列类型 [属性] [索引] [注释], -- 使⽤``来区分mysql⾃带的关键字...`字段名` 列类型 [属性] [索引] [注释])[表类型] [字符集设置];-- 删除数据表drop table [if exists] 表名;-- 添加字段alter table `表名` add(`字段名1` 字段类型1,...,`字段名n`,字段类型n);-- 修改字段类型alter table `表名` modify `字段名` 字段的新类型;-- 同时修改字段名和字段类型alter table `表名` change `字段名` `新字段名` 新字段类型;-- 删除字段alter table `表名` drop 字段名;-- 修改表名alter table `表名` rename to `新表名`;【⽰例 1】创建student表CREATE TABLE IF NOT EXISTS `student` (`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',`sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',`birthday` DATETIME DEFAULT NULL COMMENT '出⽣⽇期',`address` VARCHAR(100) DEFAULT NULL COMMENT '家庭地址',`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',PRIMARY KEY(`id`) -- 设置主键)ENGINE=INNODB DEFAULT CHARSET=utf8; -- 设置引擎和字符编码4、字段属性Unsigned:⽆符号的,声明的数据不允许为负数。

【MySQL】DDL数据定义语言的基本用法create、drop和alter(增删改)

【MySQL】DDL数据定义语言的基本用法create、drop和alter(增删改)

【MySQL】DDL数据定义语⾔的基本⽤法create、drop和alter(增删改)DDL 的基础语法⽂章⽬录简单复习⼀波 SQL必知必会DDL 的英⽂全称是 Data Definition Language(数据定义语⾔),它定义了数据库的结构和数据表的结构。

在 DDL 中,我们常⽤的功能是增删改,分别对应的命令是 CREATE、DROP 和 ALTER。

对数据库进⾏定义建数据库的基本SQL语法格式为:CREATE DATABASE database_name;//创建⼀个名为 database_name 的数据库“database_name”为要创建的数据库的名称,该名称不能与已经存在的数据库重名。

mysql> CREATE DATABASE database_name;Query OK, 1 row affected (0.00 sec)mysql> CREATE DATABASE database_name;ERROR 1007 (HY000): Can't create database 'database_name'; database exists删除数据库是将已经存在的数据库从磁盘空间上清除,清除之后,数据库中的所有数据也将⼀同被删除。

删除数据库的基本SQL语法格式为:DROP DATABASE database_name;//删除⼀个名为 database_name 的数据库“database_name”为要删除的数据库的名称。

若指定的数据库不存在,则删除出错。

mysql> DROP DATABASE database_name;Query OK, 0 rows affected (0.00 sec)mysql> DROP DATABASE database_name;ERROR 1008 (HY000): Can't drop database 'database_name'; database doesn't exist在这⾥插⼊图⽚描述mysql> CREATE DATABASE database_name;Query OK, 1 row affected (0.00 sec)mysql> CREATE DATABASE database_name;ERROR 1007 (HY000): Can't create database 'database_name'; database existsmysql> SHOW CREATE DATABASE database_name;+---------------+------------------------------------------------------------------------+| Database | Create Database |+---------------+------------------------------------------------------------------------+| database_name | CREATE DATABASE `database_name` /*!40100 DEFAULT CHARACTER SET utf8 */ |+---------------+------------------------------------------------------------------------+1 row in set (0.00 sec)mysql> DROP DATABASE database_name;Query OK, 0 rows affected (0.00 sec)mysql> SHOW CREATE DATABASE database_name;ERROR 1049 (42000): Unknown database 'database_name'CREATE DATABASE mysqlcrashcourse;// 创建⼀个名为 mysqlcrashcourse 的数据库DROP DATABASE mysqlcrashcourse;// 删除⼀个名为 mysqlcrashcourse 的数据库对数据表进⾏定义创建表结构的语法是这样的:CREATE TABLE table_name;创建⼀个名为 table_name的表⼀般要写⾄少写⼀⾏ A table must have at least 1 column,后⾯介绍如何创建表结构创建⼀个名为 table_name的表mysql> CREATE DATABASE database_name;Query OK, 1 row affected (0.00 sec)mysql> USE database_name;Database changedmysql> CREATE TABLE table_name;ERROR 1113 (42000): A table must have at least 1 columnmysql> CREATE TABLE table_name( name VARCHAR(50) NOT NULL);Query OK, 0 rows affected (0.01 sec)mysql> show tables;+-------------------------+| Tables_in_database_name |+-------------------------+| table_name |+-------------------------+1 row in set (0.00 sec)mysql> CREATE TABLE table_name( name VARCHAR(50) NOT NULL);ERROR 1050 (42S01): Table 'table_name' already existsmysql>删除表的基本SQL语法格式为:DROP TABLE table_name;DROP TABLE [IF EXISTS] table_name;DROP TABLE table_name;删除⼀个名为 table_name的表DROP TABLE IF EXISTS table_name;执⾏了这条语句如果存在table_name表就删除,不存在不会报错也是执⾏。

数据库的DDL、DML、DQL、DCL名词详解

数据库的DDL、DML、DQL、DCL名词详解

数据库的DDL、DML、DQL、DCL名词详解展开全文简言之:1,DDL(DataDefinitionLanguage):数据定义语言,用来定义数据库对象:库、表、列等;2,DML (DataManipulationLanguage):数据操作语言,用来定义数据库记录(数据);3,DQL(DataQueryLanguage):数据查询语言,用来查询记录(数据);4,DCL(DataControlLanguage):数据控制语言,用来定义访问权限和安全级别。

举例说明1,DDL用来定义数据库对象:库、表、列等;适用范围:对数据库中的某些对象(例如,database,table)进行管理,如Create,Alter和Drop.注意:在生产环境中,DDL类操作需要慎用,因为不能做roolback操作,一旦执行无法回退。

2,DML对数据库中的数据进行一些简单操作,,如insert,delete,update,select(插入、删除、修改、检索)等都是DML.对select来说,它有两种划分方法,可以放在DML,也可以单独放在DQL3,DQL用来查询记录(数据);基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT <字段名表>FROM <表或视图名>WHERE <查询条件> 4,DCL用来定义访问权限和安全级别。

数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。

如:1.GRANT:授权。

2.ROLLBACK [WORK]TO[SAVEPOINT]:回退到某一点。

回滚—ROLLBACK回滚命令使数据库状态回到上次最后提交的状态。

其格式为:SQL>ROLLBACK;MIT [WORK]:提交。

在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成。

在事务提交前,只有操作数据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到。

数据定义语言

数据定义语言

•4
loc
VARCHAR2(13));
•表已创建。
验证是否创建成功(查看表结构)
••SQL> DESCRIBE dept1
• Name
Null? Type
• --------------------------- ----NUMBER(2)

4.1.5 Oracle的数据类型
数 日值期数时据间类数型 据类型存储日期和时间值,包 括– 可年以、存月储、整日数,、小浮点时数、和分实钟数、秒
主– 最要高的精日度期为时3间8 位类型有: 数– D值A数TE据- 存类储型日的期声和明时语间法部分:,精确到整个的
– N秒UMBER [( p[, s])] –– PT表IM示ES精TA度M,PS-表存示储小日数期点、的时位间数和时区信息,
•序列 •索引 •同义词
描述 存储数据的基本单元,由行和列组成
来自一个或多个表的数据的子集
产生主关键字值 提高某些查询的性能的数据结构 赋予对象另外的名字
4.1.2 命名规则和约定(表和列名)
必须以字母开头 长度为1–30 个字符 只能包含 A–Z, a–z, 0–9, _, $和 # 对于同一个用户不能使用和其他对象相同的名
4.1.5
•类型 •VARCHAR2(size) •CHAR(size) •NUMBER(p,s) •DATE •LONG
数据类型 P50
描述 变长字符串(字符族):1~4000个字符 固定长度字符串(字符族) ):1~2000个字符 定点小数值 , p为精度, s为标度(数字族) 日期和时间值(日期族) 可存放高达2GB的变长字符数据(字符族)
•CLOB 字符大对象
可存放高达4GB的变长单字节字符数据

汇编语法大全

汇编语法大全

汇编语法大全汇编语言是一种底层的计算机语言,可以用来编写应用程序、驱动程序和嵌入式系统等。

其语法简洁、效率高,但也较为复杂。

下面是汇编语法大全,希望对大家能有所帮助。

1. 注释语句注释语句是程序员为了方便自己和他人阅读代码而添加的语句。

汇编语言中,使用分号(;)表示注释语句,写在行尾。

示例:mov ax, bx ;将bx寄存器的值赋给ax寄存器2. 标号语句标号语句用来表示程序中的一个位置,在汇编程序中可以用它来实现跳转、条件执行等功能。

标号语句必须在第一行,以字母开头,由数字、字母和下划线组成,长度不超过32个字符。

3. 数据定义语句数据定义语句用来为变量、常量分配存储空间,可以为它们指定初值。

汇编语言中,数据定义语句有三种形式:db、dw、dd。

db:定义一个字节(8位)长度的数据,可以用来存储字符、布尔型变量等。

data1 db 'A' ;定义一个字符型变量,初值为'A'4. 操作数表示操作数即指令中被操作的对象,可以是通用寄存器、内存单元、立即数等。

汇编指令中,操作数的表示方法主要有以下几种:寄存器表示法:使用寄存器的名称表示操作数,如AL、AX、DX等。

立即数表示法:表示一个常量数值,用于参与运算或存储到内存中,如100、0AH等。

内存变量表示法:使用内存变量的地址表示操作数,如[2000H]、[BX]等。

mov al, 02h ;将立即数02h赋给AL寄存器mov byte ptr ds:[bx], al ;将AL寄存器的值存储到2000h地址所指向的内存单元中5. 寻址方式汇编语言中,寻址方式用于表示操作数在内存中的地址。

汇编语言提供了多种寻址方式,例如寄存器间接寻址、基址变址寻址、相对寻址等。

寄存器间接寻址寄存器间接寻址是指操作数的地址存储在一个寄存器中。

例如,[BX]表示将BX寄存器中的值作为地址,访问该地址存储的数据。

基址变址寻址相对寻址相对寻址是指让程序计算出偏移量以便于寻址,这种寻址方式用于程序中的跳转指令。

数据定义语言

数据定义语言
表 Tables
Oracle数据库中的表是基本的数据库存储结构。在定义 表时为表建立多个字段,数据以行的记录的形式存储在 表中。
Oracle表:数据定义语言(DDL)
命名规则和约定
• 数据表是一个对象,它能够存储Oracle数据库中的数据。 创建数据表时,必须指定数据表的名称、每一列的名称、 每一列的数据类型以及每一列的大小。
– PRIMARY KEY (主码,pk)约束-实体完整性约束 – FOREIGN KEY (外部码,fk)约束—引用完整性约束 – UNIQUE (唯一码,uk)约束 – NOT NULL (非空,ck)约束 – CHECK 约束 (ck或cc)
Oracle表:数据定义语言(DDL)
我们既可以在创建表时创建约束,也可以在创建完 成之后再添加约束。约束的定义有两个级别:
Oracle表:数据定义语言(DDL)
模式
Oracle通过模式来组织和维护表、视图、索引 等数据库对象。
• 模式:是一系列逻辑数据结构或对象的集合。一 个模式只能够被一个数据库用户所拥有,并且模 式的名称与这个用户的名称相同。
• Oracle数据库中的每一个用户都拥有一个唯一的 模式,他所创建的所有模式对象都保存在自己的 模式中。
Oracle表:数据定义语言(DDL)
• 显示数据表信息
1.查看用户的表名: SELECT TABLE_NAME FROM USER_TABLES;
功能:显示当前用户创建的所有表名以及属于当前用户的所有 其他表。若将改为,将列出当前用户拥有的所有表,以及其 他用户授予当前用户权限的那些表。
2.查看表结构:DESCRIBE 表名;
•删除Oracle数据表(永久性删除)
DROP TABLE <表名> [CASCADE CONSTRAINTS];

C语言程序设计-数据的定义和运算

C语言程序设计-数据的定义和运算
数据的定义和运算
内容摘要
基本数据类型 常量和变量 标识符命名 常用运算符和表达式 运算符的优先级与结合性
学习目标
理解常量和变量的含义 熟悉基本数据类型——int、char、float 和
double 使用算术运算符 理解类型转换
任务1常量和变量
任务1:任务引导
在程序设计中,所有的程序都会涉及到待处理的数据。 不同类型的数据既可以以常量的形式出现,也可以以 变量的形式出现。C语言既提供了丰富的数据类型对 不同的数据加以描述,又提供了丰富的运算符和表达 式对数据进行加工。
任务2:知识点介绍
2、浮点型数据
带有小数点的数称之为浮点型数据,也叫实型数 据。
任务2:知识点介绍
3、字符型数据 (1)字符常量
(2)字符变量 (3)字符数据在内存中的存储形式及其使用方法 将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放
到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。 这样使字符型数据和整型数据之间可以通用。一个字符数据既可以以
几乎每一个程序都需要进行运算,对数据进行加工处理。 完成对程序中不同类型的数据定义之后,可以通过运算符 将数据连接组成表达式,实现对数据的计算。C语言运算 符非常丰富,把除了控制语句和输入输出以外的几乎所有 的基本操作都作为运算符处理。
任务3:知识点介绍
1、C语言运算符简介
(1)用来表示各种运算的符号称为“运算符”。
任务1:指针操作符
3、变量(变量的定义、变量的赋值、)
变量是指其值可以改变的量。一个变量应该有一个名字 (标识符)存储单元,在该存储单元中存放变量的值。变 量名就是这个量的代号。如每个人都有名字一样,而变量 值是这个量的取值。所有的C语言变量必须先定义,后使 用。

MySQL数据定义语言(DDL)

MySQL数据定义语言(DDL)

MySQL数据定义语⾔(DDL)参考资料:SQL 包含以下4部分:1数据定义语⾔(DDL):DROP、CREATE、ALTER 等语句。

2数据操作语⾔(DML):INSERT(插⼊)、UPDATE(修改)、DELETE(删除)语句。

3数据查询语⾔(DQL):SELECT 语句。

4数据控制语⾔(DCL): GRANT、REVOKE、COMMIT、ROLLBACK 等语句。

MySQL之DDL(Data Definition Language): 数据定义语⾔:CREATE,ALTER,DROP等DDL:操作数据库,表(CRUD)1、操作数据库(CRUD)(1)C(Create):创建数据库CREATE DATABASE[IF NOT EXISTS]数据库名[[DEFAULT]CHARACTER SET字符集名][[DEFAULT] COLLATE 校对规则名];[]中的内容是可选的。

语法说明如下:数据库名:创建数据库的名称。

MySQL 的数据存储区将以⽬录⽅式表⽰ MySQL 数据库,因此数据库名称必须符合操作系统的⽂件夹命名规则,不能以数字开头,尽量要有实际意义。

注意在 MySQL 中不区分⼤⼩写。

IF NOT EXISTS:在创建数据库之前进⾏判断,只有该数据库⽬前尚不存在时才能执⾏操作。

此选项可以⽤来避免数据库已经存在⽽重复创建的错误。

[DEFAULT]CHARACTER SET:指定数据库的字符集。

指定字符集的⽬的是为了避免在数据库中存储的数据出现乱码的情况。

如果在创建数据库时不指定字符集,那么就使⽤系统的默认字符集。

[DEFAULT] COLLATE:指定字符集的默认校对规则。

eg.mysql>CREATE DATABASE IF NOT EXISTS test->DEFAULT CHARACTER SET utf8->DEFAULT COLLATE utf8_general_ci;Query OK, 1 row affected, 1 warning (0.01 sec)(2)R(Retrieve):查询SHOW DATABASES [LIKE '数据库名'];语法说明如下:LIKE从句是可选项,⽤于匹配指定的数据库名称。

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

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

数据控制语言(DCL,Data ControlLanguage)2SQL Server 2000中的SQL语言是Transact-SQL语言。

Transact-SQL语言主要组成部分有一下几种:1.数据定义语言(DDL,Data Definition Language)2.数据操纵语言(DML,Data Manipularion Language)3.数据控制语言(DCL,Data Control Language)4.系统存储过程(System Stored Procedure)5.一些附加的语言元素数据控制语言(DCL)数据控制语言(DCL)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT、DENY、REVOKE等语句,在默认状态下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成员才有权利执行数据控制语言。

GRANT语句GRANT语句是授权语句,它可以把语句权限或者对象权限授予给其他用户和角色。

授予语句权限的语法形式为:GRANT {ALL | statement[,...n]} TO security_account [ ,...n ]授予对象权限的语法形式为:GRANT { ALL [ PRIVILEGES ] | permission [ ,...n ] }{[ ( column [ ,...n ] ) ] ON { table | view }| ON { table | view } [ ( column [ ,...n ] ) ]| ON { stored_procedure | extended_procedure }| ON{ user_defined_function } } TO security_account [ ,...n ] [ WITH GRANT OPTION ] [ AS { group | role } ]2、DENY语句DENY语句用于拒绝给当前数据库内的用户或者角色授予权限,并防止用户或角色通过其组或角色成员继承权限。

07_SQL-数据定义及操纵-25

07_SQL-数据定义及操纵-25

INTO子句 指定要插入数据的表名及属性列,属性列的顺序可与表定义中 的顺序不一致。 若未指定属性列:表示要插入的是一条完整的元组,且属性 若未指定属性列 列属性与表定义中的顺序一致。否则,若指定部分属性列 若指定部分属性列: 若指定部分属性列 插入的元组在其余属性列上取空值 VALUES子句 提供的值必须与INTO子句匹配
SQL数据定义语言
例:建立一个“学生选课”表SC,它由学号 Sno、课程号Cno,修课成绩Grade组成,其 中(Sno, Cno)为主码。
CREATE TABLE SC( Sno CHAR(7) , Cno CHAR(4) , Grade int, Primary key (Sno, Cno), Foreign key (Sno) References student(Sno), Foreign key (Cno) References Course(Cno));
Ssm
SQL数据定义语言
例:创建一个学生表 建立一个“学生”表Student,它由学号Sno、姓名 Sname、性别Ssex、年龄Sage、所在系Sdept五个 属性组成。其中学号不能为空,值是唯一的,并且姓 名取值也唯一。
CREATE TABLE Student( Sno CHAR(9) NOT NULL UNIQUE, Sname CHAR(20) UNIQUE, Ssex CHAR(2), Sage NUMERIC(2,0), Sdept CHAR(20) );
ALTER TABLE student DROP unique(sname);
Ssm
数据操纵语言
插入数据 两种插入数据方式
¤ 插入单个元组 ¤ 插入子查询结果(参见子查询内容)
Ssm

数据定义语句

数据定义语句

数据定义语句
数据定义语句,又称DDL (Data Definition Language),是一种用来定义数据库对象的语言,包括创建表、修改表结构、删除表等操作。

DDL 与 DML (Data Manipulation Language) 相对应,DML 用于对数据库中的数据进行操作,例如添加、修改和删除数据。

在数据库设计和管理中,DDL 是非常重要的一部分。

通过使用DDL,我们可以创建和管理表、索引、约束、视图等数据库对象,而且可以确保数据的完整性、一致性和安全性。

以下是几个常见的 DDL 命令:
1. CREATE TABLE:用于创建新的表格,定义表格的字段名、数据类型、约束等信息。

2. ALTER TABLE:用于修改表格的结构,例如添加、修改、删除字段,修改数据类型等。

3. DROP TABLE:用于删除表格及其所有数据。

4. CREATE INDEX:用于创建索引,提高查询速度。

5. ALTER INDEX:用于修改索引,例如添加或删除索引字段。

6. DROP INDEX:用于删除索引。

除了以上命令,还有很多其他的 DDL 命令可供使用。

在使用这些命令时,需要注意一些事项,例如:在创建表格时,应该选择适当的数据类型,避免浪费存储空间;在修改表格结构时,应该先备份数据,以免数据丢失;在创建索引时,应该根据查询需求来选择适当的字段。

总之,DDL 是数据库设计和管理中不可或缺的一部分。

通过合理使用 DDL 命令,可以创建出高效、安全、易维护的数据库系统。

SQL四条最基本的数据操作语句:Insert,Select,Update和Delete详解

SQL四条最基本的数据操作语句:Insert,Select,Update和Delete详解

掌握SQL四条最基本的数据操作语句:Insert,Select,Update和Delete。

练掌握SQL是数据库用户的宝贵财富。

在本文中,我们将引导你掌握四条最基本的数据操作语句—SQL的核心功能—来依次介绍比较操作符、选择断言以及三值逻辑。

当你完成这些学习后,显然你已经开始算是精通SQL了。

在我们开始之前,先使用CREATE TABLE语句来创建一个表(如图1所示)。

DDL 语句对数据库对象如表、列和视进行定义。

它们并不对表中的行进行处理,这是因为DDL 语句并不处理数据库中实际的数据。

这些工作由另一类SQL语句—数据操作语言(DML)语句进行处理。

SQL中有四种基本的DML操作:INSERT,SELECT,UPDATE和DELETE。

由于这是大多数SQL用户经常用到的,我们有必要在此对它们进行一一说明。

在图1中我们给出了一个名为EMPLOYEES的表。

其中的每一行对应一个特定的雇员记录。

请熟悉这张表,我们在后面的例子中将要用到它。

INSERT语句用户可以用INSERT语句将一行记录插入到指定的一个表中。

例如,要将雇员John Smith的记录插入到本例的表中,可以使用如下语句:INSERT INTO EMPLOYEES V ALUES('Smith','John','1980-06-10','Los Angles',16,45000);通过这样的INSERT语句,系统将试着将这些值填入到相应的列中。

这些列按照我们创建表时定义的顺序排列。

在本例中,第一个值“Smith”将填到第一个列LAST_NAME中;第二个值“John”将填到第二列FIRST_NAME中……以此类推。

我们说过系统会“试着”将值填入,除了执行规则之外它还要进行类型检查。

如果类型不符(如将一个字符串填入到类型为数字的列中),系统将拒绝这一次操作并返回一个错误信息。

数据定义语句

数据定义语句

数据定义语句⼀、数据库的完整性约束 1. 主键:primary key 2. 外键:foreign key 3. ⾮空:not null 4. 检查:enum/set 5. 默认值:default 6. 唯⼀:unique 7. ⾃增长:auto_increment⼆、数据库的三⼤范式 1. 确保每列保持原⼦性 2. 确保每列的唯⼀性 3. 确保每列都和主键直接相关三、数据定义语⾔:DDL 作⽤:创建、删除、修改库表结构四、DDL #进⼊数据库 mysql -u root -p (密码) #查看数据库 show databases; #切换数据库 use 数据库名; #创建数据库 create database 数据库名; #删除数据库 drop database 数据库名; #修改数据库的字符集 alter database 数据库名 character set=UTF8; #创建外键(主键外键类型必须⼀样) alter table 表名 add foreign key (外键名) references 主表名(主键名); #删除外键 alter table 表名 drop foreign key (外键名); #创建主键 alter table 表名 add primary key (主键名); #删除主键 alter table 表名 drop primary key; #创建表(应先切换需要的数据库) create table 表名( 列名列类型其他关键词, ... 列名列类型其他关键词, primary key (主键名) ); #复制⼀张表的结构和数据 creat table 新表名 as (select * from 被复制的表名); #复制⼀张表结构 create table 新表名 like 被复制的表名; #查看数据表结构 desc 表名; #查看创建表的sql语句 show create table 表名; #删除表 drop table 表名; #修改列类型 alter table 表名 modify 列名列类型(修改后的); #修改列名、列类型 alter table 表名 change 原列名新列名列类型; #添加表字段 alter table 表名 add( 列名列类型, ... ); #添加表字段到某列后 alter table 表名 add 新列名列类型 after 列名; #删除表的某⼀列 alter table 表名 drop 列名; #修改表的名字 alter table 表名 rename 新表名;。

SQL语言基础

SQL语言基础

【例6-5】将学生表学生所属系(Dept)长度改为 20。 ALTER TABLE Student MODIFY(Dept CHAR (20)); ⑶ 删除某些列 可以对已定义表中的列进行删除。 【例6-6】将学生表Student中班级(Class)列删除。 ALTER TABLE Student drop(Class )); 在没有视图和约束引用该列时,删除才能正常 进行。
【例6-9】为STUDENT表创建学号升序 惟一性索引,为SC表创建学号升序和课 程号降序索引。 CREATE UNIQUE INDEX st_snum on student(snum); CREATE INDEX sc_snum_cnum on sc(snum,cnum desc)
2.删除索引 删除索引的命令格式为:DROP INDEX <索引名 >; 索引建立后,由系统使用和维护,不需要用户干 预。建立索引是为了提高查询数据的效率,但如 果某阶段数据变动频繁,系统维护索引的代价会 增加,可以先删除不必要的索引。 【例6-10】删除STUDENT表ST-SnuM索引。 Drop INDEX st_snum; 删除索引,不仅物理删除相关的索引数据,也从 数据字典中删除该索引的描述。
【例6-11】教务处经常用到学号(SNum)、姓名 (SName)、性别(Sex)、系别(Dept)课程号 (CNum)、课程名(CName)、学分(Credit)、 成绩(Grade)数据,为该用户创建一个视图,便 于对数据的使用。 CREATE VIEW st_cu_sc(学号,姓名,性别,系别,课 程号,课程名,学分,成绩) AS SELECT SNum, Sname,Sex, Dept,Cnum, Cname, Credit, Grade From student,course,sc Where student. SNum=sc.SNum and um=course. Cnum WITH CHECK OPTION;

SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,是一个综合的、通用数据库3.2.1

SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,是一个综合的、通用数据库3.2.1

SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,是一个综合的、通用的、功能极强,同时又简洁易学的语言。

其主要特点如下:1.综合统一非关系模型(层次模型、网状模型)的数据语言一般分为模式数据定义语言(Data Definition Language,简称模式DDL)、外模式数据定义语言(外模式DDL)、子模式数据定义语言(子模式DDL)以及数据操纵语言(Data Manipulation Language,简称DML),它们分别完成模式、外模式、内模式的定义和数据存取、处置功能。

而SQL语言则集数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据以建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作的要求,这就为数据库应用系统开发提供了良好的环境。

2.高度非过程化非关系数据模型的数据操纵语言是面向过程的语言,要完成某项请求,必须指定存取路径。

而用SQL语言进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”。

因此用户无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。

这不但大大减轻了用户负担,而且有利于提高数据独立性。

3.用同一种语法结构提供两种使用方式SQL语言既是自含式语言,又是嵌入式语言。

作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作;作为嵌入式语言,SQL语句能够嵌入到高级语言(例如C、COBOL、FORTRAN、PL/1)程序中,供程序员设计程序时使用。

而在两种不同的使用方式下,SQL语言的语法结构基本上是一致的。

这种以统一的语法结构提供两种不同的使用方式的作法,为用户提供了极大的灵活性与方便性。

4.语言简洁,易学易用SQL语言功能极强,但由于设计巧妙,语言十分简洁,完成数据定义、数据操纵、数据控制的核心功能只用了9个动词:CREA TE、DROP、ALTER、SELECT、INSERT、UPDA TE、DELETE、GRANT、REVOKE,如表3-1所示。

数据控制语言与数据定义语言

数据控制语言与数据定义语言

数据控制语言与数据定义语言常用语句一、表空间、用户、权限 (1)二、表 (2)三、索引 (6)四、视图 (7)一、表空间、用户、权限数据控制语言(data control language,DCL)数据控制语言(data definition language DDL)1、创建表空间Create tablespace 表空间名‘存放路径\名称.dbf’size **M(表空间大小)autoextend on next **M maxsize unliminted;2、创建用户Create user 用户名identified by 密码(密码不能为数字)Default tablespace 表空间--------指定表空间(可选)Temporary tablespace 临时表空间------指定临时表空间(可选一般式temp)Account unlock/lock 指定用户是否被锁定3、授予用户权限授予某个用户什么权限使用grant 权限,权限,权限。

to user [with admin option]可选(指将授权的权限,该用户还可以授予给其他用户)撤销某个用户什么权限使用revoke 权限,权限,权限。

from user;table,drop any table,create procedure,create any procedure,create view,create user to 用户名user_name;Grant 权限to public;将权限授予所有用户;Grant DBA to user_nameGrant resource to user_name 将resource角色授权给用户后,创建的用户才能够在相应的表空间上创建表4、查看授予用户的系统权限通过数据字典中的user_sys_privs视图,可以查看授予用户的系统权限Select * from user_sys_privs查看当前连接用户的系统权限5、收回用户系统权限Revoke system_privsleges(系统权限) from user_name;授予者可以收回被授予者的权限Revoke 系统权限from public (将赋予public的某一权限收回)Revoke create session from public6、对象权限控制对象权限控制包括对象权限授予和收回。

结构化查询语言SQL(2)——数据定义语言

结构化查询语言SQL(2)——数据定义语言

例2:建立一个“学生”表Student,它由学号 :建立一个“学生” ,它由学号Sno、姓名 、姓名Sname、 、 性别Ssex、年龄 五个属性组成。 性别 、年龄Sage、所在系 、所在系Sdept五个属性组成。其中学号不 五个属性组成 能为空,姓名取值唯一。 能为空,姓名取值唯一。 CREATE TABLE Student(Sno CHAR(5) NOT NULL, ( ( ) Sname CHAR(8)UNIQUE, ( ) 表名 Ssex CHAR(2), 数据类型 ( ) Sage INT, 列名(字段名) 列名(字段名) Sdept CHAR(20)); ( ));
SQL的数据定义语句 的数据定义语句
操作对象 表 视图 索引
操作方式 创建 create table create view create index 删除 drop table drop view drop index 修改 alter table
定义数据库 创建、 创建、修改和撤消数据库 定义基本表 定义、 定义、修改与删除基本表 定义索引 建立与删除索引
例6:建立一个“成绩”表chengji,它由学号 、课程号 :建立一个“成绩” ,它由学号sno、课程号cno、 、 成绩cj三个属性组成 定义此表并定义相应的主键和外键。 三个属性组成。 成绩 三个属性组成。定义此表并定义相应的主键和外键。 CREATE TABLE chengji (sno CHAR(5), cno CHAR(3), cj INT, primary key (sno,cno), foreign key (sno) references student(sno), foreign key (cno) references cullum(cno) );

SQL的数据定义语言(DDL)

SQL的数据定义语言(DDL)
EDA技术及其应用
SQL的数据定义语言(DDL)
SQL的数据定义功能包括定义模式、定义基本表、定义视图、 定义索引。
1.1 定义模式
1)模式的创建
在SQL中,一个模式定义为基本表的集合。模式由模式名和模式拥有 者的用户名或账号来确定,并包含模式中每一个元素(基本表、视图、 索引等)的定义。创建一个模式,可以理解为建立一个数据库,或定 义一个存储空间,其句法是
实例
CREATE TABLE Table_Student ( StudentID varchar (12) NOT NULL, CardID varchar(8), Sname varchar(8) , School varchar(8) NOT NULL, Sex char(1) CHECK ( Sex in ('M','F')), PRIMARY KEY (StudentID), FOREIGN KEY (CardID) REFERENCES Table_Card(CardID));
1.2 定Байду номын сангаас基本表
3)基本表的修改
在基本表建立使用一段时间后,可能由于分析设计不到位或应用需求的不断变化 等原因,需要对基本表结构进行修改,比如新增列和完整性约束、修改原有的列 定义和完整性约束定义等。
SQL语言使用ALTER TABLE 命令来完成这一功能,其基本格式为:
1.2 定义基本表
实例
CREATE TABLE Table_Card ( CardID varchar(8) PRIMARY KEY, Password varchar(8) NOT NULL, StartDate datetime NOT NULL, EndDate datetime , State char(1) NOT NULL CHECK (State in ('0','1','2')), Balance money NOT NULL CHECK (Balance>=0 ), CHECK (StartDate<EndDate));
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle表:数据定义语言(DDL)
•字段的数据类型
数据类型
用户自定义 Oracle提供 Relationship
Scalar Collection CHAR(N), NCHAR(N) VARCHAR2(N), VARRAY NVARCHAR2(N) NUMBER(P,S) TABLE DATE TIMESTAMP RAW(N) BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID, UROWID

3.查看表的约束信息: SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE FROM USER_CONSTRAINTS WHERE TABLE_NAME=‘表名’;
Oracle表:数据定义语言(DDL)
•修改Oracle数据表
1、向已存在的数据表中添加一列 ALTER TABLE <表名> ADD <新列名> <数据类型> [ 完整性约束 ]; 2、向已存在的数据表中删除一列 ALTER TABLE <表名> [ DROP COLUMN <列名> ]; ALTER TABLE <表名> SET UNUSED (列名); 3、修改已存在的列 ALTER TABLE <表名> MODIFY 列名 新数据类型;
Oracle表:数据定义语言(DDL)
我们既可以在创建表时创建约束,也可以在创建完 成之后再添加约束。约束的定义有两个级别: 1、列级别:一个列级别的约束只涉及单独一列,它的 定义与列的定义同时进行。除外键(FOREIGN KEY)约 束和复合主键约束外,其他类型的约束均可以在列级别 进行定义。 通用的语法格式是: 列名 数据类型 [ CONSTRAINT 约束名 ] 约束类型
•删除Oracle数据表(永久性删除)
DROP TABLE <表名>
[CASCADE CONSTRAINTS];
•重新命名Oracle数据表
RENAME <旧表名> TO <新表名>;
•截断Oracle数据表
TRUNCATE TABLE <表名> ;
下课了。。。
操作符 Operators 维 Dimensions 索引组织表 Index-organized tables
索引类型 Indextypes
Java classes, Java resources, Java sources 实体化视图日志 Materialized view logs 对象表 Object tables 对象类型 Object types 对象视图 Object views
REF
Oracle表:数据定义语言(DDL)
• 字段约束:在创建表时,可对表的各个字段设置约束,强制规 定表中的数据必须满足的条件。通过使用约束可以保证关系数 据库中的三类完整性规则: – 实体完整性 – 参照完整性 – 用户定义完整性 • NULL值:在Oracle的表中,某个字段可以不包含任何值,则 称该字段具有“NULL”值 • 字段默认值—它不是一个约束 • 数据完整性约束:数据完整性约束使用户定义的一系列规则, 用于防止错误的或无效的数据被插入或删除。在Oracle中,一 共可以为表中的字段定义如下五种类型的约束: – PRIMARY KEY (主码,pk)约束-实体完整性约束 – FOREIGN KEY (外部码,fk)约束—引用完整性约束 – UNIQUE (唯一码,uk)约束 – NOT NULL (非空,ck)约束 – CHECK 约束 (ck或cc)
ห้องสมุดไป่ตู้
Oracle表:数据定义语言(DDL)
2、表级别:一个表级别的约束涉及一列或多列,它的定 义与列的定义是分开进行的。一般来说,所有列的定义都 完成之后才定义表级别约束。除非空约束(NOT NULL)外, 所有约束可以在表级别进行定义。 通用的语法格式是: [CONSTRAINT 约束名] 约束类型 (列名,…) 约束名的起名规则:<表名>_<约束列>_<约束类型>
Oracle表:数据定义语言(DDL)
4、添加一个约束 ALTER TABLE <表名> ADD 列级完整性约束 ; 5、删除一个约束 ALTER TABLE <表名> DROP PRIMARY KEY | UNIQUE(列名) CONSTRAINT 约束名 [CASCADE]; 6、启用/禁用约束 ALTER TABLE <表名> ENABLE | DISABLE CONSTRAINT 约束名 ;
第四章 Oracle表:数据定义语言
(Data Definition Language)
本章概要
1. 学习数据定义语言的语句,以操作Oracle数 据库的数据表结构SQL概述 2. 讨论定义数据表的列时所用的各种数据类型 3. 概括介绍了完整性约束和值约束,同时也概 括介绍了在列级别和表级别上如何在 CREATE TABLE 语句中使用完整性约束和 值约束 4. 介绍查看、修改和删除数据表结构
Oracle表:数据定义语言(DDL)

创建Oracle数据表
CREATE TABLE <表名>
( <列名1> <数据类型> [ <列级完整性约束> ] [,<列名2> <数据类型> [ <列级完整性约束>] ] … [,<表级完整性约束> ] ); 说明:
– <表名>:所要定义的基本表的名字 – <列名>:组成该表的各个属性(列) – < 列级完整性约束 > :涉及相应属性列的完整性约束 条件 – <表级完整性约束>:涉及一个或多个属性列的完整 性约束条件 – 注意:每一列都可以有零个或多个在列级别上定义 的约束。一般情况下,表级别约束是在所有列级别 定义完成之后才声明。
Oracle表:数据定义语言(DDL)
非模式对象的类型
在Oracle数据库中不是所有的对象都是模式,还有一些 数据库对象不属于任何模式,这些对象称为非模式对象 ,其类型有:
• • • • •
表空间 Tablespaces 用户 Users 角色 Roles 回退段 Rollback segments 目录 Directories
Oracle表:数据定义语言(DDL)
模式
Oracle通过模式来组织和维护表、视图、索引 等数据库对象。
• 模式:是一系列逻辑数据结构或对象的集合。一 个模式只能够被一个数据库用户所拥有,并且模 式的名称与这个用户的名称相同。 • Oracle数据库中的每一个用户都拥有一个唯一的 模式,他所创建的所有模式对象都保存在自己的 模式中。
Oracle表:数据定义语言(DDL)
模式对象的类型
在Oracle数据库中的模式对象有:
• • • • • • • • • • • 表 Tables • 视图 Views • 实体化视图 Materialized views • 索引 Indexes • 触发器 Triggers • 同义词 Synonyms • 序列 Sequences • 函数、过程和包 Functions, Procedures , • Packages • 簇或聚集 Clusters 数据库链 Database links 扩展程序库 External procedure libraries
Oracle表:数据定义语言(DDL)
表 Tables
Oracle数据库中的表是基本的数据库存储结构。在定义 表时为表建立多个字段,数据以行的记录的形式存储在 表中。
Oracle表:数据定义语言(DDL)
命名规则和约定
• 数据表是一个对象,它能够存储Oracle数据库中的数据。 创建数据表时,必须指定数据表的名称、每一列的名称、 每一列的数据类型以及每一列的大小。 • 表名和列名的长度最多可为30个字符。在命名表和列时, 允许使用字母(A~Z,a~z)、数字(0~9)和一些特殊字符 ($,_,#)。但是,表名和列名必须以字母打头。 • 注意1:表名和列名中不允许有空格和连字号(—)。 • 注意2:表名在模式(schema)或帐户中必须是唯一的,在一 个模式中不应该具有相同名称的另一个对象。
Oracle表:数据定义语言(DDL)
7、重新命名一列 ALTER TABLE <表名> RENAME COLUMN 原列名 TO 新列名 ; 8、重新命名一个约束 ALTER TABLE <表名> RENAME CONSTRAINT 原约束名 TO 新约束名 ;
Oracle表:数据定义语言(DDL)
Oracle表:数据定义语言(DDL)
显示数据表信息 1.查看用户的表名: SELECT TABLE_NAME FROM USER_TABLES; 功能:显示当前用户创建的所有表名以及属于当前用户的所有 其他表。若将改为,将列出当前用户拥有的所有表,以及其 他用户授予当前用户权限的那些表。 2.查看表结构:DESCRIBE 表名;
相关文档
最新文档