SQL語言一共分爲4大類:數據定義語言DDL,數據操縱語言DML,數據查詢語言DQL,數據控制語言DCLmysql
對象: 數據庫和表sql
關鍵詞: create alter drop truncate(刪除當前表再新建一個如出一轍的表結構)數據庫
建立數據庫:create database school;函數
刪除數據庫:drop database school;對象
切換數據庫:use school;排序
建立表:create table student(事務
id int(4) primary key auto_increment,ip
name varchar(20),開發
score int(3)rem
);
查看數據庫裏存在的表:show tables;
注意:
varchar類型的長度是可變的,建立表時指定了最大長度,定義時,其最大值能夠取0-65535之間的任意值,但記錄在這個範圍內,使用多少分配多少,
varchar類型實際佔用空間爲字符串的實際長度加1。這樣,可有效節約系統空間。varchar是mysql的特有的數據類型。
char類型的長度是固定的,在建立表時就指定了,其長度能夠是0-255之間的任意值。雖然char佔用的空間比較大,但它的處理速度快。
修改表:alter table student rename (to) teacher;
alter table student add password varchar(20);
alter table student change password pwd varchar(20);
alter table student modify pwd int;
alter table student drop pwd;
刪除表:drop table student;
查看生成表的sql語句:show create table student;
查看錶結構:desc student;
對象:紀錄(行)
關鍵詞:insert update delete
插入:insert into student values(01,'tonbby',99); (插入全部的字段)
insert into student(id,name) values(01,'tonbby'); (插入指定的字段)
更新:update student set name = 'tonbby',score = '99' where id = 01;
刪除:delete from tonbby where id = 01;
注意:
開發中不多使用delete,刪除有物理刪除和邏輯刪除,其中邏輯刪除能夠經過給表添加一個字段(isDel),若值爲1,表明刪除;若值爲0,表明沒有刪除。
此時,對數據的刪除操做就變成了update操做了。
truncate和delete的區別:
truncate是刪除表,再從新建立這個表。屬於DDL,delete是一條一條刪除表中的數據,屬於DML。
select ... from student where 條件 group by 分組字段 having 條件 order by 排序字段
執行順序:from->where->group by->having->order by->select
注意:group by 一般和聚合函數(avg(),count()...)一塊兒使用 ,常常先使用group by關鍵字進行分組,而後再進行集合運算。
group by與having 一塊兒使用,能夠限制輸出的結果,只有知足條件表達式的結果纔會顯示。
having和where的區別:
二者起做用的地方不同,where做用於表或視圖,是表和視圖的查詢條件。having做用於分組後的記錄,用於選擇知足條件的組。
數據控制語言DCL用來授予或回收訪問數據庫的某種特權,並控制數據庫操縱事務發生的時間及效果,對數據庫實行監視,用戶,權限,事務等。
grant:受權,rollback:回滾。commit:提交。