MySQL数据库系统
一、课本知识
1、数据库指令(Linux)
安装mysql:sudo apt-get install mysql-server
mysql-server包括一个Mysql服务器和一个客户机。
安装后Mysql后,可通过运行脚本对其进行配置以获得更好的安全性。
mysql_secure_installation
进入mysql:mysql -h localhost -u root -p -b
进入MySQL数据库以后的命令
ATTENTION:
1> 每一行命令结束了以后,请使用 ; 或 \g 来结束,否则命令可以一直写下去
2> 在MySQL的命令中,如果一行命令没有敲完,就回车了,它会继续执行下去,前提是必须是一条完整的命令
3> 退出敲错的命令、或不想继续执行下去的命令时,用\c 或者 Ctrl+c
4> 要想让数据竖起来显示,在命令后用\G
5> \s 可以显示当前服务器的配置
6> help 查看所有可以使用的快捷命令
7> 如果在命令行中遇到了单引号,则MySQL认为你要输入一段字符串,所以,它是必须使用结束的单引号,可以跳出字符串输入状态;
8>退出数据库服务器 \q
、exit
、quit
三者皆可
新建数据库:CREATE DATABASE dbname
#创建一个名为dbname的数据库
删除数据库:DROP DATABASE dbname
#删除已存在的命名数据库
选择数据库:USE dbname
命令选择一个数据库
对数据表的操作:
创建数据表(不加任何主键信息,自增,数据限制条件的简易数据表创建)>最初练习可用
create table 表名(
字段名1 字段类型,
字段名2 字段类型,
字段名3 字段类型
);
ATTENTION:
1> 创建一个数据表时,它的每个字段之间用逗号","隔开;
2> 最后一个字段不用逗号",";
3> 创建完表以后,最后的括号后面使用分号结束
4> 建表时,表名后面的括号中写表的字段名(字段类型)
2、SQL结构化查询语言
数据定义语言(DDL):
用于定义和管理数据对象,包括数据库,数据表等。例如:CREATE,DROP,ALTER等。
数据库 -> 数据表:对数据库或数据表的创建、删除、修改等操作
数据操作语言(DML):
用于操作数据库对象中所包含的数据。例如:INSERT,UPDATE,DELETE语句。对数据的 增、删、改这些操作,就是数据操作语言
数据查询语言(DQL):
用于查询数据库对象中所包含的数据,能够进行单表查询,连接查询,嵌套查询,以及集合查询等各种复杂程度不同的数据库查询,并将数据返回客户机中显示。
数据控制语言(DCL):
是用来管理数据库的语言,包括管理权限及数据更改
3、MySQL中的数据类型
-
MySQL中使用的基本数据类型,主要有三类:数字、字符串、日期和时间。
-
数值类型:INT:整数(4字节),TINYINT:(1字节),SMALLINT:(2 字节);FLOAT:浮动指针数。
-
字符串类型:CHAR(size):固定长度字符串,长度为1〜255字符。VARCHAR(size):可变长度字符串,但不能使用任何空格。TEXT:可变长度的字符串。
-
日期和时间类型:DATE:日期格式为 YYYY-MM-DD。TIME:以S格式保存时间。
4、关联表
-
一个真正的数据库可能包含多个相互关联的表。在MySQL中,使用主键-外键约束条件来定义表关系。在两个表之间创建链接,其中一个表的主键与另一个表的外键相关联。在MySQL中,表可能以几种方式相关联,包括:
-
一对一(1-1)关系:
- 一对一关系是指两个表仅基于一个匹配行相互关联的关系。可以使用主键-外键约束条件创建这类关系。
-
一对多(l-M)关系:
- 一对多关系是指一个表中的一行在另一个表中有多个匹配行的关系。可以使用主键-外键关系来创建这种关系。
-
多对多(M-M)关系:
- 如果一个表中的多条记录与另一个表中的多条记录相关,则两个表具有多对多(M-M) 关系。处理M-M关系的标准方法是在两个表之间创建一个连接表。连接 表使用外键来引用两个表中的主键,从而在两个表之间创建连接。
-
自引用关系
5.SQL结构化查询语言
- 数据定义语言(DDL):用于定义和管理数据对象,包括数据库,数据表等。例如:CREATE,DROP,ALTER等。数据库 -> 数据表:对数据库或数据表的创建、删除、修改等操作。
- 数据操作语言(DML):用于操作数据库对象中所包含的数据。例如:INSERT,UPDATE,DELETE语句。对数据的 增、删、改这些操作,就是数据操作语言。
- 数据查询语言(DQL):用于查询数据库对象中所包含的数据,能够进行单表查询,连接查询,嵌套查询,以及集合查询等各种复杂程度不同的数据库查询,并将数据返回客户机中显示。
- 数据控制语言(DCL):是用来管理数据库的语言,包括管理权限及数据更改。
二、苏格拉底挑战
1.SQL结构化查询语言
2.关联表