MySQL从入门到放弃(一)

1.数据库基础

(1)什么是数据库

        数据库(DataBase,DB)是一个长期存储在计算机内的,有组织的,有共享的,统一管理的数据集合。

        数据库的发展大致划分为如下几个阶段:人工管理阶段、文件系统阶段、数据库系统阶段、高级数据库阶段、其种类大概有3种:层次式数据库网络式数据库关系是数据库,不同种类的数据库按照不同的数据库结构来联系和组织。

(2)数据库数据类型

        数据类型决定了数据在计算机中的存储格式,代表不同的信息类型,常用的数据类型有:

整数数据类型浮点数数据类型精确小数类型二进制数据类型日期/时间数据类型字符串数据类型。

2.SQL语言

        对数据库进行查询和修改操作的语言叫做SQL。SQL的含义是结构化查询语言(Structured Query Languate)。SQL有许多不同的类型,有3个主要的标准: ANSI (美国国家标准机构) SQL,对ANSI SQL修改后在1992年采纳的标准,称为SQL-92或SQL2。最近的SQL-99标准,SQL-99标准从SQL2扩充而来并增加了对象关系特征和许多其他新功能。其次,各大数据库厂商提供不同。

        SQL语言包含以下4个部分。
            (1)数据定义语言(DDL): DROP、CREATE、ALTER等语句。
            (2)数据操作语言(DML): INSERT (插入)、UPDATE (修改)、DELETE (删除)语句。
            (3)数据查询语言(DQL): SELECT 语句。

            (4)数据控制语言(DCL); GRANT、REVOKE、COMMIT、ROLLBACK等语句。

3.MySQL数据库

(1)什么是MySQL

        MySQL是一个小型关系数据库管理系统,与及其他大型数据库管理系统,例如Oracle、DB2、SQL Server等相比,MySQL规模小,功能有限,但是它体积小,速度快,成本低,且它提供的功能对稍微复杂的应用来说已经够用,这些特性使得MySQL成为世界上最受欢迎的开放源代码数据库。

(2)MySQL的优势

    1>速度:运行速度快

    2>价格:MySQL对多数个人用来说是免费的

    3>容易使用:与其他大型数据库的设置和管理相比,其复杂程度较低,易于学习。

    4>可移植性:能够工作在众多不同的系统平台上,例如Windows、Linux、Unix、Mac OS等。

    5>丰富的接口:提供了用于C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等语言API。

    6>支持查询语言:MySQL可以利用标准的SQL语法和支持ODBC(开放式数据库连接)的应用程序。

    7>安全性和连接性:十分灵活和安全的权限和密码系统,允许基于主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全。并且由于MySQL是网络化的,因此可以在因特网上的任何地方访问,提高数据共享的效率。

4.数据库的基本操作

(1)创建数据库,语法

CREATE DATABASE <databasename>;

(2)查看创建数据库的定义,语法

SHOW CREATE DATABASE <databasename>\G;

(3)删除数据库,语法

DROP DATABASE <databasename>;

(4)查看默认的存储引擎,语法

SHOW ENGINES;

存储引擎分别有:InnoDB,MyISAM,Memory,Archive,Federated。

不同的存储引擎都有各自的特点,如图


(5)修改默认的存储引擎

一般情况下,在路径C:\ProgramData\MySQL\MySQL Server 5.7文件夹下会有一个my.ini配置文件,编辑模式打开,然后CTRL+F搜索eng,把default-storage-engine参数后面的值改为要设置的存储引擎,保存之后重启MySQL服务即可。

4.数据表的基本操作

(1)创建数据表,语法

CREATE DATABASE <databasename>;

(2)使用各种约束

主键约束

      主键,又称主码,是表中一列或多列的组合。主键约束(PRIMARY KEY CONSTRAINT)要求主键列的

数据唯一,并且 不允许为空。主键能够唯一表示表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据查询的速度。主键和记录之间的关系如同身份证和人之间的关系,他们之间一一对应。主键主要分为两种: 单字段主键多字段联合主键

