【11】WEB安全学习----MYSQL-1

目录

 

一、基础知识

1、什么是数据库

2、表

3、数据类型

4、主键

5、SQL语言

6、数据库访问接口

7、什么是Mysql

8、MySQL语法规范

扫描二维码关注公众号,回复: 3399033 查看本文章

9、MySQL注释

二、数据库操作

1、连接数据库

2、退出数据库

3、查看当前数据库状态

4、查看所有数据库

5、创建数据库

6、查看数据库创建规范

7、进入数据库

8、删除数据库

三、数据类型

1、整数型

2、浮点型

3、日期时间型

4、文本字符串类型

5、二进制字符串类型

四、创建表

1、创建表

2、查看当前数据库下数据表

3、查看表的结构

4、主键约束

单字段主键

多字段联合主键

5、自增长约束

6、非空约束

7、默认值约束

8、唯一性约束

9、外键约束

五、修改表

1、修改表名

2、修改字段的数据类型

3、修改字段名

4、添加字段

5、删除字段

6、删除表的外键约束

7、更改表的存储引擎

8、删除表


一、基础知识

1、什么是数据库

    数据库由一批数据构成有序的集合,这些数据被存放在结构化的数据表里。数据表之间相互关联,反映了客观事物间的本质联系。数据库系统提供对数据的安全控制和完整性控制。

  数据库的发展大致分为:人工管理阶段文件系统阶段数据库系统阶段高级数据库阶段。其种类有3种:层次式数据库网络式数据库关系式数据库

2、表

    在关系型数据库中,数据库表是一系列二维数组的集合,用来存储数据和操作数据的逻辑结构。行称为记录,是组织数据的单位;列称为字段,每一列表示记录的一个属性,都有相应的描述信息。

数据表
序号 用户名 密码 年龄
1 admin 123456 20
2 root admin 18

3、数据类型

    数据类型决定了数据在计算机中存储格式,代表不同的信息类型。常用的数据类型有:整数型、浮点型、二进制型、日期时间型、字符串型等。

4、主键

    主键(Primary Key)又称主码,用于唯一地标识表中的每一条记录。可以定义表中的一列或多列为主键,主键列上不能有两行相同的值,也不能为空值。以上表为例,可以标识序号为主键,其他字段的记录可以有重复值故不能当作主键。

5、SQL语言

    对数据库进行查询和修改操作的语言叫做SQL(结构化查询语言)。SQL有许多不同的类型,各大数据库厂商提供不同版本的SQL。SQL包含以下4个部分:

1、数据定义语言:DROP、CREATE、ALTER等

2、数据操作语言:INSERT、UPDATE、DELETE等

3、数据查询语言:SELECT语句

4、数据控制语言:GRANT、REVOKE、COMMIT、ROLLBACK语句等

6、数据库访问接口

    不同的程序设计语言会有不同的数据库访问接口,程序语言通过这些接口,执行SQL语句,进行数据库管理。主要的数据库访问接口有:

1、ODBC:开放数据库互联技术为访问不同的SQL数据库提供了一个共同接口。所有的数据库操作由对应的DBMS的ODBC驱动程序完成。

2、JDBC:java数据库连接,它由一组用java语言编写的类和接口组成。

3、ADO.NET:是微软在.NET框架下设计的一组和数据源进行交互的面向对象类库。

4、PDO:是PHP访问数据库定义的一个轻量级的接口,提供了一个数据访问抽象层,是PHP5新加入的一个功能。

7、什么是Mysql

    Mysql是一个小型关系型数据库管理系统,与其他大型数据库管理系统(Oracle、DB2、SQL Server等)相比,Mysql规模小、功能有限。但体积小、速度快、成本低,这些特性使得MySQL成为了目前流行的开放源代码数据库。

    MySQL的命令机制由3个数字和1个后缀组成,如MySQL-5.7.10。

