MySQL數(shù)據(jù)操作管理示例詳解
一、查看表和查看表的定義
SHOW TABLE 表名 DESC 表名; DESCRIBE 表名
二、刪除表
DROP TABLE [IF EXISTS ] 表名;
如果表USER存在,刪除表USER
DROP TABLE IF EXISTS USER;
三、創(chuàng)建表
CREATE TABLE [ IF NOT EXISTS ] `表名` ( `字段名1` 列類型 [ 字段屬性 | 約束] [ 索引 ] [注釋] , `字段名2` 列類型 [ 字段屬性 | 約束] [ 索引 ] [注釋] , … … `字段名n` 列類型 [字段屬性 | 約束] [ 索引 ] [注釋] ) [ 表類型 ] [ 表字符集 ] [注釋] ;
四、表類型
使用MyISAM: 節(jié)約空間及相應(yīng)速度,適合以訪問為主的應(yīng)用。
使用InnoDB: 安全性,事務(wù)處理及多用戶操作數(shù)據(jù)表。
五、修改表
//修改表名 ALTER TABLE 舊表名 RENAME AS 新表名 //添加字段 ALTER TABLE 表名 ADD 字段名 列類型 [ 屬性 ] // 修改列的數(shù)據(jù)類型 ALTER TABLE 表名 MODIFY 字段名 列類型 [ 屬性 ] //修改列的數(shù)據(jù)類型及名稱 ALTER TABLE 表名 CHANGE 舊字段名 新字段名 列類型 [ 屬性 ] //刪除字段 ALTER TABLE 表名 DROP 字段名
六、完整性
數(shù)據(jù)完整性 = 數(shù)據(jù)的精確性 + 數(shù)據(jù)的可靠性
1、數(shù)據(jù)完整性
1.實體完整性
保證表中所有的行唯一
2.域完整性
數(shù)據(jù)庫表中的列必須滿足某種特定的數(shù)據(jù)類型或約束 取值范圍 精度
3.引用完整性
保證主關(guān)鍵字 //被引用表 \ 和外部關(guān)鍵字 //引用表\ 之間的參照關(guān)系
涉及兩個或兩個以上表數(shù)據(jù)的一致性維護
2、使用約束實現(xiàn)數(shù)據(jù)完整性
3、在數(shù)據(jù)表上添加約束
//設(shè)置唯一約束 ALTER TABLE 表名 ADD CONSTRAINT 約束名 UNIQUE(列名); //主鍵 //如果兩列或多列組合起來唯一地標識表中的每個行,則該主鍵叫做“復(fù)合主鍵” ALTER TABLE 表名 ADD CONSTRAINT 約束名 PRIMARY KEY(列名1,列名2,…列名n); //設(shè)置外鍵約束 ALTER TABLE 從表名 ADD CONSTRAINT 約束名 FOREIGN KEY(從表的列名) REFERENCES 主表名(主表的列名)
設(shè)置外鍵約束的注意事項:
1.主表中的字段必須為主鍵。
2.從表中的外鍵列和主表中的主鍵列的數(shù)據(jù)類型要保持一致,和字段名無關(guān)。
3.主表和從表的表類型為InnoDB。
4、刪除約束
//刪除主鍵約束 ALTER TABLE 表名 DROP PRIMARY KEY; //刪除唯一約束 ALTER TABLE 表名 DROP KEY 唯一約束名; //刪除外鍵約束 ALTER TABLE 表名 DROP FOREIGN KEY 外鍵約束名;
七、添加數(shù)據(jù)
//插入單行數(shù)據(jù) INSERT INTO 表名 [ ( 字段1, 字段2, 字段3, … ) ] VALUES ( 值1, 值2, 值3, …); //插入多行數(shù)據(jù) INSERT INTO 表名 [ ( 字段1, 字段2, 字段3, … ) ] VALUES ( 值1, 值2, 值3, …),( 值1, 值2, 值3, …),…; //將查詢結(jié)果插入到新表中 CREATE TABLE 新表名 ( SELECT 字段1, 字段2, 字段3, … FROM 原表)
八、修改數(shù)據(jù)
UPDATE 表名 SET column_name = value [ , column_name2 = value2, …. ] [ WHERE condition ]; //1.column_name 為要更改的字段名。 //2.value 為修改后的數(shù)據(jù),可以為變量、具體值、表達式或者嵌套的SELECT結(jié)果。 //3.多個字段之間用逗號隔開。 //4.提供的修改數(shù)據(jù)必須符合數(shù)據(jù)完整性的要求。 //5.condition為篩選條件,如不指定則修改該表的所有列數(shù)據(jù)。
九、刪除數(shù)據(jù)
DELETE FROM 表名 [ WHERE condition ]; //1.DELETE語句刪除的是整條記錄,不會只刪除單個列。 //2.condition為篩選條件,如不指定則修改該表的所有列數(shù)據(jù)。
TRUNCATE TABLE 表名; //1.TRUNCATE TABLE 刪除表中所有的行。 //2.TRUNCATE TABLE不能用于有外鍵約束引用的表。 //3.同時刪除MySQL內(nèi)的計數(shù)器,即自動增加的計數(shù)器
十、SQL語句中的運算符
算數(shù)運算符
比較運算符
邏輯運算符
到此這篇關(guān)于MySQL數(shù)據(jù)操作管理示例詳解的文章就介紹到這了,更多相關(guān)MySQL數(shù)據(jù)操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL中日期和時間戳互相轉(zhuǎn)換的函數(shù)和方法
這篇文章主要介紹了MySQL中日期和時間戳互相轉(zhuǎn)換的函數(shù)和方法,本文分別講解了時間戳轉(zhuǎn)換成日期的方法和把日期轉(zhuǎn)換為時間戳的方法,需要的朋友可以參考下2015-06-06MySQL錯誤“Specified key was too long; max key length is 1000 b
今天在為數(shù)據(jù)庫中的某兩個字段設(shè)置unique索引的時候,出現(xiàn)了Specified key was too long; max key length is 1000 bytes錯誤2010-08-086G數(shù)據(jù)庫的導(dǎo)入 報各種錯誤的解決辦法
今天看到一高人的mysql數(shù)據(jù)庫達到了6G左右,導(dǎo)入都是個問題,上傳也挺麻煩的,這里特分享下,方便需要的朋友2013-01-01mysql下為數(shù)據(jù)庫設(shè)置交叉權(quán)限的方法
由于 SupeSite 需要調(diào)用 Discuz! 和 UCHome 的數(shù)據(jù),所以如果它們不安裝在同一個數(shù)據(jù)庫,SupeSite 的數(shù)據(jù)庫用戶必須要對 Discuz! 和 UCHome 的數(shù)據(jù)庫有讀取、修改、刪除等權(quán)限。2011-07-07