MySQL学习一、初识MySQL与基本操作

MySQL教程

一、初识MySQL

1.1 数据库(DB,DataBase):

概念:

数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。

作用:

存储,管理数据

1.2 数据库分类:

关系型数据库(SQL):
  • MySQL,Oracle,Sql Server,DB2,SQLlite
  • 通过表与表之间,行与列之间的关系进行数据的存储
非关系型数据库(NoSQL):
  • Redis,MongDB
  • 非关系型数据库,对象存储,通过对象自身的属性来决定。
DBMS(数据库管理系统):
  • 数据库的管理软件,科学有效的管理数据。维护和获取数据。
  • MySQL,数据库管理系统

1.3 MySQL简介:

MySQL是一个关系型数据库管理系统

安装建议:

不建议下载exe,注册表

1.4 连接数据库:

mysql -uroot -pxxxxx    --连接数据库

update mysql.user set authentication_string=password('设置的密码') where user='root' and Host='localhost';       --修改数据库密码

flush privileges;       --刷新权限

--------------------------------------------------------------
--所有的语句使用:结尾

show datebase;          --查看所有的数据库

use xxx                 --切换数据库

show tables;            --查看数据库中所有的表

describe 表名            --显示数据库中所以表的信息

create database 数据库名称   --创建数据库

exit                    --退出连接

--                      --单行注释

/**/                    --多行注释

1.5 数据库语言:CRUD 增删改查

DDL 定义

DML 操作

DQL 查询

DCL 控制

二、操作数据库

操作数据库>操作数据库中的表>操作数据库中表的数据

mysql关键字不区分大小写

2.1 操作数据库

创建数据库:
CREATE DATABASE [IF NOT EXISTS] 数据库名                --[]代表可选(避免重复)
删除数据库:
DROP DATEBASE [IF EXISTS] 数据库名
使用数据库:
-- tab 键的上面,如果你的表名或者字段名是一个特殊字符,就需要带``
USE 数据库名
查看数据库:
SHOW DATABASE

2.2 数据库的列类型:

数值
  • tinyint 十分小的数据 1个字节
  • smallint 较小的数据 2个字节
  • int 4个字节
  • bigint 8个字节
  • float 4个字节
  • double 8个字节
  • decimal 金融计算时使用
字符串
  • char 0-255
  • varchar 0-65535
  • tinytext 2^8 - 1
  • text 2^16 - 1
时间日期
  • date YYYY-MM-DD,日期
  • time HH:mm:ss 时间格式
  • datetime YYYY-MM-DD HH:mm:ss 最常用
  • timestamp 1970年到现在的毫秒数!
  • year 年份表示
null
  • 没有值
  • 不要使用null计算,结果为null

2.3 数据库的字段属性:

Unsigned
  • 无符号的整数
  • 声明了该列不能声明为负数
zerofill
  • 0填充的
  • 不足的位数,使用0来填充,int(3),5 --- 05
自增
  • 通常理解为自增,自动在上一条记录的基础上+1(默认)
  • 通常用来设计唯一的主键~ index,必须是整数类型
  • 可以自定义设计主键自增的起始值和步长
非空 NULL not null
  • 假设设置为 not null,如果不给他赋值,就会报错
  • NULL,如果不填写,默认就是null
默认
  • 设置默认的值
  • sex,默认值为男,如果不知道该列的值,则会有默认的值

2.4 创建数据库表:

-- AUTO_INCREMENT 自增
-- 字符串使用单引号括起来
-- 所有语句后面加,最后一个不用加
-- comment 注释
-- default 默认值
-- primary key 主键 (不建议写在语句里,写到最后明了) 一般一个表只有唯一一个的主键
-- ENGINE 引擎 INNODB
-- CHARSET 编码

create table if not exists `student`(
    `id` int(20) not null auto_increment comment '学号',
    `name` varchar(30) not null default '匿名' comment '姓名',
    `password` varchar(20) not null default '123456' comment '密码',
    `sex` varchar(2) not null default '女' comment '性别',
    `birthday` datetime default null comment '出生日期',
    `address` varchar(100) default null comment '家庭住址',
    `email` varchar(20) default null comment '邮箱',
    primary key (`id`)
)ENGINE = INNODB DEFAULT CHARSET = UTF8
格式:
CREATE TABLE [IF NOT EXISTS] '表名' (
    '字段名' 列类型 [属性] [索引] [注释],
    '字段名' 列类型 [属性] [索引] [注释],
    '字段名' 列类型 [属性] [索引] [注释],
        .......
    '字段名' 列类型 [属性] [索引] [注释]
)[表类型] [字符集] [注释]
常用命令:
show create database school;    -- 查看创建数据库的语句
show create table student;      -- 查看建表语句
DESC student;                   -- 查看一张表的具体结构

2.5 数据表的类型

-- 数据库引擎
INNODB 默认使用
NYISAM 早年使用
MYISAM INNODB
事务支持 不支持 支持
数据行锁定 不支持 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间的大小 较小 较大,约为2倍

常规使用操作:

  • MYISAM 节约空间,速递较快
  • INNODB 安全性高,事务的处理,多表多用户操作

在物理空间存在的位置

所有的数据库文件都放在data目录下

本质都是文件的存储!

MySQL引擎在物理文件上的区别

  • InnoDB在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件
  • MYISAM对应文件
    • *.frm -表结构的定义文件
    • *.MYD 数据文件(data)
    • *.MYI 索引文件(index)

设置数据库表的字符集编码

CHARSET=utf8

不设置,mysql默认字符集(不支持中文)

mysql默认编码为Latin1,不支持中文

在my.ini中设置默认编码

character-set-server=utf8

2.6 修改删除表

修改
-- 修改表名称 alter table 旧表名 rename as 新表名;
alter table teacher rename as student;

-- 增加表的字段 alter table 表名 add 字段名 列属性;
alter table student add age int(11);

-- 修改表的字段

-- 修改约束 alter table 表名 modify 字段名 列属性;
alter table student modify age varchar(11);

-- 字段重命名 alter table 表名 change 旧字段名 新字段名 列属性;
alter table student change age age1 int(11);

-- 删除表的字段
alter table student drop age;
删除
-- 删除表
drop table if exists student;

== 所有的创建和删除操作尽量加上判断,以免报错==

猜你喜欢

转载自www.cnblogs.com/yfyyy/p/12431932.html