第一个数字(5)是主版本号,第二个数字(7)是发行级别,第三个数字(10)是在此发行系列的版本号。

8、MySQL语法规范

MySQL语法不区分大小写,但推荐操作语句全部大写,数据库、表明、字段等信息全部小写。如 CREATE DATABASE test1;

MySQL使用分号;作为语句结束。

9、MySQL注释

在MySQL中支持两种注释:

1、#这是注释内容

2、-- 这是注释内容

二、数据库操作

1、连接数据库

常用选项:mysql -u -p -h  (-u 用户名 -p 密码 -h 数据库地址 -P 端口 -D数据库名)

2、退出数据库

使用 quit、exit、\q都可以退出当前连接

3、查看当前数据库状态

使用 \s 查看当前数据库的基本信息

4、查看所有数据库

使用SHOW DATABASES;查看当前数据库

5、创建数据库

使用CREATE DATABASE name;创建数据库

创建数据库,相当于在MySQL目录下的DATA目录中新建一个文件夹,一个文件夹代表一个数据库

6、查看数据库创建规范

使用 SHOW CREATE DATABASE name; 查看已创建的数据库语句。

可看到默认创建的数据库编码为UTF8

7、进入数据库

使用USE name;进入某数据库中,使用SHOW DATABASE(); 查看当前数据库

8、删除数据库

使用DROP DATABASE name;删除数据库

三、数据类型

1、整数型

MySQL中的整数型数据类型
类型名称 说明 存储需求 范围
tinyint 很小的整数 1个字节 0-255
smallint 小的整数 2个字节 0-65535
mediumint 中等大小的整数 3个字节 0-16777215
int 普通大小的整数 4个字节 0-4294967295
bigint 大整数 8个字节 0-xxxx

2、浮点型

MySQL中的小数类型
类型名称 说明 存储需求
float 单精度 4个字节
double 双精度 8个字节
decimal(M,D) 定点数 M+2个字节

3、日期时间型

日期时间数据类型
类型名称 日期格式 存储需求
year YYYY 1个字节
time HH:MM:SS 3个字节
date YYYY-MM-DD 3个字节
datetime YYYY-MM-DD HH:MM:SS 8个字节
timestamp YYYY-MM-DD HH:MM:SS 4个字节

4、文本字符串类型

文本字符串数据类型
类型名称 说明
char(m) 固定长度非二进制字符串
varchar(m) 变长非二进制字符串
tinytext 非常小的非二进制字符串
text 小的非二进制字符串
mediumtext 中等大小的非二进制字符串
longtext 大的二进制字符串
enum 枚举类型
set 一个设置

5、二进制字符串类型

二进制字符串数据类型
类型名称 说明
bit(m) 位字段类型
binary(m) 固定长度二进制字符串
varbinary(m) 可变长二进制字符串
tinyblob(m) 非常小的blob
blob(m) 小blob
mediumblob(m) 中等大小的blob
longblob(m) 非常大的blob

四、创建表

1、创建表

创建表的语法格式:CREATE TABLE 表名

(

字段名1,数据类型 [列级别约束条件] [默认值],

字段名2,数据类型 [列级别约束条件] [默认值],

......

[表级别约束条件]

);

CREATE TABLE user(
    username VARCHAR(20),
    age TINYINT,
    sex ENUM('男','女'),
    Birthday YEAR
);

2、查看当前数据库下数据表

使用SHOW TABLES;查看当前数据库中所有数据表。

3、查看表的结构

使用DESC 表名;SHOW COLUMNS FROM 表名;可以查看表的字段信息。

4、主键约束

主键约束要求主键列的数据唯一,且不允许为空。可以结合外键来定义不同数据表之间的关系,加快查询的速度。分为两种主键:单字段主键多字段联合主键

单字段主键

由一个字段组成,可以在定义列的同时指定主键:字段名 数据类型 PRIMARY KEY

在定义完所有列后之后定义主键:PRIMARY KEY 字段名

