数据表的基本操作

1. SQL语句
1.1. CREATE语句
创建BOOKINFO表:
CREATE TABLE BOOKINFO
(
BOOKID NUMBER ,
BOOKNAME CHAR ,
PUBLISH VARCHAR2(20),
PUBDATE VARCHAR2(20),
PRICE DECIMAL(7,2) DEFAULT 0.0,
AUTHOR CHAR,
STORE INT DEFAULT 0 NOT NULL,
READER NUMBER,
REMARKS VARCHAR2(50)
);
1.2. 修改用户密码
ALTER USER SYSTEM BY IDENTIFIED BY ROOT123;
ALTER USER SYSTEM ACCOUNT UNLOCK;
GRANT CONNECT TO SYSTEM IDENTIFIED BY ROOT123;
1.3. 查看当前用户表
SHOW USER;
SELECT TABLE_NAME FROM TABS;
SELECT TABLE_NAME FROM USER_TABLES;
SELECT TNAME FROM TAB;
1.4. 约束
1、约束
约束用于确保数据库数据满足特定的商业规则。在Oracle中,约束包括:not null、unique、primary key, foreign key和check五种。
A、not null(非空)
如果在列上定义了not null,那么当插入数据时,必须为列提供数据。
B、unique(唯一)
当定义了唯一约束后,该列值是不能重复的,但是可以为null。
C、primary key(主键)
用于唯一的标识表行的数据,当定义主键约束后,该列不但不能重复而且不能为NULL。一张表最多只能有一个主键,但是可以由多个unique约束。
D、foreign key(外键)
用于定义主表和从表之间的关系,外键约束要定义在从表上,主要则必须具有主键约束或是unique约束,当定义外键约束后,要求外键列数据必须在主表的主键列存在或是为NULL。
E、check
用于强制行数据必须满足的条件,假定在sal列上定义了check约束,并要求sal列值在1000~2000之间,如果不在1000~2000之间就会提示出错。

