SQL是为操作数据库而开发的语言
1.SQL语句及种类
SQL语句可以分为以下三类
- DDL(Data Definition Language,数据定义语言)用来创建或者删除存储数据用的数据库以及数据库中的表等对象。DDL 包含以下几种指令:
- CREATE :创建数据库和表等对象
- DROP : 删除数据库和表等对象
- ALTER : 修改数据库和表等对象的结构
- DML(Data Manipulation Language,数据操纵语言) 用来查询或者变更表中的记录。SQL语句中使用的最多。DML 包含以下几种指令:
- SELECT :查询表中的数据
- INSERT :向表中插入新数据
- UPDATE :更新表中的数据
- DELETE :删除表中的数据
- DCL(Data Control Language,数据控制语言) 用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对 RDBMS 的用户是否有权限操作数据库中的对象(数据库表等)进行设定。DCL 包含以下几种指令:
- COMMIT : 确认对数据库中的数据进行的变更
- ROLLBACK :取消对数据库中的数据进行的变更
- GRANT :赋予用户操作权限
- REVOKE:取消用户的操作权限
2.SQL的基本书写规则
1.SQL语句以分号(;)结尾
2.SQL语句不区分大小写,但是输入数据区分大小写
3.字符串和日期常数需要使用单引号括起来
4.单词需要用半角空格或者换行来分隔
5.注释符号:
- 单行注释:–
- 多行注释:/* */
3.表的创建与操作(插入、更新、修改、删除)
在创建表之前,需要先创建用来存储表的数据库
1、假设要创造一个名为product的表,先创建用来存储表的数据库,取名为shop:
create database shop;
2、创建product表,列名各种约束设置如下:
create table Product(
product_id char(4) NOT NULL,
product_name varchar(100) not null,
product_type varchar(32) not null,
sale_price integer ,
purchase_price integer ,
regist_date date ,
primary key(product_id));--指定product_id为主键,可以通过该列提取数据
第一个元素为列名,第二个元素为数据类型的指定,第三个元素为对列中存储的数据进行限制如:not null表示数据不能为空。
数据类型有以下:
integer | 整数型数据 |
---|---|
char | 定长字符串型 |
varchar | 可变长字符串型 |
date | 日期型 |
3、insert into < table >(column1,column2,…) values (value1,value2,…) 向表中插入数据,有三种写法:
START TRANSACTION-- 事务开始语句,sql中可省略
--依次单行插入
INSERT INTO product VALUES ('0001', 'T恤' ,'衣服', 1000, 500, '2009-09-20');
INSERT INTO product VALUES ('0002', '打孔器', '办公用品', 500, 320, '2009-09-11');
--多行插入
INSERT INTO product VALUES ('0003', '运动T恤', '衣服', 4000, 2800, NULL),
('0004', '菜刀', '厨房用具', 3000, 2800, '2009-09-20'),
('0005', '高压锅', '厨房用具', 6800, 5000, '2009-01-15'),
('0006', '叉子', '厨房用具', 500, NULL, '2009-09-20'),
('0007', '擦菜板', '厨房用具', 880, 790, '2008-04-28');
--某列数据为空,插入的时候可以省略
INSERT INTO product(product_id,product_name,product_type,sale_price,regist_date)
VALUES ('0008', '圆珠笔', '办公用品', 100, '2009-11-11');-- 只插入这5列的数据
COMMIT;-- 事务确认处理语句,sql中可省略
注意想插入null的列不能有not null的约束;若某列没有not null的限制且不插入该列,那么此列数据为null(如上述第三种方法中purchase_price就是null)。
4、查看表
select * from Product;
5、表的更新
5-1 添加列,删除列
- 添加,删除一列
alter table Product add product_name_pinyin varchar(100);
alter table Product drop column product_name_pinyin;
- 添加,删除多列
alter table product add MaleCount varchar(50) null,FemaleCount varchar(50) null;
alter table product drop MaleCount, drop FemaleCount;
其中colum可以省略不写
5-2 变更表名
alter table product rename to Product;
6、表和数据库的删除(不可恢复):
drop table Product;
drop database shop;