11. sql DDL

SQL分為5大類:
DDL:數據定義語言
DCL:數據控制語言
DML:數據操縱語言
DTL:數據事務語言
DQL:數據查詢語言

?

1、DDL(data definition language):create,drop,alter,rename to

數據類型

①、數字類型,可以數學運算

  number(4)代表整數,最大4位數,也就是9999

  number(7,2)代表小數,總長度7位,小數2位,整數5位

②、字符型,可以拼接

  char(20), 固定長度,不管里面多少內容,只要小于20,輸出結果就是20個字符

  varchar2(20),不固定長度,最長20個字符

  在數據庫中要用 ' ' 標注字符串

③、日期類型,可以加減運算

  date  年月日時分秒

  time  時分秒

  timestamp ?年月日時分秒,還有小時位,如1.2秒

④、大數據類型
  clob character large object 大字符型對象,最大可存4G
  blob binary large object 大二進制對象,最大可存4G
  注意:大數據類型不支持查看結果

?

約束(constraint)
作用:約束表格中是數據,相對于數據類型而言,用來進一步限定表中的數據,使得添加到表中的數據都是合法有效的,符合業務需求的數據,不會出現無效數據

2、oracle中的5種約束

  primary key    PK  含義:主鍵

  not null      NN  含義:非空

  unique       UK  含義:唯一

  check       ??CK  含義:自定義約束,相當于添加條件

  foreign key     FK   含義:外鍵

?

3、創建表格

create table abc(
  id number(4),
  name varchar2(10),
  title varchar2(10),

  constraint abc_id_pk primary key(id),
  constraint abc_name_nn check(name is not null),
  constraint abc_title_nn check(title is not null)
);


create table bcd(
  id number(4),
  name varchar2(10),
  manager_id number(4),

  constraint bcd_id_pk primary key(id),
  constraint bcd_name_nn check(name is not null),
  constraint bcd_manager_id_fk foreign key(manager_id) references abc(id)

                       ↑          ?↑ ? ?↑

                      外鍵的列     主鍵表 ? 主鍵id
);

?

創建表格的另一種方法,就是把已有的表復制過來

--復制某張表中的指定列,構建一張新的表格(拷貝了數據)
create table 新表格名 as select 列,列,列from原表格;
例:創建一張表格,表格中只有s_emp表中的id,first_name,salary三列數據
create table new_emp as select id,first_name,salary from s_emp;

--復制了某張表格的指定列,構建一張新表格(不拷貝數據,取表結構)
create table 新表格名 as select 列,列,列from原表格 where 恒假條件;
例:創建一張表格,表格中只有s_emp表中的id,first_name,salary三列數據
create table new_emp as select id,first_name,salary from s_emp where 1=2;
注意:此處1=2表示恒false,則數據庫不會被拷貝,只能得到一張空表

?

4、刪除表格

drop table 表名

注意約束,外鍵

?

5、修改表格

--列相關
  1.添加列
  alter table 表名 add 列名 數據類型 [default默認值] 約束;
  例:--給tbl_user表添加一列年齡
  alter table tbl_user add age number(3) default 18 not null;

  2.刪除列
  alter table 表名 drop column 列名;【注意關鍵字column】
  例:刪除tbl_user表中age列
  alter table tbl_user drop column age;

  3.修改列(修改列數據類型和約束)
  alter table 表名 modify 原列名 新數據類型 新約束;
  例:修改tbl_user表中password列為char(6)默認值‘000000’非空
  alter table tbl_user modify password default'000000' not null;

  4.修改列名
  alter table 表名 rename column 原列名 to 新列名;
  --修改tbl_user表中password列名為pwd
  alter table tbl_user rename column password to pwd;





