跳到主要内容

SQL常识

SQL语句分类

DDL(data definition language)数据库定义语言CREATE、ALTER、DROP、SHOW

DML(data manipulation language)数据操纵语言SELECT、UPDATE、INSERT、DELETE

DCL(Data Control Language)数据库控制语言,是用来设置或更改数据库用户或角色权限的语句

常见概念

1、关系:两个表的公共字段

2、行:也称记录,也称实体

3、列:也称字段,也称属性

就表结构而言,表分为行和列;
就表数据而言,分为记录和字段;
就面向对象而言,一个记录就是一个实体,一个字段就是一个属性。

4、数据冗余:相同的数据存储在不同的地方

脚下留心:
1、冗余只能减少,不能杜绝。
2、减少冗余的方法是分表
3、为减少数据查找的麻烦,允许数据有一定的冗余

5、数据完整性:正确性+准确性=数据完整性

正确性:数据类型正确
准确性:数据范围要准确

思考:学生的年龄是整型,输入1000岁,正确性和准确性如何?

答:正确的,但不准确

思考:年龄是整型的,收入了字符串,正确性和准确性如何?

答:不正确,也不准确。

主表和从表

两个表建立关系(两个表只要有公共字段就有关系),一个表称为主表,一个表称为从表。

1.2 数据库的作用

数据库是存放数据的仓库

1536628113363

数据库:数据库中存放的是表,一个数据库中可以存放多个表

表:表是用来存放数据的。

数据库的发展史

萌芽阶段:文件系统

最初始的数据库是用磁盘来存储数据的。文件就是最早的数据库。

第一代数据库:层次模型、网状模型

层次模型

1536628336467

缺点:

1、 查找不同类的数据效率低了(导航的结构的缺点)

2、 数据不完整(不能区分到底是一个李白还是两个李白)

网状模型

网状模型解决了层次数据的数据不完整的问题,但是没有解决层次模型的导航问题。

1536628485678

第二代数据库:关系型数据库

特点:

  1. 每个表都是独立的

  2. 表与表之间通过公共字段来建立关系

1536628687644

优点:解决了导航问题,并且数据完整性得到解决

缺点:多表查询效率低了

提示:我们现在用的主流的数据库都是关系模型的。

多学一招:NoSQL(非关系型数据库)解决关系型数据库多表查询效率的问题,
常见的非关系型数据库有:Redis、mongodb。数据库中存储格式是键值对。

启动/关闭MySQL服务

window使用net工具

net start 服务名: 启动MySQL服务

net stop 服务器: 关闭MySQL服务

Linux使用

/etc/init.d/mysqld start

/etc/init.d/mysqld stop

 注意:必须通过管理员身份启动命令行

SQL介绍

SQL是什么

Structured Query Language(结构化查询语言),是用来操作关系型数据库的一门语言。这是一个关系型数据库的通用操作语言,也成为标准SQL,也叫SQL-92。

多学一招:数据库的生产厂商为了占有市场份额,都会在标准SQL的基础上扩展一些自己的东西以吸引用户。

常见的关系型数据库

关系型数据库开发公司使用语言
SQL Server微软公司T-SQL
Oracle甲骨文公司PL/SQL
MySQLMySQL AB 公司开发——甲骨文公司收购MySQL

思考:已知标准SQL可以在所有的关系型数据库上运行,在Oracle上编写的PL/SQL能否在MySQL上运行?

答:不能,只能运行标准SQL

连接服务器

通过命令行面板连接

host:主机         -h
username:用户名 -u
password:密码 -p
port:端口 -P
mysql -h127.0.0.1 -P3306 -uroot -proot
多学一招:如果MySQL服务器在本地,IP地址可以省略;如果MySQL服务器用的是3306端口,-P也是可以省略

关闭连接

方法一:exit

方法二:quit

方法三:\q
脚下留心:MySQL中的命令后面要加分号,windows命令行的命令后面不用加分号。

MySQL目录

1536630746684

数据表的文件介绍

一个数据库对应一个文件夹

一个表对应一个或多个文件

引擎是myisam,一个表对应三个文件

1536654269605

引擎是innodb,一个表对应一个表结构文件

1536654519700

所有的innodb引擎的数据统一的存放在data\ibdata1文件中。如果数据量很大,MySQL会自动的创建ibdata2,ibdata3,…,目的就是为了便于管理。

引擎是memory,数据存储在内存中,重启服务数据丢失,但是读取速度非常快。