百问回顾 - 数据库

版权声明:本文为博主原创文章,转载请注明文章出处。 https://blog.csdn.net/qfeung/article/details/82932137

数据库回顾

1. 什么是数据库?

答: 存储数据的仓库,数据按照特定的格式被存储,用户可以通过SQL语句对数据库中的数据进行增删改查.

2. 什么是DBMS?

答: DBMSDataBase 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. 安装自己查;
  2. 注意: 1).编码->UTF-8; 2).一定要设置密码;

6. Windows环境下, 两种启动MySQL服务的方式?

  1. Win + R -> 输入:services.msc -> 找到名为MySQL的服务 -> 启动;
  2. DOS系统 -> net start mysql命令(停止服务:net stop mysql)

7. SQL语句是什么?

  1. 字面意思: 结构化查询语言
  2. 本质是: 各个数据库厂商都支持的, 已经成为国际标准的, 关系型数据库语言.

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删除的数据是无法找回的.

猜你喜欢

转载自blog.csdn.net/qfeung/article/details/82932137