本笔记为阿里云天池龙珠计划SQL训练营的学习内容,链接为:https://tianchi.aliyun.com/specials/promotion/aicampsql;
最常用到的是关系数据库管理系统(Relational Database Management System,RDBMS)
数据库中储存信息的是table,在数据库中,行称为记录,它相当于一条记录,列称为字段,它代表了表中存储的数据项目。行和列交汇的地方称为单元格,一个单元格中只能输入一条记录。
对对象操作的语法:
-
CREATE : 创建数据库和表等对象
-
DROP : 删除数据库和表等对象
-
ALTER : 修改数据库和表等对象的结构
对表中数据操作的语法:
-
SELECT :查询表中的数据
-
INSERT :向表中插入新数据
-
UPDATE :更新表中的数据
-
DELETE :删除表中的数据
对数据变更的语法:
-
COMMIT : 确认对数据库中的数据进行的变更
-
ROLLBACK : 取消对数据库中的数据进行的变更
-
GRANT : 赋予用户操作权限
-
REVOKE : 取消用户的操作权限
SQL书写的基本规则:
- SQL语句要以分号( ; )结尾
- SQL 不区分关键字的大小写,但是插入到表中的数据是区分大小写的
- win 系统默认不区分表名及字段名的大小写
数据库的创建( CREATE DATABASE 语句)
表的创建( CREATE TABLE 语句)
四种最基本的数据类型
- INTEGER 型
用来指定存储整数的列的数据类型(数字型),不能存储小数。
- CHAR 型
用来存储定长字符串,当列中存储的字符串长度达不到最大长度的时候,使用半角空格进行补足,由于会浪费存储空间,所以一般不使用。
- VARCHAR 型
用来存储可变长度字符串,定长字符串在字符数未达到最大长度时会用半角空格补足,但可变长字符串不同,即使字符数未达到最大长度,也不会用半角空格补足。
- DATE 型
用来指定存储日期(年月日)的列的数据类型(日期型)。
约束设置:
NOT NULL
是非空约束,即该列必须输入数据。
PRIMARY KEY
是主键约束,代表该列是唯一值,可以通过该列取出特定的行的数据。
表的删除和更新:
删除表的语法:DROP TABLE<表名>;
添加列的 ALTER TABLE 语句:ALTER TABLE<表名> ADD COLUMN<列的定义>;
删除列的 ALTER TABLE 语句:ALTER TABLE<表名> DROP COLUMN<列名>;
ALTER TABLE 语句和 DROP TABLE 语句一样,执行之后无法恢复。误添的列可以通过 ALTER TABLE 语句删除,或者将表全部删除之后重新再创建。
清空表内容: TRUNCATE TABLE <表名>;
数据的更新:
UPDATE <表名>
SET <列名> = <表达式> [, <列名2> = <表达式2>...];
WHERE <条件>; --可选 (不加where将会将所有的行按照语句修改)
ORDER BY 子句;(按照某种方式排序展示数据) --可选
LIMIT 子句; --可选(limit i,n :限制查询结果返回的数量,i为查询结果的索引值,默认为0,i=0时可以省略,n为查询结果返回的数量)
像表中插入数据:insert
INSERT INTO <表名> (列1,列2,列3,...) VALUES (值1,值2,值3,...)
对表进行全列 INSERT 时,可以省略表名后的列清单。这时 VALUES子句的值会默认按照从左到右的顺序赋给每一列。
练习题 3.1
create table Addressbook(
regist_no integer not null,
name varchar(128) not null,
address varchar(256) not null,
tel_no char(10),
mail_address char(10),
primary key(regist_no)
);
练习题3.2
alter table addressbook add column postal_code char(8) not null;
练习题3.3
drop table addressbook;
练习题3.4 重新创建