SQL的安装
在本地安装了mysql8.0环境,使用sqlyog进行连接
sql语句分类
1.DDL
DDL(Data Definition Language,数据定义语言) 用来创建或者删除存储数据用的数据库以及数据库中的表等对象。DDL 包含以下几种指令。
①CREAT 创建数据库和表等对象
②DROP 删除数据库和表等对象
③ALTER 修改数据库和表等对象的结构
2.DML
DML(Data Manipulation Language,数据操纵语言) 用来查询或者变更表中的记录。DML 包含以下几种指令。
①SELECT 查询表中的数据
②INSERT 向表中插入新数据
③UPDATE 更新表中的数据
④DELETE 删除表中的数据
3.DCL
DCL(Data Control Language,数据控制语言) 用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对 RDBMS 的用户是否有权限操作数据库中的对象(数据库表等)进行设定。DCL 包含以下几种指令。
①COMMIT 确认对数据库中的数据进行的变更
②ROLLBACK 取消对数据库中的数据进行的变更
③GRANT 赋予用户操作权限
④REVOKE 取消用户的操作权限
SQL的基本书写规则
①SQL语句要用‘;’结尾
②SQl不区分关键字的大小写,但是表中的数据需要区分大小写
③win系统默认不区分表明和字段名的大小写
④linux/mac系统严格区分表名和字段名大小写
⑤只能用半角英文字母,数字,下划线作为数据库,表和列的名称
⑥数据类型:INTEGER(数字型)CHAR(定长字符串,未达到最大长度时用空格补足)VARCHAR(变长字符串)DATE(日期)
一些语法记录
ALTER TABLE和DROP TABLE语句一样执行后无法恢复。
在已有的表中添加列
ALTER TABLE <表名> add column <列名及其定义>
使用TRUNCATE来清除数据时是最快的
对已存在表的数据进行更新
UPDATE <表名>
SET <列名> = <表达式> [, <列名2>=<表达式2>...];
WHERE <条件>; -- 可选,非常重要。
ORDER BY 子句; --可选
LIMIT 子句; --可选
在使用update时要添加where条件,不然会对所选列所有行数据进行更新
UPDATE和INSERT语句一样,可以把NULL当成一个值来使用,但必须未设置非空约束和主键约束。
INSERT插入数据的基本语法
INSERT INTO <表名> (列1, 列2, 列3, ……) VALUES (值1, 值2, 值3, ……);
在插入null值时可以再VALUES清单中写入null
使用INSERT...SELECT可以从其他表复制数据
INSERT INTO 表名(列名)select 数据 FROM 来源表
练习题
3.1
编写一条 CREATE TABLE 语句,用来创建一个包含表 1-A 中所列各项的表 Addressbook (地址簿),并为 regist_no (注册编号)列设置主键约束
表1-A 表 Addressbook (地址簿)中的列
CREATE table Addressbook(
regist_no int not null,
name VARCHAR(128) not null,
address VARCHAR(256) not null,
tel_no CHAR(10),
mail_address CHAR(20),
PRIMARY KEY (regist_no)
)
3.2
假设在创建练习1.1中的 Addressbook 表时忘记添加如下一列 postal_code (邮政编码)了,请把此列添加到 Addressbook 表中。
列名 : postal_code
数据类型 :定长字符串类型(长度为 8)
约束 :不能为 NULL
ALTER TABLE Addressbook ADD COLUMN (postal_code char(8) not null)
3.3
编写 SQL 语句来删除 Addressbook 表
DROP TABLE Addressbook;
3.4
编写 SQL 语句来恢复删除掉的 Addressbook 表。
使用drop语句删除的表无法恢复,只能重建。