標籤:charset ade win unix 除了 .net account ram 財務
Mysql01
MySql01資料庫簡介
資料庫簡介
之前使用的流操作把資料存放區到txt文檔上,對於修改/插入等,首先代碼繁瑣,對於查詢操作效率極低,另外,如果資料很大,不可能長期儲存在檔案中. 為瞭解決上述問題,我們需要使用資料庫
- DB:檔案倉庫
DBMS:資料庫的管理軟體
資料庫的分類
主流關係型資料庫
Oracle 甲骨文 拉裡.艾力森 收費 核 閉源 賣產品
DB2 IBM,應用於大型系統,UNIX/linux,是oracle的主要競爭者
SQL Server 微軟 只能在windows下運行 .net(C#)
Mysql 免費 開源 賣服務
2008被sun收購,除了5.1版本
2010年sun超過2000億,被oracle74億收購
Mysql牛X程式員,要求Mysql不能閉源,oracle口頭答應,沒簽合約
mysql除了5.5版本,使用了oracle的核心技術,效能提升了15%-30%
mysql威脅到了oracle市場,導致5.5版本閉源收費
Mysql牛X程式員,mariadb
mysql免費開源社區,支援mariadb
mysql5.5 mariadb5.5 mysql5.6 mariadb10.0
SQL基本操作
SQL語言是操作資料庫的語言 每一種資料都有自己獨特的方言
linux 開啟終端 輸入 mysql -u root -p斷行符號 password:(有密碼就輸入密碼斷行符號,沒密碼就直接斷行符號)
mysql的引擎有兩種ENGINE=
- InnoDB - 支援資料庫進階功能 - 事務 - 外鍵 - myisam - 資料存放區準系統 - 效率非常高
-- 課堂練習
create table user( name varchar(16), age int)engine=innodb charset=gbk;- **對已經建立好的表進行修改** 1. 修改表名 - rename table 舊錶名 to 新表名 - rename table user to tb_user; 2. 修改表屬性(引擎,字元編碼) - alter table 表名 engine=myisam charset=utf8; - alter table tb_user engine=myisam charset=utf8; 3. 添加欄位 - alter table 表名 add 新欄位 新欄位的資料類型 新欄位的約束 first; - alter table tb_user add id int first; - alter table tb_user add( gender char(5), tel char(11) ); 4. 修改欄位名稱 - alter table 表名 change 舊欄位名 新欄位名 新欄位資料類型; - alter table tb_user change gender sex varchar(10); 5. 改資料類型 - 刪除某一個欄位,再添加一個新的 - 使用命令關鍵字直接修改 - alter table 表名 modify 欄位名 欄位新類型 - alter table tb_user modify tel varchar(11); 6. 修改列的順序 - alter table 表名 modify 目標列名 目標列資料類型 after 某一列列名 - alter table tb_user modify tel varchar(11) after age; - 小練習,把sex 放到age欄位的前面 - alter table tb_user modify sex varchar(10) after name; 7. 刪除列 - alter table 表名 drop 列名 - alter table tb_user drop sex;- **刪除表** - drop table 表名; - DROP TABLE TB_USER;- **課堂練習1** -- 建立員工表emp create table emp( //員工表 empno int(4), //工號 ename varchar(10),//姓名 job varchar(10), //工種 mgr int(4), //上級領導的工號 hiredate date, //入職時間 sal double(7,2), //工資 comm double(7,2), //獎金 deptno int(4) //所屬部門編號 ); create table dept( //部門表 deptno int(4), //部門編號 dname varchar(14),//部門名稱 loc varchar(13) //部門辦公所在地 );
DML--對錶中資料做操作的語句INSERT語句
- insert into 表名 (列名1,列名2,...) values (值1,值2,...);insert into emp(empno,ename,job,sal) values (1001,‘lily‘,‘programmer‘,5500);insert into emp(empno,ename,job,sal) values (1001,"lily","programmer",5500);insert into emp(empno,ename,hiredate) values (1002,‘simth‘,‘18-01-24‘);
UPDATE語句
- update 表名 set 欄位名=值 where 列名=值;- update emp set ename=‘lucy‘ where empno=1001;- 1.把叫simth的員工的入職時間改為17年10月12日 update emp set hiredate="17-10-12" where ename="simth";- 2.插入新員工lilei,工號1003,工資3000,獎金5000,上級領導編號1002 insert into emp(empno,ename,sal,comm,mgr) values(1003,‘lilei‘,3000,5000,1002);- 3.插入新員工zhangsanfeng,工號1004,上級領導編號1001,工資8000,獎金1000 - 修改欄位類型 alter table emp modify ename varchar(20); insert into emp(empno,ename,mgr,sal,comm) values(1004,‘zhangsanfeng‘,1001,8000,1000);- 4.插入新員工liuchuanfeng,工號1005,上級領導1004,入職時間18年01月22日,工資800,獎金2000- 5.修改zhangsanfeng的工資,修改為8500- 6.修改lilei的獎金,修改為2000- 7.修改liuchuanfeng的上級領導為1001,工資為3000 update emp set mgr=1001,sal=3000 where ename=‘liuchuanfeng‘
DELETE語句
- delete from 表名 where 條件- delete from emp where job is null;
select * from 表名DDL--是對錶本身操作的語句TRUNCATE語句
- truncate刪除表內容的原理 先把整張表刪除,然後重新建立一個表結構一模一樣的空表truncate table 表名truncate table emp;
DDL不支援事務,運行後馬上執行,不能復原DML支援事務作業
1.把上課所有的代碼重新敲一遍
練習1:
- 建立員工表emp 2.建立部門表dept;
練習2:
- 給dept表插入4條資料 10,‘ACCOUNTING‘,‘NEW YORK‘ --財務部 紐約 20,‘RESEARCH‘,‘DALLAS‘ --研究部 達拉斯市 30,‘SALES‘,‘CHICAGO‘ --銷售部 芝加哥 40,‘OPERATIONS‘,‘BOSTON‘ --運營部 波士頓
練習3:
- 建立 mydb 資料庫,使用 utf8 編碼
建立 t_item 商品表
在 t_item 表插入商品資料 7,‘蘋果‘,iphone X 9999 now()
- 修改 id 是7的商品,修改庫存量為20
- 刪除商品 7
insert into emp values (1001,‘hanmeimei‘,‘sal‘,1001,now(),3000,5000);
Mysql第一天詳解