閱讀MySQL語法時,需要注意的規則:
①符號用來指出幾個選擇中的一個,比如:null | not null表示或者給出null或者給出not null;
②包含在方括號中的關鍵字或子句(如[like this])是可選的;
③既沒有列出所有的MySQL語句,也沒有列出每一條子句和選項。
一、常用語法
1、alter table:更新已存在表的模式
alter table tablename
( add column datatype [null | not null] [constarints],
change column columns datatype [null | not null] [contarints].
drop column,);
2、commit:將事務處理寫到數據庫
commit;
3、create index:在一個或多個列上創建索引
create index indexname on tablename (column [asc | desc],...);
4、create procedure:創建存儲過程
create procedure procedurename( [parameters] ) begin ...... end;
5、create table:創建新數據庫表
create table tablename
( column datatype [null | not null] [constraints],
column datatype [null | not null] [constraints],
......);
6、create user:向系統中添加新的用戶賬戶
create user username[@hostname]
[identified by [passwrod] 'password'];
7、create view:創建一個或多個表上的新視圖
create [or replace] view viewname as select ...;
8、delete:從表中刪除一行或多行
delete from tablename [where ...];
9、drop:永久刪除數據庫對象(表、視圖、索引等)
drop database | index | procedure | table | trigger | user | view itemname;
10、insert:給表增加一行
insert into tablename [(columns,...)] values(values,...)
11、insert select:插入select結果到一個表
insert into tablename[(columns,...)]
select columns,... from tablename,...
[where ...];
12、rollback:撤銷一個事務處理塊
rollback [ to saveprointname];
13、savepoint:為使用rollback語句設立保留點
savepoint sql;
14、select:從一個或多個表(視圖)中檢索數據
select columnname,... from tablename,...
[where ...]
[union ...]
[group by ...]
[having ...]
[order by ...]
15、start transaction:一個新的事務處理塊的開始
start transaction;
16、update:更新表中的一行或多行
uptable tablename set columname = value, ... [where ...];
二、數據類型
數據類型:定義列中可以存儲什么數據以及該數據實際怎樣存儲的基本規則,其用於以下幾個目的:
①允許限制可存儲在列中的數據
②允許在內部更有效的存儲數據
③允許變換排序順序(作為數值數據類型,數值才能正確排序)
1、串數據類型
該類型為最常用的數據類型,用來存儲串(比如名字、地址等);有兩種串類型,分別是定長串和變長串
定長串:接受長度固定的字符串,其長度實在創建表時指定的;定長列不允許多余指定的字符數目,它們分配的存儲空間與指定的一樣多(比如char)
變長串:存儲可變長度的文本,有些變長數據類型具有最大定長,有些是完全變長的,不論哪種,指定的數據得到保存即可(靈活)
PS:MySQL處理定長列比變長列快速的很多,且MySQL不許雲對變長列(或一個列的可變部分)進行索引
串數據類型表:

PS:①不管是用任何形式的串數據類型,串值都必須括在引號內(通常使用單引號)
②如果數值是計算(求和平均等)中使用的數值,應存儲在數值數據類型列中;如果作為字符串(可能只包含數字)使用,則應保存在串數據類型列中;
2、數值數據類型
數值數據類型存儲數值,MySQL支持多種數值數據類型,每種存儲的數值具有不同的取值范圍;
數值數據類型表:

PS:所有數值數據類型(除bit和bollean)都可以有符號或者無符號,有符號數值列可以存儲正或負的數值,無符號數值列只能存儲正數,默認情況為有符號(與串不同,數值不應該在括號內)
3、日期和時間數據類型
日期和時間數據類型表:

4、二進制數據類型
二進制數據類型可存儲任何數據(甚至包括二進制信息),如圖像、多媒體、字處理文檔等
二進制數據類型表:

