初识MySQL(非常详细)

mySQL简介

MySQL是一个关系型数据库管理系统由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

 

数据库能够做什么

1.存储大量数据,方便检索和访问

2.保持数据信息的一致、完整

3.共享和安全

4.通过组合分析,产生新的有用信息

 

数据库和应用程序

初识MySQL(非常详细)_第1张图片

应用程序

作用:响应操作并显示结果、向数据库请求数据

要求:美观、操作简单方便

数据库

作用:存储数据、检索数据、生成新的数据

要求:统一、安全、性能等

 

时下流行的数据库

Oracle

1.Oracle公司的产品                             

2.产品免费、服务收费

 

SQL Server

1.针对不同用户群体的多个版本            

2.易用性好

 

MySQL

1.开放源代码                                              

2.网站应用广泛

 

数据库的基本概念

1.数据库就是“数据”的“仓库”

2.数据库中包含表、关系以及操作对象

3.数据存放在表中

 

MySQL优势

1.运行速度快                 2.使用成本低                       3.可移植性强                         4.适用用户广

初识MySQL(非常详细)_第2张图片

 

MySQL的运行机制

初识MySQL(非常详细)_第3张图片

MySQL的配置

使用配置向导配置

端口号:3306                 

初识MySQL(非常详细)_第4张图片

默认字符集:utf8

初识MySQL(非常详细)_第5张图片

utf8:一种Unicode编码,解决国际上字符不统一的多字节编码,通用性强

bin目录写入:    环境变量

初识MySQL(非常详细)_第6张图片

root密码设置

初识MySQL(非常详细)_第7张图片

MySQL安装目录

主要文件夹:     bin             include                    lib                    share

初识MySQL(非常详细)_第8张图片

my.ini:记录MySQL配置信息,可修改配置内容,如端口号,字符集等

 

命令行连接MySQL

检查是否启动服务

启动方式 :          1.属性窗口                2.DOS命令(net start mysql)

初识MySQL(非常详细)_第9张图片

如果修改了配置文件,必须重启MySQL服务才能生效

语法:

初识MySQL(非常详细)_第10张图片

示例:

mysqlu root proot

mysql –u root p

DOS下运行

初识MySQL(非常详细)_第11张图片

MySQL Command Line Client

默认root登录,仅输入密码

初识MySQL(非常详细)_第12张图片

SQLStructured Query Language:结构化查询语言

 名称

解释

命令举例

DML

(数据操作语言)

用来操作数据库中所包含的数据

INSERT

UPDATE

DELETE

DDL

(数据定义语言)

用于创建和删除数据库对象等操作

CREATE

DROP

ALTER

DQL

(数据查询语言)

用来对数据库中的数据进行查询

SELECT

DCL

(数据控制语言)

用来控制数据库组件的存取许可、存取权限等

GRANT

COMMIT

ROLLBACK

 

SQL中的运算符

1.算术运算符

一种符号,它是用来进行列间或者变量之间的比较和数学运算

包括算术运算符、赋值运算符、比较运算符、逻辑运算符

运算符

说    明

+

加运算,求两个数或表达式相加的和,如6+8

-

减运算,求两个数或表达式相减的差

*

乘运算,求两个数或表达式相乘的积

/

除运算,求两个数或表达式相除的商,如5/3的值为1

%

取模运算,求两个数或表达式相除的余数,如:5%3的值为2

初识MySQL(非常详细)_第13张图片

初识MySQL(非常详细)_第14张图片

系统数据库和用户数据库

初识MySQL(非常详细)_第15张图片

 

创建数据库

语法:CREATE DATABASE 数据库名;

示例:CREATE DATABASE myschool;                   分号为结束符,不可缺 

初识MySQL(非常详细)_第16张图片

 

查看数据库列表

语法:SHOW databases;

初识MySQL(非常详细)_第17张图片

选择数据库

语法:USE 数据库名;

示例:    USE mybase;                             USE myschool;

初识MySQL(非常详细)_第18张图片

                    使用数据前必须先选择该数据库!

 

删除数据库

语法:DROP DATABASE 数据库名;

示例:DROP DATABASE myschool;

初识MySQL(非常详细)_第19张图片

 

MySQL数据类型——类型

 类型

说明

取值范围

存储需求

TINYINT

非常小的数据

有符值: -27 ~ 27-1 

符号值:0 ~ 28-1                               

1字节

SMALLINT

较小的数据

有符值:  -215 ~ 215-1 

符号值:  0 ~ 216-1      

2字节

MEDIUMINT

中等大小的数据

有符值:  -223 ~ 223-1 

符号值:  0 ~ 224-1      

3字节

INT

标准整数

有符值-231 ~ 231-1 

无符号值:0 ~ 232-1      

4字节

BIGINT

较大的整数

有符值-263 ~263-1

符号值:0 ~264-1      

8字节

FLOAT

单精度浮点数

±1.1754351e -38

4字节

DOUBLE

双精度浮点数

±2.2250738585072014e -308

8字节

DECIMAL

字符串形式的浮点数

DecimalMD

M+2个字节

UNSIGNED属性        

                          标识为无符号数

ZEROFILL属性

                        宽度(位数)不足以0填充

示例:

CREATE TABLE `tb_type` (

    `sid` INT(4) ZEROFILL);

INSERT INTO ` tb_type1 ` VALUE(12) ,(1234),(123456);

初识MySQL(非常详细)_第20张图片

若某数值字段指定了ZEROFILL属性,将自动添加UNSIGNED属性

 

MySQL数据类型——字符串、日期类型

