目标

了解MySQL数据库

学会安装MySQL

学会使用SQLyog数据库管理工具

了解常用的数据库命令

熟悉创建数据库表的语句

熟悉常见的数据列属性、类型和索引

什么是数据库

数据库(Database,简称DB)

概念

长期存放在计算机内、有组织、可共享的大量数据的集合,是一个数据“仓库”

作用

保存、管理数据

数据库总览

关系数据库(SQL)

MySQL、Oracle、SQL Server、SQLite、DB2

非关系型数据库(NOSQL)

Redis、MongoDB

什么是DBMS

数据库管理系统(Database Management System)

数据管理软件,科学组织和存储数据、高效地获取和维护数据

MySQL简介

概念

是现流行的开源、免费的关系型数据库

特点

免费、开源数据库

小巧、功能齐全

使用便捷

可运行于Windows或Linux操作系统

可适用于中小型甚至大型网站应用

MYSQL的运行机制

支持接口 标准C的API、JDBC、CDBC、.NET、PHP、Python、Perl、Ruby、Cobol

在Windows操作系统下安装MySQL

下载MySQL

MySQL 5.5.40 (Windows版)下载地址:MySQL :: MySQL Community Downloads

数据目录不要在系统盘,以免卸载时删除数据包

启用安装向导,避免繁琐的 my.ini 配置文件

数据库语言编码设置

安装关键步骤

端口设置 3306(默认)

编码设置 utf8

密码设置

Navicat管理工具

连接数据库

打开MySQL命令窗口

在DOS命令行窗口(cmd.exe)

在窗口中进入 安装目录\mysql\bin

可设置环境变量

连接数据库语句

mysql  -h 服务器主机地址  –u  用户名  -p用户密码

结构化查询语句SQL

结构化查询语句分类

名称

解释

命令

DDL

(数据定义语言)

定义和管理数据对象,

如数据库,数据表等

CREATE、DROP、ALTER

DML

(数据操作语言)

用于操作数据库对象中所包含的数据

INSERT、UPDATE、DELETE

DQL

(数据查询语言)

用于查询数据库数据

SELECT

DCL

(数据控制语言)

用来管理数据库的语言,包括管理权限及数据更改

GRANT、COMMIT、ROLLBACK

命令行操作数据库

创建数据库
CREATE  DATABASE    [IF NOT  EXISTS]   数据库名;
删除数据库
DROP DATABASE  [IF EXISTS] 数据库名; 
查看数据库
SHOW   DATABASES;
使用数据库
USE  数据库名;

工具建表

建表

显示表结构

desc 表名

显示表创建语句

show create table 表名

创建数据表

属于DDL的一种

//                                   反引号 (可选、区别于单引号)
CREATE   TABLE [ IF NOT EXISTS ]    `表名`   (
                   //表列类型设置  表列类型设置
        `字段名1`    列类型 [ 属性 ]  [ 索引 ] [注释] ,
        `字段名2`   列类型 [ 属性 ]  [ 索引 ] [注释] , 
         … …    
         `字段名n`   列类型 [ 属性 ]  [ 索引 ] [注释] 

)  [  表类型 ] [ 表字符集 ] [注释] ;

反引号用于区别MySQL保留字与普通字符而引入的

数据值和列类型

列类型

规定数据库中该列存放的数据类型

分为

数值类型

字符串类型

日期和时间型

数值类型

NULL值

数值类型

类型

说明

取值范围

存储需求

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

字符串形式的浮点数

decimal(m, d)

m个字节

字符串类型

类型

说明

最大长度

char[(M)]

固定长字符串,检索快但费空间, 0 <= M <= 255

M字符

varchar[(M)]

可变字符串

0 <= M <= 65535

变长度

tinytext

微型文本串

28–1字节

text

文本串

216–1字节

日期和时间型数值类型

类型

说明

取值范围

DATE

YYYY-MM-DD,日期格式