1.4.1. 检查约束
创建语法:
CONSTRAINT constraint_name CHECK (condition)
Condition:用来唯一标识表中一个列,一个表中的主键约束只能有一个,但是可以在一个主键约束中包含多个列;
CREATE TABLE BOOKINFO
(
BOOKID NUMBER ,
BOOKNAME CHAR ,
PUBLISH VARCHAR2(20),
PUBDATE VARCHAR2(20),
PRICE DECIMAL(7,2) DEFAULT 0.0,
AUTHOR CHAR,
STORE INT DEFAULT 0 NOT NULL,
READER NUMBER,
REMARKS VARCHAR2(50),
CONSTRAINT CK_PRICE CHECK (PRICE>= 0 AND PRICE<=100)
);
1.4.2. 非空约束表
给字段后面添加NOT NULL;
CREATE TABLE BOOKINFO_01
(
BOOKID NUMBER NOT NULL ,
BOOKNAME CHAR NOT NULL,
PUBLISH VARCHAR2(20),
PUBDATE VARCHAR2(20),
PRICE DECIMAL(7,2) DEFAULT 0.0,
AUTHOR CHAR,
STORE INT DEFAULT 0 NOT NULL,
READER NUMBER,
REMARKS VARCHAR2(50)
);
1.4.3. 唯一约束的表
语法:
CONSTRAINT constraint_name UNIQUE(colume_name)
CREATE TABLE BOOKINFO_02
(
BOOKID NUMBER NOT NULL ,
BOOKNAME CHAR NOT NULL,
PUBLISH VARCHAR2(20),
PUBDATE VARCHAR2(20),
PRICE DECIMAL(7,2) DEFAULT 0.0,
AUTHOR CHAR,
STORE INT DEFAULT 0 NOT NULL,
READER NUMBER,
REMARKS VARCHAR2(50),
CONSTRAINT UN_BOOKNAME UNIQUE(BOOKNAME)
);
1.4.4. 外键约束表
语法:
CONSTRAINT constraint_name FOREIGE KEY(colume_name)
REFERENCE table_name(colume_name)
关键字说明:
CONSTRAINT:创建约束的关键字
FOREIGE KEY:外键约束的关键字
REFERENCE:引用外表的关键字
table_name(colume_name):引用外表(父表),colume_name表示该表的列
注意:主外键字段的数据类型必须要相同;
--创建父表
CREATE TABLE PUBLISHINFO
(
PUBLISHID VARCHAR2(20) PRIMARY KEY,
PUBLISHNAME VARCHAR2(30)
);
--创建字表
CREATE TABLE BOOKINFO_03
(
BOOKID NUMBER NOT NULL ,
BOOKNAME CHAR NOT NULL,
PUBLISH VARCHAR2(20),
PUBDATE VARCHAR2(20),
PRICE DECIMAL(7,2) DEFAULT 0.0,
AUTHOR CHAR,
STORE INT DEFAULT 0 NOT NULL,
READER NUMBER,
REMARKS VARCHAR2(50),
CONSTRAINT FK_PUBLISH FOREIGN KEY(PUBLISH) REFERENCES PUBLISHINFO(PUBLISHID)
);
1.4.5. 含多个约束的表
CREATE TABLE BOOKINFO_05
(
BOOKID NUMBER NOT NULL ,
BOOKNAME CHAR NOT NULL,
PUBLISH VARCHAR2(20),
PUBDATE VARCHAR2(20),
PRICE DECIMAL(7,2) DEFAULT 0.0,
AUTHOR CHAR,
STORE INT DEFAULT 0 NOT NULL,
READER NUMBER,
REMARKS VARCHAR2(50),
CONSTRAINT UN_BOOKNAME_05 UNIQUE(BOOKNAME),
CONSTRAINT CK_PRICE_05 CHECK (PRICE <= 100)
)
1.5. 修改表
1.5.1. 修改表结构
语法:
ALTER TABLE table_name ADD colume_name | MODIFY colume_name | DROP COLUME colume_name
--ADD
ALTER TABLE BOOKINFO ADD ISBN VARCHAR2(10);
--MODIFY
ALTER TABLE BOOKINFO MODIFY PUBLISH VARCHAR2(80) NOT NULL;
--DROP
ALTER TABLE BOOKINFO DROP COLUMN ISBN;
1.5.2. 给表添加约束(主键)
语法:
ALTER TABLE table_name ADD colume_name CONSTRAINTS constraint_name PRIMARY KEY(colume_name)
--添加主键
ALTER TABLE BOOKINFO ADD CONSTRAINT PK_BOOKINFO PRIMARY KEY (BOOKID);
--删除主键
ALTER TABLE BOOKINFO DROP CONSTRAINT PK_BOOKINFO;
1.6. 表
1.6.1. 删除表
语法:
DROP TABLE <table_name>;
DROP TABLE BOOKINFO_05;
1.6.2. 清空表内容
语法:
DELETE FROM table_name;
DELETE FROM BOOKINFO_02;
语法:(截断表)
TRUNCATE TABLE table_name;
TRUNCATE TABLE BOOKINFO_03;
语法
delete from aa
truncate table aa
区别
1.delete from后面可以写条件,truncate不可以。
2.delete from记录是一条条删的,所删除的每行记录都会进日志,而truncate一次性删掉整个页,因此日至里面只记录页释放,简言之,delete from更新日志,truncate基本不,所用的事务日志空间较少。
3.delete from删空表后,会保留一个空的页,truncate在表中不会留有任何页。
4.当使用行锁执行DELETE语句时,将锁定表中各行以便删除。truncate始终锁定表和页,而不是锁定各行。
5.如果有identity产生的自增id列,delete from后仍然从上次的数开始增加,即种子不变,而truncate后,种子会恢复初始。
6.truncate不会触发delete的触发器,因为truncate操作不记录各个行删除。
总结
1.truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态。
2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger。
3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动显然drop语句将表所占用的空间全部释放truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage;truncate会将高水线复位(回到最开始)。
4.速度,一般来说: drop> truncate > delete。
5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及。
6.使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大,想删除表,当然用drop想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据。
1.6.3. 重命名表
语法:
RENAME oldname TO newname;

时间: 2024-12-23 12:38:04

数据表的基本操作的相关文章

mysql(三) 数据表的基本操作操作