初识MySQL(非常详细)_第21张图片

初识MySQL(非常详细)_第22张图片

*注意:若某日期字段默认值为当前日期,一般设置为TIMESTAMP类型

创建表

语法

CREATE TABLE [IF NOT EXISTS]  表名 (
    字段1 数据类型 [字段属性|约束][索引][注释],
      ……
     字段n 数据类型 [字段属性|约束][索引][注释]
)[表类型][表字符集][注释];

示例

#创建学生表
CREATE TABLE `student`(
    `studentNo` INT(4)  PRIMARY KEY,
     ` name` CHAR(10),
     ……);

多字段使用逗号分隔,      保留字用撇号括起来              单行注释:#......                多行注释:/*……*/

 

字段的约束及属性

名称

关键字

说明

非空约束

NOT NULL

字段不允许为空

默认约束

DEFAULT

 赋予某字段默认值

唯一约束

UNIQUE KEY(UK)

 设置字段的值是唯一的

 允许为空,但只能有一个空值

主键约束

PRIMARY KEY(PK)

设置该字段为表的主键

可唯一标识该表记录

外键约束

FOREIGN KEY(FK)

 用于在两表之间建立关系,

 需要指定引用主表的哪一字段

自动增长

AUTO_INCREMENT

 设置该列为自增字段

 默认每条自增1

 通常用于设置主键

 

主键:

CREATE TABLE student(
      `studentNo` INT(4)  PRIMARY KEY,
      ……);

注释:

CREATE TABLE test (
    `id` int(11) UNSIGNED COMMENT ‘编号’
)COMMENT='测试表’ ;

设置字符集编码:

CREATE TABLE [IF NOT EXISTS] 表名(
     #省略代码
)CHARSET = 字符集名;

myschool数据库中创建学生表:

字段

字段

数 据 类 型

   

   

studentNo

学号

INT

4

\

loginPwd

密码

VARCHAR

20

非空

studentName

姓名

VARCHAR

50

非空

sex

性别

CHAR

2

非空,默认“男”

gradeID

年级编号

INT

4

无符号

phone

电话

VARCHAR

50

 

address

地址

VARCHAR

255

默认值“地址不详”

bornDate

出生日期

DATETIME

 

 

email

邮件账号

VARCHAR

50

 

identityCard

身份证号

VARCHAR

18

唯一

示例:

CREATE TABLE `student`(
        `studentNo` INT(4) NOT NULL COMMENT '学号' PRIMARY KEY,
	`loginPwd` VARCHAR(20) NOT NULL COMMENT '密码',  
	`studentName` VARCHAR(50) NOT NULL COMMENT '学生姓名',
	`sex` CHAR(2) DEFAULT '男' NOT NULL  COMMENT '性别', 
	`gradeId` INT(4)  UNSIGNED COMMENT '年级编号', 
	`phone` VARCHAR(50)  COMMENT '联系电话',
	`address` VARCHAR(255)  DEFAULT '地址不详'COMMENT '地址', 	`bornDate` DATETIME  COMMENT '出生时间',
	`email` VARCHAR(50) COMMENT'邮件账号',
	 ` identityCard ` VARCHAR(18)  UNIQUE KEY COMMENT '身份证号'
) COMMENT='学生表';

查看表

查看表是否存在---示例

USE myschool;
SHOW  tables;

初识MySQL(非常详细)_第23张图片

查看表定义

语法:                 DESCRIBE 表名;        或                DESC 表名;

示例

USE myschool;
DESCRIBE `student`;

初识MySQL(非常详细)_第24张图片

*注意:避免DOS窗口乱码,执行SET NAMES gbk;

 

删除表

语法:        DROP TABLE [IF  EXISTS] 表名;

示例:

USE myschool;
DROP TABLE IF EXISTS `student`;

  <在删除表之前,先使用IF EXISTS语句验证表是否存在>

 

修改

语法:

示例

DROP TABLE IF EXISTS `demo01`;
#创建表
CREATE TABLE  `demo01`(
   `id` INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
   `name` VARCHAR(8) NOT NULL
);
#修改表名
ALTER TABLE `demo01` RENAME `demo02`;
#添加字段
ALTER TABLE ` demo02 ` ADD `password` VARCHAR(32) NOT NULL;
#修改字段
ALTER TABLE ` demo02 ` CHANGE `name` `username`CHAR(10) NOT NULL;
#删除字段
ALTER TABLE ` demo02 ` DROP `password`;

添加主键

语法:

ALTER TABLE 表名 ADD CONSTRAINT 主键名

         PRIMARY KEY 表名(主键字段);

如何设置grade表中gradeId字段为主键?

ALTER TABLE `grade` ADD CONSTRAINT `pk_grade`    PRIMARY KEY `grade`(`gradeId`);

添加外键

语法:

ALTER TABLE 表名 ADD CONSTRAINT 外键名              FOREIGN KEY(外键字段)
REFERENCES 关联表名(关联字段);

如何将student表的gradeId字段和grade表的gradeId字段建立外键关联?

ALTER TABLE `student`  ADD  CONSTRAINT fk_student_grade FOREIGN KEY(`gradeId`) 
REFERENCES `grade` (`gradeId`);

 

MySQL系统帮助

语法:             HELP 查询内容;

示例:             HELP contents;

                     HELP Data Types;

                     HELP INT;

初识MySQL(非常详细)_第25张图片      初识MySQL(非常详细)_第26张图片

初识MySQL(非常详细)_第27张图片

初识MySQL(非常详细)_第28张图片

你可能感兴趣的:(日常笔记)