CREATE TABLE user1(
    id INT PRIMARY KEY,
    username varchar(20)
);

CREATE TABLE user2(
    id INT,
    username varchar(20),
    PRIMARY KEY id
);

多字段联合主键

PRIMARY KEY(字段1,字段2,....字段n)

CREATE TABLE user(
    id INT,
    username varchar(20),
    cid INT,
    PRIMARY KEY(id,cid)
);

5、自增长约束

 一个表中只能有一个字段使用此约束,且该字段必须为主键的一部分,默认的自增字段id的值从1开始,每次添加一条新纪录,该值自动加1。

语法格式如下:字段名 数据类型 AUTO_INCREMENT

CREATE TABLE user1(
    id INT PRIMARY KEY AUTO_INCREMENT,
    username varchar(20)
);

6、非空约束

非空约束指字段的值不能为空。语法格式如下:字段名 数据类型 NOT NULL

CREATE TABLE user1(
    id INT PRIMARY KEY AUTO_INCREMENT,
    username varchar(20) NOT NULL
);

7、默认值约束

 默认值约束指定某列的默认值,语法格式为:字段名 数据类型 DEFAULT 默认值

CREATE TABLE user2(
    id INT PRIMARY KEY AUTO_INCREMENT,
    username varchar(20) NOT NULL,
    age TINYINT DEFAULT 20
);

8、唯一性约束

唯一性约束要求该列唯一,允许为空,但只能出现一个空值。语法格式:字段名 数据类型 UNIQUE

CREATE TABLE user3(
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(20) NOT NULL,
    card VARCHAR(10) UNIQUE,
    age TINYINT DEFAULT 20
);

9、外键约束

外键用来在两个表的数据之间建立连接,被参照的表是主表,外键所在的表为子表。父表中对记录做操作时,子表中与之对应的信息也应有相应的改变。外键的作用保持数据的一致性完整性。父表和子表必须使用相同的存储引擎:InnoDB。

创建外键的语法格式:[constraint 外键名] foreign key 字段名1 references 主键列1

CREATE TABLE proid(
    id INT PRIMARY KEY,
    proname VARCHAR(200) NOT NULL,
    FOREIGN KEY id REFERENCES users.proid  //把外键ID与users表中的proid关联起来。
);

五、修改表

1、修改表名

语法格式:ARTER TABLE <旧表名> RENAME [to] <新表名>;

AlTER TABLE user RENAME users;

2、修改字段的数据类型

语法格式:ALTER TABLE <表名> MODIFY <字段名> <数据类型>

ALTER TABLE user1 MODIFY username VARCHAR(30);

3、修改字段名

语法格式:ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;

如果旧字段名与新字段名相同,则只修改数据类型,和modify效果一样。

ALTER TABLE user1 CHANGE username UserName VARCHAR(20);

4、添加字段

语法格式:ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [ first | after 已存在字段名]

“first”为可选参数,作用是将添加的字段置为第一个字段;“after”为可选参数,作用是将新添加的字段添加到指定存在的字段后面

ALTER TABLE user2 ADD addres VARCHAR(50) NOT NULL;

5、删除字段

语法格式:ALTER TABLE <表名> DROP <字段名>

ALTER TABLE user2 DROP addres;

6、删除表的外键约束

语法格式:ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>

外键约束名指在定义表constraint关键字后面的参数

7、更改表的存储引擎

MySQL的存储引擎有:MyISAM、InnoDB、HEAP、BDB等,可以使用show engines查看:

语法格式:ALTER TABLE <表名> ENGINE=<更改后的存储引擎名>;

8、删除表

语法格式:DROP TABLE [if exists] 表1,表2,......表n;

参数if exists用于删除前判断删除的表是否存在,加上该参数,再删除表时,如果表不存在则sql可以顺利执行,但会发出警告。

DROP TABLE user2;

猜你喜欢

转载自blog.csdn.net/a15803617402/article/details/82560269
今日推荐