數據庫複習

 SQL是Structured Query Language(結構化查詢語言)的縮寫。SQL是專爲數據庫而建立的操作命令集,是一種功能齊全的數據庫語言。在使用它時,只需要發出“做什麼”的命令,“怎麼做”是不用使用者考慮的
         SQL的語法組成
  DML( Data Manipulation Language數據操作語言)查詢、插入、刪除和修改數據庫中的數據;SELECT、INSERT、 UPDATE 、DELETE等;
DCL( Data Control Language數據控制語言用來控制存取許可、存取權限等;GRANT、REVOKE 等;
DDL( Data Definition Language數據定義語言)
用來建立數據庫、數據庫對象和定義其列
CREATE TABLE 、DROP TABLE、ALTER TABLE 等 
功能函數
日期函數、數學函數、字符函數、系統函數等
     創建數據庫
語法:create  database   數據庫名
敘述:創建一個具有指定名稱的數據庫。如果要創建的數據庫已經存在,或者沒有創建它的適當權限,則此語句失敗。
例:建立一個student庫。
 mysql> create database student;
     創建表
語法:create table 表名(
列名1  列類型  [<列的完整性約束>],
列名2  列類型  [<列的完整性約束>],
        ... ...   );
敘  述:在當前數據庫下新創建一個數據表。
列類型:表示該列的數據類型。
例:
建立一個表school,其由兩列組成,第一列屬性爲非空,並做爲主鍵,並自增
create table school(
  school_id  int(10) not null auto_increment primary key,
  school_name varchar(20) 
);
           CHAR和VARCHAR類型
  CHAR類型和VARCHAR類型長度範圍都是0~255之間的大小。他們之間的差別在於MySQL處理存儲的方式:
CHAR把這個大小視爲值的準確大小(用空格填補比較短的值)。
VARCHAR類型把它視爲最大值並且只使用了存儲字符串實際上需要的字節數(增加了一個額外的字節記錄長度)。因而,較短的值當被插入一個語句爲VARCHAR類型的字段時,將不會用空格填補(然而,較長的值仍然被截短 )。
             BLOB和TEXT類型
BLOB是二進制大對象,如果想存儲二進制數BLOB將是最佳選擇,而TEXT與之相同,只是BOLB按照二進制編碼排序(區分大小寫),TEXT按照字符文本模式排序(不區分大小寫)。
             ENUM 和SET類型
是特殊的串類型,其列值必須從固定的串集中選擇,二者差別爲前者必須是隻能選擇其中的一個值,而後者可以多選。(不推薦使用)
 
 
插入

語法:

       INSERT INTO 表名[(列名[,列名]...)]VALUES(值[,值]...);

注意事項:

       插入值類型必須與對應列的數據類型一致

       數據不能超出長度

       插入值得爲之必須與列名順序一致

       字符和日期數據要放在單引號中

       插入空值使用null

       如果不指定插入哪一列, 就是插入所有列

中文數據

       由於默認碼錶是utf8, 而cmd.exe的碼錶是gbk, 在插入中文數據的時候會報錯, 所以我們需要修改客戶端碼錶

       先查看系統變量: SHOWVARIABLES LIKE 'character%';

       修改客戶端碼錶: SETcharacter_set_client=gbk;

       這樣就解決了中文插入的問題, 但在查詢數據的時候仍然顯示爲亂碼, 這是因爲mysql向cmd傳輸數據的時候使用的是utf8

       修改輸出數據的碼錶: SETcharacter_set_results=gbk 

刪除

語法

       UPDATE 表名 SET 列名=值[,列名=值]...[WHERE條件語句];

注意事項

       WHERE子句選擇滿足條件的行進行更新, 如果不寫, 則更新所有行

語法

       DELETE FROM 表名 [where 條件語句]

注意事項

       如果不加where子句, 將刪除表中所有記錄

       delete只能用作刪除行, 不能刪除某一列的值, 需要用update

       在delete和update的時候需要注意表與表之間的關聯關係

       刪除表中所有數據可以使用: TRANCATE 表名, 這種方式會刪除舊錶重新創建, 在數據較多的時候使用

備份恢復數據庫

備份數據庫

       輸入quit退出mysql, 在cmd.exe中輸入:

mysqldump –u用戶名 –p密碼 數據庫名 > 文件名

恢復數據庫

       進入mysql.exe之後, 使用數據庫之後

       source 文件名

主鍵約束 primary key

通常我們在設計表的時候需要給每一條記錄一個獨有的標識, 我們就用主鍵來約束這個標識.

primary key用來標識一個字段, 這個字段是非空且唯一的.

 

創建表時設置主鍵

create table test2(

id int primary key,

name varchar(20)

);

 

刪除主鍵

alter table test2 dropprimary key;

 

在制定列上添加主鍵

alter table test2 changeid id int primary key;

alter table test2 addprimary key(id);

 

設置主鍵自動增長

create table test3(

id int primary key auto_increment,

name varchar(20)

);

 

刪除自增長

alter table test3 changeid id int;

 

設置自增長

alter table test3 changeid id int auto_increment;

 

UUID主鍵

128位的2進制, 32位16進制加上4個-

java.util.UUID.randomUUID().toString()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章