MySQL笔记1-数据库基础与DDL-基于黑马

概述

数据库基本概念【理解】

  • 数据(data)
    数据是数据库中存储的基本对象,是用来描述事物的符号记录,数据有两个特点:
    • 数据与数据的语义是不可分割的
    • 数据在不同的语境有不同的含义,也称语义
名称 全称 简称
数据库 存储数据的仓库,数据是有组织的进行存储 DataBase (DB)
数据库管理系统 操纵和管理数据库的大型软件 DataBase Management System (DBMS)
SQL 操作关系型数据库的编程语言,定义了一套操作 SQL 关系型数据库统一标准 Structured Query Language (SQL)

  • 关系关型数据库(RDBMS)

概念: 建立在关系模型基础上,由多张互相链接的二维表组成的数据库。

特点:

1.   使用表存储数据,格式统一,便于维护

2.   使用SQL语言操作,标准统一,使用方便

MySQL笔记1-数据库基础与DDL-基于黑马_第1张图片

  • 数据模型
    • 我们可以通过MySQL客户端连接数据库管理系统DBMS,然后通过DBMS操作数据库。
    • 可以使用SQL语句,通过数据库管理系统操作数据库,以及操作数据库中的表结构及数据。
    • 一个数据库服务器中可以创建多个数据库,一个数据库中也可以包含多张表,而一张表中又可以包含多行记录。

SQL

  •  SQL通用语法

    • SQL语句可以单行或者多行书写,以分号结尾。
    • SQL语句可以使用空格/缩进来增强语句的可读性
    • MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
    • 注释:
      •     单行注释: -- 注释内容 或 # 注释内容(MySQL特有)
      •     多行注释:  /* 注释内容 */     
  • SQL分类

           SQL语句,根据其功能,主要分为四类:DDL、DML、DQL、DCL。

分类 全称 说明
DDL Data Definition Language 数据定义语言,用来定义数据库对象(数据库,表,字段)
DML Data Manipulation Language 数据操作语言,用来对数据库表中的数据及逆行增删改
DQL Data Query Language 数据查询语言,用来查询数据库中表的记录
DCL Data Control Language

数据控制语言,用来创建数据库用户、控制数据库的访问权限

DDL

  • DDL-数据库操作 

 注:[ ]为可选项

拓展:一般使用utf8字符集的时候,会选择utf8mp4,以防特殊字符占四个字节。

方法 说明

show databases;

查询所有数据库

select database();

查询当前数据库

create database[if not exists] 数据库名 [default charset 字符集] [collage 排序规则];

创建

drop database [if exists] 数据库名;

删除

use 数据库名;

使用
#查询所有数据库
mysql> show databases;

#创建itcast数据库
mysql> create database itcast;

#如果当前存在数据库,再次创建会报错,使用if not exists则不会报错
mysql> create database if not exists itcast;

#使用utf8字符集创建数据库
mysql> create database if not exists itcast default charset utf8mb4;

#使用itcast数据库
mysql> use itcast;

#查询当前数据库内容
mysql> select database();

#删除数据库[不要动系统库,删自己建的]
mysql> drop database if exists itcast;
  • DDL-表操作-查询  

方法 说明
show tables; 查询当前数据库所有表
desc 表名; 查询表结构
show create table 表名; 查询指定表的建表语句

#查询当前数据库所有表[先使用其中一个表]
mysql> show tables;

#查询表结构
mysql> desc student;

#查询表的建表语句
mysql> show create table student;
  • DDL-表操作-创建

  • 方法

 create table 表名(
     字段1 字段1类型[comment 字段1注释],
     字段2 字段2类型[comment 字段2注释],
     字段3 字段3类型[comment 字段3注释],
     ......
     字段n 字段n类型[comment 字段n注释]
)[comment 字段n注释];

示例
mysql> create table student(
    -> id int comment '学号',
    -> name varchar(50) comment '姓名',
    -> address varchar(50) comment '地址'
    -> )comment '学生';
  • DDL-表操作-数据类型

MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

字符类型

类型 大小 范围(有符号) 范围(无符号) 用途
tinyInt 1 Bytes (-128,127) (0,255) 小整数值
smallint 2 Bytes (-32 768,32 767) (0,65 535) 大整数值
mediumInt 3 Bytes (-8 388 608,8 388 607) (0,16 777 215) 大整数值
int或integer 4 Bytes (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
bigint 8 Bytes (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
float 4 Bytes (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度
浮点数值
double 8 Bytes (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度
浮点数值
decimal 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

字符串类型

类型 大小 用途
char 0-255 bytes 定长字符串
varchar 0-65535 bytes 变长字符串
tinyblob 0-255 bytes 不超过 255 个字符的二进制字符串
tinytext 0-255 bytes 短文本字符串
blob 0-65 535 bytes 二进制形式的长文本数据
text 0-65 535 bytes 长文本数据
mediumblob 0-16 777 215 bytes 二进制形式的中等长度文本数据
mediumtext 0-16 777 215 bytes 中等长度文本数据
longblob 0-4 294 967 295 bytes 二进制形式的极大文本数据
longtext 0-4 294 967 295 bytes 极大文本数据

日期类型

类型 大小
(bytes)
范围 格式 用途
date 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
time 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
year 1 1901/2155 YYYY 年份值
datetime 8 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59' YYYY-MM-DD hh:mm:ss 混合日期和时间值
timestamp 4

'1970-01-01 00:00:01' UTC 到 '2038-01-19 03:14:07' UTC

结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07

YYYY-MM-DD hh:mm:ss 混合日期和时间值,时间戳

根据需求创建表 【案例】

设计一张员工信息表,要求如下:

  1. 编号(纯数字)
  2. 员工工号(字符串类型,长度不超过10位)
  3. 员工姓名(字符串类型,长度不超过10位)
  4. 性别(男/女,存储一个汉字)
  5. 年龄(正常人年龄,不可能存储负数)
  6. 身份证号(二代身份证号均为18位,身份证中有X这样的字符)
  7. 入职时间(取值年月日即可)
mysql> create table emp (
    ->     id int comment '编号',
    ->     workno varchar(10) comment '工号',
    ->     name varchar(10) comment '姓名',
    ->     gender char(1) comment '性别',
    ->     age tinyint comment '年龄',
    ->     idcard char(18) comment '身份证号',
    ->     entrydate date comment '入职时间'
    -> ) comment '员工表';

DDL-表操作-修改

方法 说明
alter table 表名 add 字段名 类型(长度) [comment 注释] [约束] 添加字段
alter table 表名 modify 字段名 新数据类型(长度); 修改数据类型
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束] 修改字段名和字段数据
alter table 表名 drop 字段名; 删除字段
alter table 表名 rename to 新表名; 修改表名
drop table[if exists] 表名; 删除表名

注意:删除表时,表中数据也同时会被删除

#往emp表添加新的字段,名称为nickname,类型为varchar(20)
alter table emp add nickname varchar(20) comment '名称';

#将emp表的nickname字段修改为username,类型为varchar(30)
alter table emp change nickname username varchar(30) comment '用户名';

#将emp表的字段username删除
alter table emp drop username;

#将emp表的表名修改为employee
alter table emp rename to employee;

#删除指定表,并重新创建该表
truncate table employee;

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