mysql(三) 数据表的基本操作操作 创建表,曾删改查,主键,外键,基本数据类型. 1. 创建表 create table 表名( 列名 类型 是否可以为空, 列名 类型 是否可以为空 )ENGINE=InnoDB DEFAULT CHARSET=utf8 例如: 类型解释: 是否可以为空: 是否可空,null表示空,非字符串 not null - 不可空 null - 可空 默认值设置 默认值,创建列时可以指定默认值,当插入数据时如果未主动设置,则自动添加默认值 create table t

数据库、数据表的基本操作及查询数据

数据库的基本操作 创建数据库 CREATE DATABASE database_name database_name为要创建的数据库的名称 删除数据库 DROP DATABASE database_name database_name为要删除的数据库的名称 数据库存储引擎 数据库存储引擎是数据库底层软件组成,数据库管理系统(DBMS)使用数据引擎进行创建.查询.更新和删除数据操作. MySQL的核心就是存储引擎. 存储引擎比较 |功能|MyISAM|Memory|InnoDB|Archive|

三、数据表的基本操作

3.1.创建数据表 创建数据表指的是在已经创建好的数据库中建立新表.创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(实体完整性.引用完整性.域完整性)约束的过程. 创建表的语法格式 数据表属于数据库,在创建数据表之前,应该先创建数据库,指定在哪个数据库中进行. mysql> USE test; Database changed mysql> CREATE TABLE tb_name ( 字段名1,数据类型 [列级别约束条件] [默认值], 字段名2,数据类型 [列级别约束条件

mysql数据表的基本操作

好久没梳理下Mysql基础命令了.今天抽空整理了下,虽然很简单...但是还是有必要巩固下基础滴啦 1.创建表:之前需要use database database_name 然后create table 表名(): 例:创建员工表tb_employee1,结构如下表所示 字段名称 数据类型 备注 id int(11) 员工编号 name varchar(25) 员工名称 depld int(11) 所在部门编号 salary float 工资 mysql> create database aa;

MySQL数据表的基本操作三:综合示例

一.创建数据库 mysql> create database company; mysql> use company; 二.创建表 1. 创建表offices mysql> create table offices -> ( -> officeCode int(10) NOT NULL UNIQUE, -> city varchar(50) NOT NULL, -> address varchar(50) NOT NULL, -> country varch

MySQL数据表的基本操作二:表结构查看、修改与表操作

一.查看数据表结构 1) 查看表基本结构语句 DESCRIBE 语法:DESCRIBE 表名; 示例: mysql> DESCRIBE product; +--------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+---------

Oracle对数据表的基本操作

选择主键的原则: 最少性 尽量选择使用单个键作为主键 稳定性 尽量选择数值更新少的列作为主键 1.创建数据表(CREATE TABLE) --创建数据表Student create table Student( SID number(2) constraint PK_SID primary key,--指定该列为主键列,并指定主键名为PK_SID SName varchar2(16) not null ) --创建数据表Class create table Class( CID number(2

mysql数据表的基本操作:表结构操作,字段操作

本节介绍: 表结构操作 创建数据表. 查看数据表和查看字段. 修改数据表结构 删除数据表 字段操作 新增字段. 修改字段数据类型.位置或属性. 重命名字段 删除字段 首发时间:2018-02-18  21:31 表结构操作 创建数据表: 语法  : create table [if not exists] 表名( 字段名字 数据类型, 字段名字 数据类型 )[表选项]; 表选项  : 字符集:charset表中存储数据的字符集 校对集:colloate表中用来校对数据的校对集 存储引擎  :en

数据表的基本操作与表的约束

1.创建数据表mysql> CREATE TABLE tb_grade -> ( -> id INT(20), -> name CHAR(20), -> grade FLOAT -> ) -> ;Query OK, 0 rows affected 为了验证数据表是否创建成功,需要使用SHOW TABLES语句进行查看mysql> SHOW TABLES;+------------------+| Tables_in_itcast |+------------

02 MySQL之数据表的基本操作

01-创建数据表 # 切换数据库 use test_db; # 创建数据表 语法规则如下: create table 表名 ( 字段名1, 数据类型 [列级别约束条件] [默认值], 字段名2, 数据类型 [列级别约束条件] [默认值], ...... [表级别约束条件] ); 注意: 1.要创建的表名称,不区分大小写,不能使用SQL关键字. 2.数据表中创建多列,要用 逗号 隔开. 例: create table test_db ( id INT(11), name VARCHAR(25),