MySQL入門(終結)- 常用語句簡單總結

MYSQL簡單總結

SQL的分類

數據查詢語言(DQL - data querylanguage):select(針對表中數據)

數據操縱語言(DML - datamanipulation language):insert、delete、update(針對表中數據)

數據定義語言(DDL - data definitionlanguage):create、drop、alter(針對表的結構)

事務控制語言(TCL - transactionalcontrol language):commit、rollback

數據控制語言(DCL - data controllanguage):grant、revoke

 

數據類型

- varchar

* 可變長度字符串:根據實際長度動態分配儲存空間

* varchar(3)表示存儲的數據不能超過3個字符長度

- char

* 定長字符串:不用判斷,效率高

* varchar和char相比:

- 都是字符串類型

- varchar比較只能,可以根據實際數據長度分配空間,比較節省空間,但是在分配的時候需要執行相關的判斷程序,效率較低

- char不需要動態分配空間,所以執行效率很高,但是可能會導致空間浪費。

- 若字段中數據不具備伸縮性,如性別,建議採用char類型存儲

- 若字段數據具備很強伸縮性,建議採用varchar類型存儲

* char(3) 表示存儲的數據不能超過3個字符長度

- int

* 整數型

* int(3)表示最大可以存儲999

- bigint

* 長整型

* 對應java程序中的long類型

- float

* 浮點型單精度

- double

* 浮點型雙精度

* double(7,2),表示7個有效數字,兩個小數位

- date

* 日期類型

* 在實際開發中爲了通用,所以日期類型一般不使用,一般採用字符代替

- blob

* Binary LargeObject  二進制大對象

* 專門存儲圖片、聲音、視頻等數據

* 數據庫表中存儲一個圖片是很常見的,但是存儲一個比較大的時間是很少的,一般都是提供一個視頻的鏈接地址

- clob

* CharacterLarge Object  字符大對象

* 可以存儲比較大的文本,4G+的字符串可以被儲存

- 其他...

 

DQL

格式:SELECT <變量名> FROM <表名> WHERE <條件> GROUP BY <變量名> HAVING <條件> ORDER BY <變量名> limit a,b; a,b爲數字

select ename from emo where ename = trim(‘  SMITH  ‘);

select empno,ename,sal from emp where sal between 3000 and 5000;

select ename,sal fromemp where sal not in (1500,5000);

select job,avg(sal)from emp group by job having avg(sal)> 1500;

select ename,salfrom emp order by sal desc limit 2,7;

 

分組函數:count、sum、avg、max、min

分組函數不能直接使用在where語句中

select sal from emp where sal > avg(sal)

select sum(sal) from emp;

select avg(sal) from emp;

select max(sal) from emp;

select min(sal) from emp;

select count(ename) from emp; (count(字段),當前該字段不爲null的計數)

select count(*) from emp;【14個】

select count(*) from emp where comm is null;【10個】(count(*)是滿足某個條件的計數)

 

簡單語句

show tables; 查看錶格

desc dept;查看錶結構

show databases;查看所有database

show tables from world; 查看其它庫的表

show create table city;查看建表語句

select database();查看當前所使用數據庫名稱

select version();查看版本

 

創建數據庫

create database bjpowernode;

use database bjpowernode;

drop database bjpowernode;

 

連接

select e1.ename empname,e2.enameleadername,from emp e1 inner join emp e2 on e1.mgr = e2.empno;

select e.ename,d.dnamefrom emp e right join dept d on e.deptno= d.deptno;

select e.ename,d.dnamefrom dept d left join emp e on e.deptno= d.deptno

 
創建表格

drop table if exists t_user;

create table t_user(

           idint(10),

           namevarchar(32) not null,

           emailvarchar(128),

           constraint t_user_email_unique unique(email),

           constraint t_user_id_pk primary key(id) auto_increment

);

 

增刪改表的數據

insert into t_student(no) values(1);

update t_student set name = 'zhangsan'where no = 3;

delete from t_student where no = 3;

 

增刪改表的結構

ALTER TABLE t_student ADD tel VARCHAR(10);

ALTER TABLE t_student DROP tel;

ALTER TABLE t_student MODIFY tel VARCHAR(20);

 

事務的四個特徵(ACID)

    -原子性(A)

       *事務是最小的工作單元,不可再分

    -一致性(C)

       *事務要求所有的DML語句操作的時候,必須同時成功或者同時失敗

    -隔離性(I)

       *事務A和事務B之間具有隔離

    -持久性(D)

       *是事務的保證,事務終結的標誌。【內存中的數據持久到硬盤文件中】

 

關於事務的術語【不是SQL語句】

    -開啓事務: start transaction

    -結束事務: end transaction

    -提交事務: commit transaction

    -回滾事務: rollback transaction

 

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