SQL复习
MySQL
SQL介绍
SQL
SQL的全拼是什么?
SQL全拼:Structured Query Language,也叫结构化查询语言。
SQL92和SQL99有什么区别呢?
SQL92和SQL99分别代表了92年和99年颁布的SQL标准。
在 SQL92 中采用(+)代表从表所在的位置,而且在SQL92 中,只有左外连接和右外连接,没有全外连接。
LEFT JOIN 和 RIGHT JOIN 只存在于 SQL99 及以后的标准中,在 SQL92 中不存在,只能用(+)表示。
SQL99 的外连接有哪些形式?
SQL99 的外连接包括了三种形式:
- 左外连接:LEFT JOIN 或 LEFT OUTER JOIN
- 右外连接:RIGHT JOIN 或 RIGHT OUTER JOIN
- 全外连接:FULL JOIN 或 FULL OUTER JOIN
SQL语言按照功能划分为哪四部分?它们分别是什么作用?
SQL语言按照功能划分为DDL、DML、DCL、DQL四部分。
DDL:Data Definition Language,数据定义语言。用于定义数据库对象,包括数据库、数据表和列。
DML:Data Manipulation Language,数据操作语言。用于增加、删除、修改数据表中的记录。
DCL:Data Control Language,数据控制语言。用于定义访问权限和安全级别。
DQL:Data Query Language,数据查询语言。用于查询想要的记录。
什么是ER图?
ER图即Entity Relationship Diagram,也叫实体-关系图。是用于描述现实世界的概念模型,主要包含三个要素:实体、属性、关系。
实体:我们要管理的对象;
属性:每个实体的属性;
关系:对象之间的关系。
SQL的单行注释怎么写?多行注释怎么写?
-- 单行注释
#单行注释
/*
多行注释
*/
SELECT、FROM、WHERE、HAVING、ORDER BY、LIMIT、GROUP BY七个关键字之间的执行顺序是什么?
执行顺序是:FROM→ WHERE →GROUP BY → HAVING→SELECT→ORDER BY→LIMIT。
为表添加了别名之后,还能使用原来的表名吗?
一旦设置别名,就不能再直接使用表名了。
int(11)
中的11
是什么意义?
int
代表整数类型,11
代表显示长度为11位,即最大有效显示长度,与类型包含的数值范围大小无关。
varchar(255)
中的255
是什么含义?
255
表示可变字符串类型的最大长度为255。
DCL
DCL是?作用是什么?主要关键字有哪些?
DCL(Data Control Language),是数据库控制语言。
主要用于管理数据库用户、控制用户数据库访问权限。
主要关键字包括:GRANT、REVOKE等。
如何查询MySQL中的所有用户?重点
SELECT * FROM mysql.user;
如何创建用户?重点
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
如何修改用户密码?重点
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码' ;
如何删除用户?重点
DROP USER '用户名'@'主机名' ;
如何查询用户的权限?重点
SHOW GRANTS FOR '用户名'@'主机名' ;
如何授予用户权限?重点
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
如何撤销用户权限?重点
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
CREATE USER 'itsy'@'localhost' IDENTIFIED BY '123456';
#以上语句的作用是什么?
创建用户itsy, 只能够在当前主机localhost访问, 密码123456。
CREATE USER 'sycoder'@'%' IDENTIFIED BY '123456';
#以上语句的作用是什么?
创建用户sycoder, 可以在任意主机访问该数据库, 密码123456。
ALTER USER 'sycoder'@'%' IDENTIFIED WITH mysql_native_password BY '111111' ;
#以上语句的作用是什么?
修改用户sycoder的访问密码为111111。
DROP USER 'itsy'@'localhost';
#以上语句的作用是什么?
删除 itsy@localhost 用户。
DDL
什么是DDL?DDL的作用是什么?主要关键字包括哪些?
DDL全拼为Data Definition Language,也就是数据定义语言。
用于定义数据库对象,包括数据库、数据表和列。
主要关键字包括:CREATE、DROP、USE、SHOW、ALTER、TRUNCATE等。
如何查看当前有哪些数据库?
SHOW databases;#查看哪些数据库
如何查询当前数据库?
SELECT database();
如何创建数据库?
create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序 规则 ] ;
如果创建的数据库已经存在,如何避免出现报错ERROR 1007
?
加上可选参数
if not exists
,可以解决这个问题
如何删除数据库?
drop database [ if exists ] 数据库名;
如果删除的数据库本身就不存在,如何避免报错?
加上参数
IF EXISTS
。
DROP DATABASE IF EXISTS itsy;
如何切换数据库?
use 数据库名;
如何查看当前数据库中的所有表?
show tables;
如何查看指定表的结构?
desc 表名;
如何查询指定表的建表语句?
show create table 表名;
如何创建表?
CREATE TABLE 表名(
字段1 字段1类型 [COMMENT 字段1注释 ],
字段2 字段2类型 [COMMENT 字段2注释 ],
字段3 字段3类型 [COMMENT 字段3注释 ],
...... 字段n 字段n类型 [COMMENT 字段n注释 ] )
[ COMMENT 表注释 ];
如何向表中添加字段?
ALTER TABLE 表名 ADD 字段名 类型 (长度)
[ COMMENT 注释 ] [ 约束 ];
如何修改字段的数据类型?
ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);
如何修改字段名和字段类型?
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];
如何删除字段?
ALTER TABLE 表名 DROP 字段名;
如何修改表名?
ALTER TABLE 表名 RENAME TO 新表名;
如何删除表?
DROP TABLE [ IF EXISTS ] 表名;
如何删除指定表,并创建新表?
TRUNCATE TABLE 表名;
DML
什么是DML?DML的作用是什么?主要关键字是哪些?
DML是Data Manipulatioin Language,也叫数据操作语言。
主要用于对数据的增加、删除和修改。
主要关键字包括:INSERT、UPDATE、DELETE。
如何向指定的表中添加数据?
向指定的表中添加数据时,分为两种情况:
第一种:只给指定的字段添加数据(其它字段采用默认值)。
第二种:给全部字段添加数据。
当我们为全部字段赋值时,可以省去字段名的内容。
#给指定的字段添加数据:
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);
#给全部字段添加数据:
INSERT INTO 表名 VALUES (值1, 值2, ...);
如何修改指定数据的字段内容?