SQL語言的簡介以及DDL語句
一. SQL語言的簡介
-
什么是SQL?
- SQL: 全文structured query language: 結(jié)構(gòu)化查詢語言
- SQL: 是一種對關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行定義和操作的語言
- 語法簡介, 易學(xué)易用
-
SQL語句
- SQL也是一種語言, 用SQL語言編寫代碼, 稱為SQL語句
- 在程序運(yùn)行過程中, 如果要進(jìn)行
CRUD-增刪改查, 操作數(shù)據(jù)庫中的數(shù)據(jù), 就必須通過SQL語句來操作 - CRUD: Create, Retrive, Update, Delete
-
SQL語句的特點(diǎn):
- 不區(qū)分大小寫: 即test和TEST是一樣的效果
- 語句必須以
分號;作為結(jié)尾
-
SQL語句的種類
- 數(shù)據(jù)定義語句(DDL: Data Definition Language)
- create, drop, Alert等操作
- 主要用于數(shù)據(jù)庫中
創(chuàng)建和刪除表格
- 數(shù)據(jù)操作語句(DML: Data Manipulation Language)
- insert, delete, update等操作
- 主要用于
添加, 修改, 刪除表中的數(shù)據(jù)
- 數(shù)據(jù)查詢語句(DQL: Data Query Language)
- 可以用于查詢并獲得表中的數(shù)據(jù)
- 關(guān)鍵字
select是DQL使用的最核心語句 - 一些其他的語句: where, order by, group by 和 having等等
- 數(shù)據(jù)定義語句(DDL: Data Definition Language)
-
參考網(wǎng)站
http://www.phpstudy.net/e/sql/sql_intro.html
二. DDL語句(Navicat上面的操作)
-
新建查詢
- 查詢是用來使用SQL語句, 然后反應(yīng)出效果的工具
-
創(chuàng)建表: creat
- 格式:
create table 表名(字段名1 字段類型1, 字段名2 字段類型2....)
- 一些注意點(diǎn)
- SQLite實(shí)際上是無類型的
- 就算將字段聲明為integer, 也能存儲text等樣式的字段(主鍵除外)
- 建表時(shí)可以不聲明類型, 但是為了可讀性, 建表時(shí)一定要為每一個(gè)字段添加屬性
- 語句優(yōu)化
- 創(chuàng)建表格時(shí), 最好判斷一下要創(chuàng)建的表格是否已經(jīng)存在, 避免重復(fù)創(chuàng)建出現(xiàn)問題
Error : table T_human already exists - 格式為:
create table if not exisist 表名(字段名 字段類型....)
- 創(chuàng)建表格時(shí), 最好判斷一下要創(chuàng)建的表格是否已經(jīng)存在, 避免重復(fù)創(chuàng)建出現(xiàn)問題
- SQLite實(shí)際上是無類型的
- 格式:
-
刪除表: drop
- 格式:
drop table if exsist 表名(為了避免執(zhí)行刪除一個(gè)不存在的表, 所以要加上優(yōu)化語句)
- 格式:
-
修改表: alert
- 注意: sqlite里面只能實(shí)現(xiàn)alert table的部分功能
- 修改表名格式:
alert table 舊表名 rename to 新表名 - 新增屬性格式:
alert table 表名 add column 列名 數(shù)據(jù)類型 限定符
三 DDL的約束
-
簡單約束
- 簡單約束, 是指給每一列的屬性, 指定一個(gè)約束標(biāo)識符, 用以約束這個(gè)屬性的值存入
- 簡單約束有三個(gè)類型
- not null: 不能為空, 規(guī)定這個(gè)字段的值不能為null
- unique: 不能重復(fù), 規(guī)定這個(gè)字段的值, 必須是唯一的
- default: 默認(rèn)值, 指定字段的默認(rèn)值
-
主鍵約束
- 我們在建表時(shí), 最需要設(shè)置的約束就是主鍵約束
- 如果在一張表格中, 兩條數(shù)據(jù)的值都相同, 這時(shí)我們就無法區(qū)分這兩條數(shù)據(jù), 而此時(shí)就需要添加主鍵約束
- 良好的數(shù)據(jù)庫編程規(guī)范應(yīng)該要保證每一條記錄的唯一性, 為此就需要添加主鍵約束
- 因此, 每張表格都必須有一個(gè)主鍵, 用來標(biāo)識唯一一條數(shù)據(jù)
- 主鍵: Primary Key, 用來唯一的標(biāo)識某一條記錄: 如給一條記錄增加一個(gè)名為id的主鍵
- 主鍵可以是一個(gè)或多個(gè)字段
- 主鍵應(yīng)該是對用戶沒有任何意義的
- 永遠(yuǎn)不要手動更新主鍵
- 主鍵不能包含動態(tài)變化的數(shù)據(jù)
- 主鍵應(yīng)該由計(jì)算機(jī)自動生成
- 主鍵的聲明
- 在創(chuàng)建表格的時(shí)候, 使用
primary key來聲明一個(gè)主鍵, 如下:create table if not exists T_Person (id interger primary key, name text, age integer)- 這里我們使用了數(shù)據(jù)類型為integer的id作為主鍵
- 主鍵字段
- 只要聲明一個(gè)字段為
primary key, 就說明這是一個(gè)主鍵字段 - 主鍵字段默認(rèn)就包含了
not null和unique兩個(gè)約束
- 只要聲明一個(gè)字段為
- 如果要讓主鍵自動增長, 應(yīng)該增加
autoincrement聲明, 如下:create table if not exists T_Person(id integer primary key autoincrement, name text, age integer)
- 在創(chuàng)建表格的時(shí)候, 使用
- 我們在建表時(shí), 最需要設(shè)置的約束就是主鍵約束