1、基本概念
SQL语句可以分为DDL(数据定义语言)、DML(数据操纵语言)、DCL(数据控制语言),根据这三种语言的功能,在我看来,可以将它们看成是:
DCL(控制语言)——公司老板——它来确定项目是否通过,是否给予员工相应的权限
DDL(定义语言)——公司管理者——在工作过程中,由它来创建、删除项目,或者修改项目中的框架等
DML(操纵语言)——公司员工——在项目中的增删改查都将由它实现
2、数据类型
integer型:用于存储整数型的数据,不能存储小数;
char型:用于存储长字符串,但是当列中的数据不能达到最大长度的时候,会使用半角空格来进行补足,会浪费存储空间,所以更适合在字符串长度全部都一致的列中使用;
varchar型:用于存储长字符串,在当列中数据不能达到最大长度时,不会使用半角空格来进行补足,所以,与char相比更适用于字符串长度不一致的列中使用;
date型:用于存储日期形式的数据。
3、约束
not null:该列数据不能为空
primary key:该列为主键
default 0:该列初始值为0(其中0可以修改为其他数据)
4、数据库、表的创建,列的删除与添加,数据的插入、更新的基本语法
(1)数据的建立
create database <数据库名称>;
(2)表的创建
create table <表名>
(<列名1> <数据类型> <该列所需约束>,
<列名2> <数据类型> <该列所需约束>,
<列名3> <数据类型> <该列所需约束>,
...
<该表的约束1>,<该表的约束2>,...);
(3)表的删除
drop table <表名>;
注:删除的表是无法恢复的,只能重新插入。
(4)添加列的alter table语句
alter table <表名> add column <列的定义>;
例如:
alter table product add column product_name_pinyin varchar(100);
(5)删除列的alter table语句
alter table <表名> drop <列名>;
注:alter table语句与drop table语句一样,执行之后无法恢复。
(6)清空表的内容
truncate table table_name;
优点:与drop/delete相比,truncate用来清除数据的速度更快
(7)数据更新
update <表名>
set <列名> = <表达式>
where <条件>
order by子句
limit子句
注:其中where条件非常重要,在没有where条件的情况下,会对所有的列按照语句进行修改。order by与limit子句为可选项。当有多条update语句时,存在where条件相同的情况时,可以将多条update语句相合并。而且update也可以将列更新为null(当然该列必须为没有not null约束)。
(8)插入数据
insert into <表名> (列1,列2,...) values(值1,值2,...);
注:对全列进行插入数据时,可省略表名后的列名。