oracle中增刪改操作,約束條件
約束條件 主鍵:primary key, PK = unique + not null 外來鍵:foreign key, FK 唯一:unique 非空:not null 檢查:check --建表 create table student( id number primary key, name varchar2(20), email varchar2(40), registtime date default sysdate); --刪除一個表 drop table student --新增記錄 insert into Student(id,name,email,registtime) values(1,'jakcy','[email protected]',sysdate) insert into Student(id,name,email) values(2,'jakcy','[email protected]') insert into Student(id,name,email,registtime) values(3,'jakcy','[email protected]',to_date('2015-10-01','yyyy-mm-dd')) --如果新增全部欄位,可以省略欄位名稱 --不推薦 --建議寫出完整的欄位列表 insert into Student values(4,'jakcy','[email protected]',to_date('2015-10-02','yyyy-mm-dd')) --一次增加多條記錄 --使用子查詢代替values insert into student(id,name) select empno,ename from emp -- 刪除 delete student where id=7369 select * from student delete student where id>1000 --修改 update student set name='jacky1' where id=1 update student set name=name||id where id<>1 總結: DDL: create DML: insert/ delete /update --建立約束條件 --如果建立的約束條件沒有命名,由系統自動命名的.SYS_Cn. --1.建立主鍵約束: --1)建表時建立,可以建立在列級或表級. --2)在建表後建立,建立在表級. 例1. --以student為例 --建立主鍵約束,不命名,由系統命名,建立在列級. create table student( id number primary key, name varchar2(20), email varchar2(40), registtime date default sysdate); drop table student 例2. --建立主鍵約束,自己命名,建立在表級 --約束條件命名為:stuning1_id_pk CREATE TABLE student1( id NUMBER, name VARCHAR2(20), CONSTRAINT stuning1_id_pk PRIMARY KEY(id)); 例3.-- 一些建模工具常用的方法 power builder, visio,... --建表後建立主鍵約束 --約束條件名稱自定義(stuning2_id_pk),最好有意義. create table student2( id number, name varchar2(20) ); alter table student2 add constraint stuning2_id_pk primary key (id); --注意 primary key (id1,id2); --檢視主鍵約束條件 --瞭解 select constraint_name, constraint_type from user_constraints where table_name='student2'; 1.主鍵約束 primary key 作用: 1)唯一性,反止重複 2)防止為空 --不提供主鍵值,將返回"id不能為空"錯誤 select * from student insert into student(id,name) values(1,'aaa') --error insert into student(name) values('aaa') --error 重點: 任何時候,一個表要有主鍵。
2.建立非空約束:只能建立在列級 unique create table student1( id number primary key, name varchar2(20) not null); select constraint_name, constraint_type from user_constraints where table_name='student1'; --要求此列上必須有值.錯誤的sql: insert into student1(id) values(1); 3.建立唯一約束 --email的唯一約束建立在列級 --nickname的唯一約束建立在表級 create table student1( id number primary key, name varchar2(20), nickname varchar2(20), email char(30) unique, constraint stu_ning1_nickname_uk1 unique(nickname)); --唯一約束允許為空,但不允許重複. 原因:pk一個表上只能有一個;對於其它不能重複的欄位,只能選擇unique 用於:1. email,但email不是主鍵時; 2.手機號 4.check約束 create table student2( id number primary key, name varchar2(20), sex char, constraint stuning2_sex_ck check (sex in ('M','F'))); --female,male --正確的例子: insert into student2 values(1234,'peter','M'); --錯誤的例子: insert into student2 values(1235,'chris','A'); 5. 外來鍵 --重點 --主表(父表) 被參照的表 create table major( mid number(2) primary key, mname varchar2(30) ); select * from major --從表(子表) 參照別的表 create table student( id number(5) primary key, name varchar2(20), mid number(2), constraint stuning_mid_fk foreign key (mid) references major(mid) ); delete major insert into major values(1, 'computer'); insert into major values(2, 'music'); insert into major values(3, 'movie'); insert into student values(101,'peter',1); insert into student values(102,'chris',3); insert into student values(103,'king', 2); select * from student s join major m on s.mid = m.mid and s.name = 'peter'; --試圖增加一個學生記錄,指定一個不存在的專業編碼10 select * from student select * from major insert into student values(110,'dawson',10); --報錯:未找到父項關鍵字 --表示:在父表中沒有編碼為10的專業 --試圖刪除major表中的1專業,這個專業被某些學生選修(被參照),此時刪除不成功, delete from major where mid = 1; --報錯:已找到子記錄 主表:major,因為mid為pk,一個專業的記錄為一條; 從表:student,因為每一個mid,在student可以有0條,1條或多條記錄對應 insert into student values(119,'aaa',null) --還沒有分配專業 update student set mid=1 --分配專業 select * from student
相關推薦
oracle中增刪改操作,約束條件
約束條件 主鍵:primary key, PK = unique + not null 外來鍵:foreign key, FK 唯一:unique 非空:not null 檢查:check --建表 create table student( id number prim
mysql資料庫的簡單增刪改查,合併欄位,拼接字元操作,用java完成將一張表中的查詢結果合併存入另一張表的指定欄位
首先問題描述:我現在有兩個表,一個表是關鍵詞,一個表是含有關鍵詞的標籤,需要做的就是在關鍵詞表中新建一個標籤欄位,把包含該關鍵詞的全部標籤存入其中。比如關鍵詞是Java,標籤可能有Java開發,Java後臺等。我這裡關鍵詞有4000個,標籤有40000個,我用了小段java程式碼+sql的函式就完成
Oracle資料庫DML(資料操縱語言)參考程式碼,簡單查詢,分組查詢,簡單增刪改操作
撰寫人——軟工二班——陳喜平 – 實驗內容: – 一、簡單查詢 – 編寫簡單查詢語句,理解笛卡爾積、選擇、投影的概念及其在SQL中的實現 –SQL PL/SQL SQLPLUS – DDL :CREATE ALTER DROP 資料定義語言 – DML INSERT DELETE UPDAT
簡述ADO中如何使用引數化的命令物件以及增刪改查,儲存過程的操作
連線資料庫程式碼: private SqlConnection con = null; public void OpenConnection(string connectionString) { con = new SqlConnection
Java操作Hbase進行建表、刪表以及對資料進行增刪改查,條件查詢
1、搭建環境 新建JAVA專案,新增的包有: 有關Hadoop的hadoop-core-0.20.204.0.jar 有關Hbase的hbase-0.90.4.jar、hbase-0.90.4-tests.jar以及Hbase資源包中li
樹結構中的節點增刪改操作後,排序碼的重新設定
package com.naydog.sort.bysortkey; import java.util.ArrayList; import java.util.List; /** * 目的:樹結構中一個節點下的子節點非自然排序,而是按照排序碼。當發生節點增
MongoDB中的增刪改操作
insert mongodb update MONGODB的增刪改查:註意:"_id"這個字段是數據庫默認給我們加的GUID,目的是保證數據的唯一性1、添加insert 1、語法:db.集合.insert({"key1":value1,"key2":value2,....."keyN":value
Python的列表類型操作——“增刪改查”,元組——“查”
增刪 mov 增刪改 常用 元組 for range 對象 嵌套 一、什麽是列表 1.列表是一個可變的數據類型,它由[]表示,其中的每一項元素使用“,”逗號隔開,可以儲存各種數據類型。列表相比於字符串,可以存放大量數據類型,其是有序的,有索引,可以使用切片,方便取值。
ASP.NET C# 連接 Oracle數據庫增刪改查,事務
config 註釋 數據庫 using tran datatable 文件 影響 常用 一、知識介紹 ①ASP.NET 使用的是MVC模式,開發工具Visual studio ,語言C# ②Oracle是比較重型的數據庫,這裏主要介紹連接數據庫,對數據進行具體的使用
Python字典中增刪改查的操作
增:字典中的增加鍵值對與列表相差無幾,例:dic = {'name1':'tom'} 實現增加的操作:dic['name2'] = 'Jack' 注意不要忘記加''(上引號) 刪:三種方法,dic.pop('key'),可
mysql資料庫中的增刪改操作
1、插入資料 語法格式: INSERT INTO table_name (column_list) VALUES (value_list); &n
潭州課堂25班:Ph201805201 django框架 第六課 模型類增刪改查,常用 的查詢矣查詢條件 (課堂筆記)
在檢視函式中寫入增刪改查的方法 增: 在 urls 中配置路徑 : 查: 1: 在後臺列印資料 在模型類中新增格式化輸出 : QuerySet,反回的是個物件,可以按索引聚會,用 for
Oracle-資料庫增刪改查基本操作
一、建立資料表 1).建立不存在的新表: create table tname( Data_Name Date_Type [default][預設值] ); 2).建立已存在表的副本 create table emp1 as selec
Python sqlalchemy增刪改查,多表查詢join操作
sqlalchemy物件: from sqlalchemy import Column from sqlalchemy import DateTime from sqlalchemy import BIGINT from sqlalchemy import IN
20181022mysql操作一:建立庫,表的增刪改查,資料的增刪改
1、建立資料庫 create database python charset=utf8; 2、使用資料庫 use python; 3、建立表結構 create table student( id int primary key auto_increment
hibernate中session增刪改操作及事務提交的問題
一、問題回顧 Session session = MySessionFactory.getSession(); // Transaction tx = null; // try{ // String hql="delete form td_report where ID=1" ; //
異步往數據庫中插入每個用戶的增刪改操作日誌
run while empty sem 批量 異步 exp rri des [x] ++我們需要一個工具類++ 用工具類異步向數據庫中插入用戶的操作日誌 工具類代碼如下: package com.dp.api.util; import com.dp.common.
【MySQL】表的約束以及增刪改操作!!
表的約束 空屬性 null:如果不設定,預設為null not null:設定當前欄位不為空,再插入資料的時候當前欄位不可以為空 create table tt1( id int no
在Visual Studio中的mvc專案下利用AngularJS實現單頁面中的增刪改操作
執行效果如下(利用了AngularJS的雙向繫結進行修改): 原始碼如下: @{ ViewBag.Title = "Index"; } <script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.mi
運用工廠模式封裝增刪改查,select查詢條件
config.php檔案 資料庫引數 <?php $dsn=array( 'localhost'=> '127.0.0.1', 'username' => 'root', 'password' => 'root',