版权声明:本文为博主原创文章,转载请注明文章出处。 https://blog.csdn.net/qfeung/article/details/82932137
数据库回顾
1. 什么是数据库?
答: 存储数据的仓库,数据按照特定的格式被存储,用户可以通过
SQL语句
对数据库中的数据进行增删改查.
2. 什么是DBMS?
答:
DBMS
是DataBase ManageMent System
的缩写,汉译为"数据库管理系统",本质是一种操作和管理数据库的大型软件
.
3. 常见的DBMS有哪些?
答: MySQL, Mariadb(MySQL变异版), Oracle, DB2, SQLServer, SQLite(嵌入式的小型数据库).
4. DBMS, DataBase(数据库), Table(表), Class(类)的关系?
1).DBMS管理许多DB;
2).DB中有许多Table;
3).一个表对应一个类, 表中的字段和类的属性相互对应 & 映射;
5. MySQL怎么安装? 有哪些注意点?
- 安装自己查;
- 注意: 1).编码->UTF-8; 2).一定要设置密码;
6. Windows环境下, 两种启动MySQL服务的方式?
- Win + R -> 输入:services.msc -> 找到名为
MySQL
的服务 -> 启动;- DOS系统 ->
net start mysql
命令(停止服务:net stop mysql)
7. SQL语句是什么?
- 字面意思: 结构化查询语言
- 本质是: 各个数据库厂商都支持的, 已经成为国际标准的, 关系型数据库语言.
8. SQL语句的分类?
> 共4类
> 1. DDL -> 定义(Definition)
> 2. DML -> 操作(Manipulation)
> 3. DQL -> 查询(Query)
> 4. DCL -> 控制(Control)
9. 怎样登陆数据库?
// 命令
mysql -u用户名 -p密码
// 示例
mysql -uroot -p1234
tip:
我通常的做法是输入-u用户名 -p
后回车, 然后输入密码, 回车.
10. 怎样查看数据库?
// 查看所有的数据库
show databases;
// 查看某个数据库的定义信息(包含字符集编码 - character set)
show create database 数据库名;
11. 怎样切换数据库?
use 数据库名;
12. 查看正在使用的数据库?
select database();
13. 查看表?
// 查看数据库中所有的表
show tables;
// 查看表结构
desc 表名;
14. 创建数据库?
1. create database 数据库名
2. create database 数据库名 character set 字符集标识符
15. 删除数据库?
drop database 数据库名称
16. 创建表?
create table 表名(
字段名 类型(长度) [约束],
字段名 类型(长度) [约束],
字段名 类型(长度) [约束]
);
// Tips:
// 1. 主键约束: primary key, 要求被修饰的字段唯一&非空.
// 2. 唯一约束: unique, 要求被修饰的字段唯一.
// 3. 非空约束: not null, 要求被修饰的字段非空.
17. 表的删除&修改?
// 删除表
drop table 表名;
// 添加列
alter table 表名 add 列名 类型(长度) [约束];
// 修改列的类型, 长度&约束
alter table 表名 modify 列名 类型(长度) [约束];
// 修改列名
alter table 表名 change 旧列名 新列名 类型(长度) [约束];
// 删除列
alter table 表名 drop 列名;
// 修改表名
rename table 表名 to 新表名;
// 修改字符集
alter table 表名 character set 字符集;
18. 插入记录
1. into可以省略(发现过程->忘了打into, 结果却完全没问题)
2. 列名与值的个数要相等, 顺序要一致, 类型要一致.
3. 插入的值不能超过限定的最大长度.
3. 值如果是字符串或者日期需要加引号''(一般是单引号).
1) 向表中插入某些列
insert into 表名 (列名1,列名2,列名3,...) values(值1,值2,值3,...);
2) 向表中插入全部列
insert into 表名 values(值1,值2,值3,...);
19. 更新记录
1) 无条件的更新
update 表名 set 字段名=值,字段名=值,...;
2) 有条件的更新
update 表名 set 字段名=值,字段名=值,... where 条件;
20. 删除记录
// 不加[where 条件]则清空整个表(不是删除).
delete from 表名 [where 条件];
相关面试题:
题目:删除表中的记录, 你是用`delete from 表名;` 还是 `trucate table 表名;`?
答:两条语句的区别可以从以下两点来分析
- 删除方式
* delete是逐条删除, 不清空auto_increment记录数, 所以auto_increment不会重新排列.
* truncate是直接将表删除, 重建新表, auto_increment将重置为零, 重新开始.
- 事物方面
* delete删除的数据, 如果在一个事务中可以找回.
* trucate删除的数据是无法找回的.