MySQL数据库学习(一)--数据库基本操作和表的操作

前言

       在以往的学习中,一直是只知道向前进行学习,而没有回过头来进行知识的整理与加工,因此经过了一段时间,所学的知识会忘记的所剩无几。在后面需要这部分知识点时,也因为没有留下自己经过整理过的笔记,复习起来也会困难很多。顺便说一句,北方的天气真的冷,现在在哆哆嗦嗦的写着笔记。

正文

       开始时,首先声明本文参考自《MySQL数据库应用从入门到精通》。接下来是大大的正文环节。

数据库基本操作

创建数据库
create database database_name;

       database 为关键字,database_name为所要创建的数据库,注意需要末尾要加上分号(;)或者\g;

查看数据库
database show databases;

       database要加s,由于显示多个数据库;

选择数据库
use database_name;

       创建完数据库时,需要使用数据库;

删除数据库
drop database database_name;

       在创建数据库之后,则需要创建表来存储数据。在创建表之前先介绍一些基本的数据类型。

数据类型介绍

       可以通过查看系统帮助来查看数据类型;

help data types;
help int;

       注:数据类型的关键字,可以大写也可以小写。

整数类型
整数类型字节
TINYINT1
SMALLINT2
MEDIUMINT3
INT 和 INTEGER4
BIGINT8
浮点数类型,定点数类型和位类型
浮点数类型字节
float4
double8
定点数类型字节
dec(m,d)和decimal(m,d)m+2
位类型字节
bin(m)1~8
日期和时间类型
日期和时间类型字节
date4
datetime8
timestamp4
time3
year1
字符串类型
char系列字符串类型字节
char(m)m
varchar(m)m
text系列字符串类型字节
tinytext0~255
text0~65 535
mediumtext0~167 772 150
longtext0~4 294 967 295
binary系列字符串类型字节
binary(m)m
varbinary(m)m
BLOB系列字符串类型字节
tinyblob0~255
blob0~2^16
mediumblob0~2^24
longblob0~2^32

表的操作

创建表的语法形式
create table table_name(

属性名 数据类型,

........ ,

属性名 数据类型

);

table_name 为表名,不可以重复。

创建表

create table t_dept(

deptno int,

dname varchar(20),

loc varchar(40)

);

查看表定义

describe table_name;

查看表详细定义

show create table table_name\G

      \g与;的作用相同(解释为send command to mysql server),\G解释为send command to mysql server,displayresult vertically ,结果是使结果显示的更加美观。

删除表

 drop table table_name;

      删除之后,使用describe table_name,查看表将会不存在,会报error。

修改表

修改表名

alter table old_table_name rename new_table_name;
desc table_name; 

      desc和describe的作用相同,作用为查看表的描述。

增加字段

    在表的最后一个位置增加字段

alter table table_name add 属性名 属性类型;

    在表的第一个位置增加字段

alter table table_name add 属性名 属性类型 first;

    在指定字段之后增加字段

alter table table_name add 属性名 属性类型 after 属性名;

删除字段

alter table table_name drop 属性名;

修改字段

     修改字段的数据类型

alter table table_name modify 属性名 属性类型;

    修改字段的名字和属性

alter table table_name change 旧属性名 新属性名 新数据类型;

    如果只改变名字不修改属性类型的话,则只需要使用原来的数据类型。
    修改字段的顺序

alter table table_name modify 属性名1 数据类型 first|after 属性名2;

    注:需要创建t_dept表,至少包含dename和loc字段;

    示例:

alter table t_dept modify dname varchar(20) first;

    将dname字段调整到第一行;

alter table t_dept modify dname varchar(20) after loc;

    将dname字段调整到loc字段之后。

操作表的约束

      完整性约束是指数据的准确性和一致性,完整性检查是指检查数据的准确性和一致性。

MySQL支持的完整性


完整性约束关键字含义
NOT NULL约束字段不能为空
DEFAULT设置字段的默认值
UNIQUE KEY(UK)约束字段的值必须是唯一的
PRIMARY KEY(PK)约束字段为表的主键,可以作为该表记录的唯一标识
AUTO_INCREMENT约束字段的值为自动增加
FOREIGN KEY(FK)约束字段为表的外键

      接下来逐一设置6种约束:

设置非空约束(NOT NULL,NK) –注:这里大小写亦可!

create table table_name(

   属性名 数据类型 NOT NULL

  ...........

 );

      当违反了插入数据为空时,数据库则会自动报错!

设置字段的默认值(DEFAULT)

create table table_name(

   属性名 数据类型 DEFAULT 默认值,

   ........

);

设置唯一约束(UNIQUE,UK)

create table table_name(

  属性名 数据类型 UNIQUE,

  ..........

);

       当插入该值出现重复时,则会进行报错。

设置主键约束(PRIMARY KEY,PK)

      当设置主键约束时,自动会添加NOT NULL和UNIQUE约束;

单字段主键

create table table_name(

  属性名 数据类型 PRIMARY KEY,

  ...........

  );

      下面方法和上面方法效果一样

create table table_name(

   属性名 数据类型,

  ......,

  constraint 约束名 PRIMARY KEY(属性名)

 );

      约束名一般写为“约束_属性名”

多字段主键

      多字段主键和单字段主键相同,可以采用将多个字段分开添加主键约束;

create table table_name(

   属性名1 数据类型1 PRIMARY KEY,

   属性名2 数据类型2 PRIMARY KEY,

   ..........

);
create table table_name(

   属性名1 数据类型1 ,

   属性名2 数据类型2,

   ..........

   constraint 约束名 PRIMARY KEY(属性名1,属性名2)

);

设置字段自动增加(AUTO_INCREMENT)

create table table_name(

 属性名 数据类型 AUTO_INCREMENT,

);

设置外键约束(FOREIGN KEY,FK)

      定义:设置外键约束的两个表之间具有父子关系,子类某个字段的取值范围受父类的某个字段决定。在设置FK约束时,设置FK约束的字段必须依赖于数据库中已经存在的父表的主键,同时外键可以设置NULL。

create table table_parent(

  属性名1 数据类型1 PRIMARY KEY,

  属性名2 数据类型2,

  ........

 );
create table table_son(

  属性名1 数据类型1,

  ......,

  constraint 外键约束名 FOREIGN KEY(属性名1) REFERENCE table_parent(属性名1)

 );

表插入数值

示例1:
    首先创建表t_dept,然后在表中插入数值,以及查看表中的数值。
    创建表

create table t_dept(
    dname varchar(20),
    loc varchar(40)
);

    创建含有dname,和loc字段的表t_dept;

    插入表

insert into t_dept VALUES
    ('ppp','xian'),
    ('ttt','xiangxi');

    插入两个对象,dname字段分别为‘ppp’,’ttt’;loc字段分别为‘xian’,’xiangxi’。

    查看表的数值

select * from t_dept;

    这里写图片描述
* 代表的是当前拿到的值。可以对*进行操作从而改变显示的值。
* 示例2:
    设置约束,并插入数值

create table t_dept(
   dname varchar(20) not null,
   likes varchar(40) not null,
   id int primary key
   );

    创建包含字段dname,likes,设置非空约束。id设置为主键约束;

insert into t_dept VALUES
    ('little nephew','little pig named page',65536),
    ('ttt','watermelon',65535),
    ('ppp','ttt',65534);

    这里没有违反约束,插入成功。然后进行查看。

select * from t_dept;

    显示为:
    这里写图片描述
    接下来测试非空约束:

insert into t_dept VALUES
    (null,'test',1222);

    出错信息为:
    这里写图片描述
最后再测试主键约束:
    由于主键约束会自动加上非空和唯一性约束,非空约束和上面测试相同,接下来测试唯一性约束:

insert into t_dept values
    ('11','222',65536);

    由于65536已经存在,插入则会出错,出错信息为:
    这里写图片描述

小结

      这部分主要介绍了数据库的基本操作和表的操作,并且介绍了数据库的数据类型,以及字段的六种约束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值