1000-01-01~ 9999-12-31

TIME

Hh:mm:ss ,时间格式

-838:59:59~838:59:59

DATETIME

YY-MM-DD hh:mm:ss

1000-01-01 00:00:00

9999-12-31 23:59:59

TIMESTAMP

YYYYMMDDhhmmss格式表示的时间戳

197010101000000 ~2037年的某个时刻

YEAR

YYYY格式的年份值

1901~2155

NULL值

理解为“没有值”或“未知值”

不要用NULL进行算术运算,结果仍为NULL

选择数据类型

整数和浮点

日期类型

char和varchar

数据字段属性

UNSIGNED

无符号的

声明该数据列不允许负数

ZEROFILL

0填充的

不足位数的用0来填充,如 int(3),5则为 005

AUTO_INCREMENT

自动增长的,每添加一条数据,自动在上一个记录数上加1

通常用于设置主键,且为整数类型

可定义起始值和步长

NULL 和 NOT NULL

默认为NULL,即没有插入该列的数值

如果设置为NOT NULL,则该列必须有值

DEFAULT

默认的

用于设置默认值

例如,性别字段,默认为“男”,否则为“女”;若无指定该列的值,则默认为“男”的值

数据字段注释

 CREATE   TABLE [ IF NOT EXISTS ]    `test`   (
      `id`   int (11)  UNSIGNED  COMMENT   ‘编码号’
)COMMENT=‘测试表’;

数据表的类型

设置数据表的类型

CREATE TABLE  表名(
	#省略一些代码
) ENGINE =  MyISAM

 MySQL注释:1、#……        单行注释 2、/*……*/     多行注释

或者
CREATE TABLE  表名(
	#省略一些代码
) ENGINE =  InnoDB

MySQL的数据表的类型

MyISAM、InnoDB 、HEAP、BOB、CSV等

常见的MyISAM与InnoDB类型

名称

MyISAM

InnoDB

事务处理

不支持

支持

数据行锁定

不支持

支持

外键约束

不支持

支持

全文索引

支持

不支持

表空间大小

较小

较大,2

表列类型设置

可为数据库、数据表、数据列设定不同的字符集

设定方法

创建时通过命令来设置,如

 CREATE TABLE  表名(
	#省略一些代码
)CHARSET  =  utf8;

如无设定,则根据MySQL数据库配置文件my.ini

(Windows系统)中的参数设定 如:character-set-sever = utf8

数据表的存储位置

MySQL数据表以文件方式存放在磁盘中

包括表文件、数据文件以及数据库的选项文件

位置:MySQL安装目录\data下存放数据表。目录名对应数据库名,该目录下文件名对应数据表

修改数据表

修改表(ALTER TABLE)
修改表名
 ALTER TABLE 旧表名  RENAME AS  新表名
添加字段
 ALTER TABLE 表名   ADD 字段名   列类型 [ 属性 ]   
修改字段
 ALTER TABLE 表名   MODIFY 字段名   列类型 [ 属性 ]   
 ALTER TABLE 表名   CHANGE 旧字段名  新字段名   列类型 [ 属性 ]
删除字段
 ALTER TABLE 表名   DROP  字段名

删除数据表

 DROP  TABLE  [ IF  EXISTS ]   表名

IF EXISTS 为可选,判断是否存在该数据表如删除不存在的数据表会抛出错误

练习

练习二、创建数据表student

需求说明使用语句新建student表具体设计如下

CREATE TABLE student (
    StudentNo INT(4) NOT NULL PRIMARY KEY,
    LoginPwd VARCHAR(20),
    StudentName VARCHAR(20),
    Sex TINYINT(1),
    GradeId INT(11),
    Phone VARCHAR(50) NOT NULL,
    Address VARCHAR(255) NOT NULL,
    BornDate DATETIME,
    Email VARCHAR(50) NOT NULL,
    IdentityCard VARCHAR(18)
);

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部