阅读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、二进制数据类型
二进制数据类型可存储任何数据(甚至包括二进制信息),如图像、多媒体、字处理文档等
二进制数据类型表: