1. 程式人生 > 其它 >14 CRDS 資源詳解(轉載)

14 CRDS 資源詳解(轉載)

SQL

 Structured Query Language
 結構化的查詢語言
 
 熟練使用MySQL,Oracle,SQLServer主流資料庫之一
 
 SQL規範
 SQL方言
 
 SQL分類
  DDL 資料定義語言 Data Definition Language
  物件建立create,刪除drop,修改alter
  DCL 資料控制語言 Data Control Language
  許可權 grant revoke deny
  DML 資料操作語言 Data Manipulation Language
  資料的增insert刪delete改update
  DQL 資料查詢語言 Data Query Language
  資料的查詢select
  DTL 資料事務語言 Data Transaction Language
  commit
  rollback
 
 SQL語句不分大小寫,MySQL官方推薦大寫。
 我們寫小寫。

建立資料庫

 -- 切換資料庫
 use 資料庫名;
 
 -- 當前伺服器的所有資料庫
 show databases;
 
 -- 當前伺服器的所有表
 shwo tables;
 
 
 -- 單行註釋
 #單行註釋
 /*
 多行註釋
 多行註釋
 */
 -- 建立資料庫
 CREATE DATABASE IF NOT EXISTS db2;
 
 -- 刪除資料庫
 DROP DATABASE IF EXISTS db2;

建立表

 設計一張表有多少列,每列的名字和對應的資料型別
  int
  flaot
  double
  decemal
  date 日期
  time 時間
  datetime 日期時間
  char(50)
  固定長度字串:該列的實際長度沒有到達設計時候的最大長度,實際佔用的儲存空間也是50個
  varchar(50)
  可變長度字串:該列的實際長度沒有到達設計時候的最大長度,實際佔用的儲存空間就是真實長度
 
 
  11手機號碼 char(11)用這種
  郵箱 varchar(50) 用這種
 
 
 建立約束
  主鍵
  唯一鍵
  非空
  自動增長
  預設值
  外來鍵
  檢查約束

主鍵

 任何一張表必須有主鍵
 
 主鍵是一行資料的唯一標誌
 
 主鍵必須非空
 
 一個表只能有一個
 
 主鍵的選擇策略:
  選擇不重複的列
  單列
  複合主鍵:多列資料組合,沒有重複,共同做主鍵。影響查詢效能,不推薦使用
 
  新增一個列:讓同充當主鍵
  業務邏輯規定
  學院編號-系編號-年級-班

自動增長

 配合主鍵使用
 
 自增的資料是底層自動維護,刪除資料,再新增,不能保證自增資料連續

非空

 not null 必填
 null 可選

唯一約束

 該列資料不能重複
 唯一約束可以有多個
 唯一約束可以為null
 
 常見的列
  登入名 手機號碼 郵箱

預設值

 設定了預設值約束,輸入資料的時候該列沒有輸入,自動使用預設值填充

檢查約束

 MySQL不支援

外來鍵

 關係型資料庫:表和表之間有關係
 
 冗餘:大量重複資料
 
 解決冗餘:
  拆表
 
 子表外來鍵引用主表的主鍵或者唯一鍵

使用SQL建表和約束

 CREATE TABLE student(
 id INT PRIMARY KEY AUTO_INCREMENT,
 NAME VARCHAR(10) NOT NULL,
 loginname VARCHAR(10) UNIQUE,
 age INT NOT NULL,
 address VARCHAR(50) DEFAULT 'cd'
 )
 
 
 
 CREATE TABLE dep(
 did INT PRIMARY KEY,
 dname VARCHAR(10)
 );
 
 CREATE TABLE emp(
 eid INT PRIMARY KEY,
 ename VARCHAR(10),
 did INT ,
 -- CONSTRAINT 外來鍵名 FOREIGN KEY(外來鍵類名) FOREIGN KEY 主表(主鍵)
 CONSTRAINT fk_emp_dep_did FOREIGN KEY(did) REFERENCES dep(did)
 );
 
 -- 刪除外來鍵
 ALTER TABLE emp DROP FOREIGN KEY fk_emp_dep_did;
 
 -- 建立表以後,建立外來鍵約束
 ALTER TABLE emp
 ADD CONSTRAINT fk_emp_dep_did FOREIGN KEY(did) REFERENCES dep(did)