--約束相關
  1.添加約束
  alter table 表名 add constraint 約束名 約束類型(列名)
  注意:如果是添加非空約束,則:
  alter table 表名 add constraint 表名_列名_nn check (is not null)

  注意:所有的DDL語句都是自動提交事務的,所以語句是不能回滾的
  2.刪除約束
  alter table 表名 drop constraint 約束名;

  3.使約束生效
  alter table 表名 enable constraint 約束名

  4.使約束失效
  alter table 表名 disable constraint 約束名

轉載于:https://www.cnblogs.com/wang95529/p/7823270.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252923.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252923.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252923.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[bzoj2243][SDOI2011]染色

來自FallDream 的博客,未經允許,請勿轉載,謝謝qaq 給定一棵有n個節點的無根樹和m個操作,操作有2類: 1、將節點a到節點b路徑上所有點都染成顏色c; 2、詢問節點a到節點b路徑上的顏色段數量(連續相…

Linux學習筆記——例說makefile 增加宏定義

從學習C語言開始就慢慢開始接觸makefile,查閱了很多的makefile的資料但總感覺沒有真正掌握makefile,如果自己動手寫一個makefile總覺得非常吃力。所以特意借助博客總結makefile的相關知識,通過例子說明makefile的具體用法。 例說makefile…

Android基本組件是什么?

1、ImageView繼承View組件,不單單用于顯示圖片,用 XML代碼 編寫的Drawable也可以顯示出來。其中的XML屬性 android:scaleType(設置圖片如何縮放或移動以適應ImageView的大小) 有很多的屬性值,如:matrix(使用矩形方式進行縮放)fitXY(對圖片橫向縱向縮放)center(圖片放在ImageVie…

Java 運算符及優先級

運算符 分割符&#xff1a;  ,  ;  []  ()算數運算符&#xff1a;    -  *  /  %    --關系運算符&#xff1a;  >  <  >  <    !邏輯運算符&#xff1a;  !  &  |  ^  &&  ||賦值運算符&#xff1a; …

array sort - 2 : quick sort

遞歸實現&#xff1a; #include <stdio.h>int arr[10] {3, 2, 4, 1, 9, 7, 5, 6, 0, 8};void print_array(){ int i 0; for (i 0; i < 10; i) printf("arr[%d]:%d ", i, arr[i]); printf("\n");}void swap(int *i, int *j){ …

Linux C 讀取文件夾下所有文件(包括子文件夾)的文件名

本文&#xff1a;http://www.cnblogs.com/xudong-bupt/p/3504442.html Linux C 下面讀取文件夾要用到結構體struct dirent&#xff0c;在頭#include <dirent.h>中&#xff0c;如下&#xff1a; #include <dirent.h> struct dirent {long d_ino; /* inode number 索…

報表工具實現單據套打

【摘要】 單據套打再也不用手動測量&#xff0c;反復調試了&#xff0c;報表工具實現單據套打&#xff0c;去乾學院看個究竟&#xff1a;報表工具實現單據套打!實際項目開發中&#xff0c;很多情況會涉及到單據的打印。即在一張印刷好的空白單據上&#xff0c;準確無誤地打印上…

每隔10秒鐘打印一個“Helloworld”

/*** 每隔10秒鐘打印一個“Helloworld”*/ public class Test03 {public static void main(String[] args) throws InterruptedException {ThreadImp threadImp new ThreadImp();Thread thread1 new Thread(threadImp);thread1.start();} }class ThreadImp extends Thread {p…

C++ STL 優先隊列

//優先隊列//Priority_queue //STL#include<iostream>#include<cstdio>#include<cstdlib>#include<queue>using namespace std;struct cmp{ bool operator() (const int a,const int b) const{//用const定義的a,b是包裹著變量外衣的常數&#xff0c;不…

GDB調試core文件樣例(如何定位Segment fault)

core dump又叫核心轉儲, 當程序運行過程中發生異常, 程序異常退出時, 由操作系統把程序當前的內存狀況存儲在一個core文件中, 叫core dump. (Linux中如果內存越界會收到SIGSEGV信號&#xff0c;然后就會core dump) 在程序運行的過程中&#xff0c;有的時候我們會遇到Segment fa…

管理信息系統的開發與管理

{% extendsmuban.html %} {% block head %}輸入{% endblock %} {% block main %} <div><div class"form-group"><label for"question">標題</label><textarea class"form-control" cols"50" rows"2&q…

python11-28筆記(1.6-1.7)

1.6 多類型傳值和冗余參數多類型傳值&#xff1a;比如def fun(x,y)&#xff0c;定義2個形參定義一個元組t(1,2),如果把元組當做實參傳入到函數中&#xff0c;會報錯 如何將元組當做不同類型的參數傳入到函數中fun(t) 代表傳入的是元組或者這樣調用fun((1,2))注意實參的個數要和…

session機制詳解以及session的相關應用

session是web開發里一個重要的概念&#xff0c;在大多數web應用里session都是被當做現成的東西&#xff0c;拿來就直接用&#xff0c;但是一些復雜的web應用里能拿來用的session已經滿足不了實際的需求&#xff0c;當碰到這樣的情況時候我們需要更加深入的理解session的機制&am…

(轉)Shell中獲取字符串長度的七種方法

Shell中獲取字符串長度的七種方法 原文&#xff1a;http://blog.csdn.net/jerry_1126/article/details/51835119 求字符串操作在shell腳本中很常用&#xff0c;下面歸納、匯總了求字符串的幾種可能方法: 【方法一】:利用${#str}來獲取字符串的長度 【方法二】:利用awk的length方…

linux下用core和gdb查詢出現段錯誤的地方

有些時候我們在一段C代碼的時候&#xff0c;由于對一個非法內存進行了操作&#xff0c;在程序運行的過程中&#xff0c;出現了"段錯誤"。呵呵&#xff0c;這種問題我想很多人會經常遇到。遇到這種問題是非常無語的&#xff0c;只是提示了"段錯誤"&#xff…

第一篇-Html標簽中head標簽,body標簽中input系列,textarea和select標簽

第十四周課程&#xff08;1-12章節&#xff09; HTML 裸體 CSS 穿華麗衣服 Javascript 動起來 一 HTML &#xff08;20個標簽&#xff09; 1.我們的瀏覽器是socket客戶端 2.一套規則&#xff0c;瀏覽器認識的規則 3.開發者&#xff1a; 學習html規則 開發后臺程序&#xff1a…

opencv3.2.0 Cmake 3.8.0 + tdm-gcc-5.1.0-3

實測 tdm-gcc-5.1.0-3 tdm32-1 32位版本無法正確編譯Opencv 3.2.0 會遇到諸多編譯問題 解決辦法 使用tdm-gcc-5.1.0-2 tdm64-1 64位版本轉載于:https://www.cnblogs.com/fundou/p/6710209.html

什么是商品屬性

一、什么是商品屬性&#xff1a; Definition of Product Attributes A product attribute is a characteristic that defines a particular product and will affect a consumers purchase decision. Product attributes can be tangible (or physical in nature) or intangibl…

linux用戶管理(1)----創建用戶(adduser和useradd)和刪除用戶(userdel)

arm linux的系統用戶管理&#xff1a; 1、刪除root用戶&#xff1a;deluser root2、刪除tt用戶:deluser tt3、建立root用戶&#xff1a;adduser root4、修改用戶密碼&#xff1a;登錄相應的用戶后&#xff0c;用passwd來修改密碼4、linux用戶和密碼的管理&#xff08;ftp&#…

前端性能優化之圖像優化原理

前端性能優化中&#xff0c;圖像的優化是非常重要的一環&#xff0c;為什么要說圖像的優化呢&#xff0c;而不是我們常見的圖片優化&#xff1f;因為這里的圖像包括矢量圖和位圖&#xff0c;我們常說的圖片優化是指位圖的優化。這篇文章轉載至奇舞周刊&#xff0c;大佬總結的非…