那麼這裏下面既是對上面幾個概念進行基本的平常操做。mysql
這裏僅僅只介紹經常使用的兩種引擎,而InnoDB是從MySQL 5.6.版本之後InnoDB就是做爲默認啓動使用的存儲引擎。web
(1) InnoDB a,支持ACID,簡單地說就是支持事務完整性、一致性; b,支持行鎖,以及相似ORACLE的一致性讀,多用戶併發; c,獨有的彙集索引主鍵設計方式,可大幅提高併發讀寫性能; d,支持外鍵; e,支持崩潰數據自修復; InnoDB設計目標是處理大容量數據庫系統,它的CPU利用率是其它基於磁盤的關係數據庫引擎所不能比的。 它是一個可靠地事務處理引擎,不支持全文本搜索 (2) MyISAM a,不支持 每次查詢具備原子性 b,只支持表所 c,強調的是性能,其執行數 度比InnoDB類型更快,可是不提供事務支持 d,若是執行大量的SELECT,MyISAM是更好的選擇 e,缺點:就是不能在表損壞後恢復數據。(是不能主動恢復)
既然知道了這倆種引擎的優缺點,那麼寫一下幾個經常使用的API操做。sql
show engines; --顯示全部可用的引擎 show table status from myDB; --查看myDB數據庫下的全部表使用的引擎 show create table 表名; --指定查看錶名的全部段名以及引擎 create table 表名(id int primary key, name varchar(50)) engine=MyISAM; --建表的時候指定引擎 alter table 表名 Engine= MyISAM; --建完表後修改引擎爲MyISAM
固然,也能夠經過修改配置文件my.ini
在[mysqld]最後添加爲上default-storage-engine=InnoDB,重啓服務,數據庫默認的引擎修改成InnoDB。shell
>net start mysql //啓動數據庫和中止net stop mysql >mysql -u root -p //默認登錄本機(-h是主機地址) >SELECT USER(); //顯示當前用戶 >create database 數據庫名; //建立數據庫 >SELECT DATABASE(); //顯示當前使用數據庫 >SHOW DATABASES //顯示全部數據庫列表 >USE DATABASE 庫名; //使用該數據庫 >DROP DATABASE 庫名 //刪除數據庫 >CMD終端:mysqladmin -u用戶名 -p舊密碼 password 新密碼 //修改密碼 >mysql語句:set password for 用戶名@localhost = password('新密碼');
>SHOW TABLES; //列出庫中全部的表 >DESCRIBE table1; //查看錶結構 >show columns from 數據表; //顯示錶的全部段名以及類型 >CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1)); //增長數據表和字段名 >DROP TABLE 表名; //刪除表 >alter table stu rename as students; //將舊代表stu改成新代表students。
語法:ALTER TABLE 表名 ADD COLUMN 字段名 字段類型 DEFAULT NULL; 示例:ALTER TABLE dictionary ADD COLUMN calss VARCHAR(10) DEFAULT NULL; -- dictionary是表名
語法:ALTER TABLE 表名 CHANGE 舊字段名 新字段名 新字段類型 DEFAULT NULL; 示例:ALTER TABLE dictionary CHANGE calss class VARCHAR(10) DEFAULT NULL;
語法:ALTER TABLE 表名 DROP COLUMN 字段名 示例:ALTER TABLE dictionary DROP COLUMN calss;
bagin; //事務開始 alter table em_day_data add f_day_house7 int(11); alter table em_day_data add f_day_house8 int(11); alter table em_day_data add f_day_house9 int(11); alter table em_day_data add f_day_house10 int(11); commit; //提交事務,事務結束
MySQL語句忽略大小寫的。每張數據表只能存在一個主鍵。數據庫
Tip: 因爲數據表的首個字段名(就是主鍵,假如是id)是不能重複命名的(建議使用id,由於每張表只能存在一個主鍵),因此建議刪除的時候使用(where id=1)鍵名來定位匹配更好。服務器
var sql = 'SELECT * FROM websites'; --查詢整個websites表全部數據 var sql = 'SELECT name FROM websites'; --查詢整個websites表name字段數據
-- websites表必須存在(Id,name,url,alexa,country)這些字段名 var addSql = 'INSERT INTO websites(Id,name,url,alexa,country) VALUES(2,"taobao","http://wwww.taobao.com","3","CN")'; insert into table1(id,name,url,country) values(6,"lucas","https://wwww.lucas.com","CN");
-- where是定位到上面的增長數據(可使用任何"字段名=值"來匹配),並更改倆個數據 var modSql = 'UPDATE websites SET name = "facebook",url = "http://www.facebook.com" WHERE Id = 2'; var modSql = 'update websites SET alexa="12" where name="taobao"'; --定位name字段爲taobao並更新了alexa字段的值
var delSql = 'DELETE FROM websites where id=2'; -- 刪除id=2的數據(固然) -- 刪除name=lucas的數據(建議使用id,由於每張表只能存在一個主鍵),由於他會將表中全部name=lucas的值所有刪除 delete from websites where name="lucas";