1>单字段主键

1.在定义列(字段)的同时指定主键,语法

字段名 数据类型 PRIMARY KEY[默认值]

2.在完成所有列之后指定主键,语法

[CONSTRAINT<约束名>]PRIMARY KEY[字段名]

2>多字段联合主键

PRIMARY KEY[字段1,字段2,.....字段n]

使用外键约束

        外键用来在两个表的数据之间建立链接,它可以是一列或者多列。一个表可以有一个或多个外键。外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值

        外键:首先它是表中的一个字段,它可以不是本表的主键,但对应另外一个表的主键。外键主要的作用是保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联关系的行。外键的作用是保持数据的一致性、完整性。例如,部门表tb_dept的主键是id,在员工表tb_emp中有一个键deptId与这个id关联。

        主表(父表):对于两个具有关联关系的表而言,相关联字段中主键所在的那个表即是主表。

        从表(子表):对于两个具有关联关系的表而言,相关联字段中外键所在的那个表即是从表。

1>创建外键的语法

[CONSTRAINT<外键名>] FOREIGN KEY 字段名1[,字段名2,....] REFERENCES <主表名> 主键列1[,主键列2,....]
“外键名”为定义的外键约束的名称,一个表中不能有相同名称的外键;
“字段名”表示字表中需要添加外键约束的字段列;
“主表名”即被子表外键所依赖的表的名称;

“主键列”表示主表中定义的主键列,或者列组合。

使用非空约束

        非空约束(Not  NULL CONSTRAINT)指字段的值不能为空,对于使用了非空约束的字段,如果用户再添加数据时没有指定值,数据库系统会报错。语法如下

字段名 数据类型 NOT NULL

使用唯一性约束

        唯一性约束(UNIQUE CONSTRAINT)要求该列唯一,允许为空,但只能出现一个空值,唯一性约束确保一列或几列不出现重复值。

1>在定义列(字段)时指定唯一性约束

字段名 数据类型 UNIQUE

2>在定义完成后指定唯一性约束

[CONSTRAIN<约束名>] UNIQUE(<字段名>)

使用默认约束

        默认约束(Default CONSTRAINT)指定某列的默认值,如男性同学较多,性别就可以默认为‘男’,如果插入一条新的记录时没有为这个字段赋值,默认给字段赋值‘男’

字段名 数据类型 DEFAULT 默认值

设置表的属性值自动增加

字段名 数据类型 AUTO_INCREMENT

(3)查看数据表结构

DESCRIBE 表名;或者SHOW CREATE TABLE <表名>\G;

(4)修改数据表

修改表名

ALTER TABLE <原表名> RENAME <新表名>;

修改字段的数据类型

ALTER TABLE <表名> MODIFY <字段名> <数据类型>

修改字段名

ALTER TABLE <表名> CHANGE <原字段名> <新字段名><新数据类型>;

添加字段

ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件][FIRST|AFTER 已存在的字段名];

删除字段

ALTER TABLE <表名> DROP <字段名>;

修改字段的排序位置

ALTER TABLE <表名> MODIFY <字段1><数据类型> FIRST|AFTER <字段2>;

更改表的存储引擎

ALTER TABLE <表名> ENGINE=<存储引擎名>;

删除表的外键约束

ALTER TABLE <表名> DROP FOREIGN KEY<外键约束名>;

删除表

DROP TABLE [IF EXISTS]<表名>;

6.MySQL数据类型

MySQL支持多种数据类型,主要有数值类型,日期/时间和字符串类型

1>数值数据类型:整数类型TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,浮点小数数据类型FLOAT和DOUBLE、定点小数类型DECIMAL。

2>日期/时间类型:YEAR、TIME、DATE、DATETIME和TIMESTAMP。

3>字符串类型:CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM、和SET等。。

整数类型


待续。。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值