看完这篇你能学到

1、数据库的操作

2、表的操作

3、表的约束

4、索引的操作


一、数据库的创建,修改,删除

1,创建

create database 数据库名;

使用mysql语句都要加分号作为结尾;

例:create table ch2;

可以通过   show databases;   查看存在的数据库!

可以看到除了自己创建的ch2数据库,mysql自带四个系统库、

修改数据库的配置:

通过 show create database 数据库名; 可以查看数据库的信息:

可以看到该数据库默认的编码方式为 utf-8

那么我们可以通过:

alter database 数据库名 default character set gbk collate gbk_bin;

可以看到已经完成修改编码方式、

2 删除

drop database 数据库名;

例: drop database ch2;

可以看到该数据库ch2已被删除、


二: 表的创建(create),修改(alter),删除(drop)

在上面所学的创建数据库的方法,创建一个名为ch2的数据库,并使用

use 数据库名;

例:use ch2;
        

之后的操作都基于该数据库上;

1、创建表:

create table 表名 ( 字段名1 字段类型 约束,字段名2 字段类型 约束,。。。。);

字段类型现在只要知道 int ,和 char(10)即可,后面一章再讲类型、

具体约束后面再讲,现在先演示:

create table t1(id int not null,name char(10) default 'zdw');

通过 show tables; 可以查看已创建的表,可以看到t1创建成功,

至于  not null(非空约束)  default ‘zdw’(默认约束)后面再讲,可以看到多字段之间用逗号隔开,而 字段名 与 类型 与 约束 之间,只需要空格即可!

可以通过两种方式查看表的信息:

a、   show create table 表名;查看

例 show create table t1;

可以看到有创建表的代码、

b、  通过   describe  表名; 查看表,当然 describe 可以简写desc

例 describe t1;

desc t1;

可以看到 字段名,类型,是否为空,是否为关键字,默认值,以及其他的附加信息、

2、修改表

a、 修改表名

alter table 原表名 rename to 新表名;

例: alter table t1 rename to table1;

可以看到t1已不存在,变为table1、

b、修改字段名

alter table 表名 change 原字段名 新字段名 类型;

可以看到原本为id的字段名变成了ids,而其类型也从int变成了char(10)、

c、修改字段类型并移动其位置

alter table 表名 modify 字段名 新类型  first | after 其他字段名

first:让其在第一个

after 其他字段名: 让其紧跟在指定字段名后

例:

alter table table1 modify ids int  after name;

可以看到,本来通过ids的类型为char(10),现在为int,并且字段位置也变成了在name的后面、

d、添加字段并指定其位置

alter  table 表名 add 字段名 类型 约束 first | after 其他字段名

例: alter table table1 add age int not null first;

可以看到成功添加了一个字段名为age,类型为int,约束为非空,并且位于第一个!

e、删除字段

alter table 表名 drop 字段名;

例: alter table table1 drop age;

可以看到成功把名为age的字段删除!

3、删除表

drop table 表名;

例:drop table table1;

可以看到在删除成功表table1,查询已存在的表为空!


三、约束

在上面表的创建中,我们有提到过约束,并且也用到  not null非空约束,default 默认约束。。现在让我们来看看:

约束是对表的完整性起到一定作用的代码,有以下几种:

a、主键约束 primary key

b、 非空约束 not null

c、 唯一约束 unique

d、 默认约束 default

e、 外键约束 foreign key

我们现在只说前四种,最后的外键约束在后面章节会说到!

1、主键约束

一张表有很多个字段,但是总是要有一个字段或者几个字段组合起来,能够唯一确认该条记录的吧,所以我们就有主键约束,即让一个或几个字段来唯一确定一条记录、

设置约束可以在创建表的时候设置,也可以在修改表字段的时候设置,我们现在来简单演示怎么设置主键约束:

创建一张名为user的表,有id字段,name字段,age字段,通过上面的学习,这应该是很简单的,那我们现在为id字段设置主键约束,让他可以确定其他字段,就像一个人的身份证可以唯一确定一个人的姓名,年龄一样:

在创建表的时候设置:

create table user (id int primary key,name char(10),age int);

可以看到id字段为key 为pri,即primary key、

假如设置了单个主键,那么可以为他设置值自动增长,

auto_increment;

alter table user modify id int auto_increment;

可以看到extra附加信息为自动增长,即可以不用为该字段添加数据,当添加记录时,他会自动加1,在讲添加数据时会演示!

那么怎么设置两个主键呢?

先把一开始设置为id为主键的删了、

alter table user drop primary key;

然后再添加

alter table user add constraint primary key(id,name);

可以看到,现在id,name字段的key的值都为pri,说明他们为联合主键,只有他们两个一起才可以唯一确定一条记录、

2、非空约束、

顾名思义,即设置了该约束的字段在添加数据的时候不能为空,

上面演示了在创建表的时候添加约束,现在我们在修改表的时候设置约束,也是我们上面学过的!

alter table user modify name char(10) not null;

可以看到name字段null的值为no,表名为非空,具体添加数据演示,在后面会讲,现在只要明白即可、

3、唯一约束、

上面讲了主键约束可以唯一确定一条记录,表名主键约束就是唯一的,那为什么还要唯一约束呢??就是为了只想设置他为唯一,但不想设置他为主键的时候才设置为唯一约束!

即设置了唯一约束的字段,在这张表里面的这个字段值不能重复!

alter table user modify age int unique;

可以看到age字段的key为uni即 unique,所以说,主键约束包含了非空约束和唯一约束,当你一个字段想让他唯一但不是非空是,设置为唯一约束即可!

4、默认约束

即给一个字段默认值,当添加一条记录时,并没有为设置了默认约束的字段添加值时,那么默认约束就发挥了作用,该值自动为默认值,而没有设置默认约束的,默认值都为null!

alter table user modify age int default 18;

可以看到age字段default的值为19,说明该字段在未添加数据时,默认为19,具体添加演示,在后面章节会说、


四、索引

为某个字段创建索引的目的是  :在用该字段查询数据时,查找的速度更快!

1、创建索引

有三种方式:

a、在创建表的时候为字段设置索引:

我们新建一个表,表名为t1,字段为id int,name char,age int,并为 id 字段建立索引、

create table 表名 (字段名1 类型 约束,字段名2 类型 约束,... unique index 索引名(所要设字段名 asc | desc));

可以看到,这种方式就是在字段定义完了后在后面加定义索引的代码

unique index 索引名 (所要设字段名 asc | desc)

可以设置多个,用逗号隔开即可

在这里,unique 是可选的,假如有,则该字段设置为唯一,如果没,则该字段可以不唯一

asc 升序排序(默认)

desc 降序排序

这两个排序是他自己弄的,和我们没关系

b、在修改表的时候添加索引

alter table 表名 add unique index 索引名 (所要设字段名 asc | desc)

可以看到成功为name字段设置了唯一索引

c、直接在已有表上创建索引

create unique index 索引名 on 表名 (所要设字段名 asc | desc)

可以看到成功为age字段创建了唯一索引、

2、查看索引

除了用上面方法查看已有索引外,还可以用

show   create table  表名

可以看到上面我们用三种不用的方式为三个字段创建的索引,及其索引名

3、删除索引

虽然索引可以加快查找速度,但是会占用一定的空间,所以可以删除不必要的索引、

删除索引也有两种方法:

a、在修改表的时候删除索引

alter table 表名 drop index 索引名

可以看到名为i1的索引被删除

b、直接删除索引

drop index 索引名 on 表名

可以看到 名为i2的索引被删除!


五,总结

DDL 数据定义语言

Data defiition language

1、数据库的定义

A 创建数据库

create database 数据库名

B 使用数据库

Use  数据库名

C 查看已有数据库

Show databases

D 修改数据库配置

Alter database 数据库名 default character set 编码 collate 编码_bin

E 删除数据库

Drop database 数据库名

2、表的操作

A 创建表

Create table 表名( 字段名 字段类型 约束,n….);

B 查看已创建的表

Describe 表名

Show create table 表名

C 修改表名

Alter table 表名 rename to 新表名

D 修改字段名

Alter table 表名 change 字段名 新字段名 字段类型 (约束)

只是改变字段名,假如字段类型没有变,那她也不会变

假如该字段有数据不符合修改后的类型,则修改失败

E 修改字段

Alter table 表名 modify 字段名 新数据类型 first/after 字段名;

同上

F 添加字段

Alter table 表名 add 字段名 数据类型 (约束)

假如本来有数据在表中,则不能为添加的字段设置非空约束

G 删除字段

Alter table 表名 drop 字段名

H 删除表

Drop table 表名

3、完整性约束

在创建或者修改表的时候可以

A 主键约束

可以一个,也可以多个,

Primary key

该约束包含 唯一约束以及非空约束

B 唯一约束

Unique

表明该字段的值不能重复!

在用unique指定多个字段死活,只对第一个字段生效,要指定多个字段,在定义字段时在他后面定义唯一约束

C 非空约束

Not null

也是,只能在字段后面定义

D 默认约束

Default

在字段后面定义

E 外键约束

之后再讲!

4、索引 index

A 在创建表时创建索性

在字段最后加

(unique)index (索引名)(字段 desc/asc)

B 在修改表的时候添加

Alter table 表名 add unique index 索引名(字段名)

C 在已有表上创建索引

Create unique index 索引名 on 表名(字段名)

D 删除索引

Alter table 表名 drop index 索引名

Drop index 索引名 on 表名

【MySQL】【入门】第二章:数据库及表的创建相关推荐

  1. 第二章 数据库和表的基本操作

    1;数据类型 2: 使用MySQL数据库储存数据时,不同的数据类型绝对了MySQL的储存数据方式的不同 3:每种数据类型中各类型也有区别 一整数类型 (1)TINYINT 1 字节. (2)TNI 4 ...

  2. 删除第一个_学习数据结构--第二章:线性表(顺序存储、插入、删除)

    第二章:线性表(顺序表示) 1.线性表的定义和基本操作 线性表是具有相同数据类型的n(n≥0)个数据元素的有限序列 线性表中第一个元素称为表头元素;最后一个元素称为表尾元素. 除第一个元素外,每个元素 ...

  3. 【数据结构总结】第二章:线性表

    第二章:线性表 提示:本文主要是以思维导图的形式概括数据结构第一章的精华内容,基本不会用到文字性的内容,目的是为了给大家梳理每个重要的知识点的相关概念,方便大家在复盘的时候快速阅读和浏览,加快记忆速度 ...

  4. mysql 表引擎 entity framework_EntityFramework之数据库以及表基本创建(一)

    前言 之前有学过EF一段时间那时EF才4.0似乎还不太稳定,而现在EF都已7.0版本,同时AspNet Identity都与此大有关联,看来是大势所趋于是开始学习EF,在学EF过程中也遇到一些小问题, ...

  5. 《数据结构(C语言版)》严巍敏课件~第二章:线性表

    <数据结构(C语言版)>严巍敏课件-第二章:线性表

  6. webrtc 入门第二章 音视频录制

    webrtc 入门第二章 音视频录制 一.介绍 1.媒体录制原理 ​ 在很多场景中回放音视频资源的需求是非常重要的例如会议,直播授课等.任何媒体形式的表情都可进行录制,如 ,,等.其中内容更加自由用户 ...

  7. 实验三 mysql数据库与表的创建_实验二 数据库和表的创建与管理

    实验二 数据库和表的创建与管理 创建用于企业管理的员工管理数据库,数据库名为YGGL中,YGGL数据库中包括三个表:Employees(员工信息表).Departments(部门信息表).Salary ...

  8. SQLSERVER数据库、表的创建及SQL语句命令

    SQLSERVER数据库.表的创建及SQL语句命令 备份,还原,创建,删除,查询,修改 ** 数据库定义及操作命令:** 按照数据结构来组织.存储和管理数据的仓库.由表.关系以及操作对象组成,把数据存 ...

  9. 数据库原理及应用——熟悉数据库管理工具、数据库和表的创建与管理

    实验一 熟悉数据库管理工具.数据库和表的创建与管理 一.实验目的: 了解SQL Server或MYSQL数据库的基本知识: 熟悉SQL Server或MYSQL环境和系统结构: 掌握图形化交互工具的基 ...

  10. mysql event scheduler机制 与 动态表名创建

    mysql event scheduler机制 与 动态表名创建 今天有一个需求,需要定时在mysql创建表与删除表,以及根据日期命名表名.诚然,通过外部程序很容易实现与控制这一切. 但是需要额外的服 ...

最新文章

  1. ADSL上网常见错误提示
  2. IOS开发中发送Email的两种方法
  3. android版本更新提示安装失败,android4.4.2系统更新后总是安装失败
  4. Spring注解之 @SuppressWarnings注解
  5. sql常用crud命令
  6. linux 桌面显示视频播放器,Ubuntu 13.10开启媒体播放器VLC桌面通知的步骤
  7. 苹果cms V10模板 首涂黑白风格窄屏超小模板
  8. python计算器小程序源码_python练习-计算器小程序
  9. 中国移动试商用GPS手机导航业务 包月资费15元
  10. 快戳!Python 开发者的福音来啦!
  11. 多线程中redistemplate不执行_在 Flink 算子中使用多线程如何保证不丢数据?
  12. 值得推荐的13款可视化软件,快收藏!
  13. 来自Unix/Linux的编程启示录
  14. 睡眠阶段分期——SVM和ELM分别与粒子群算法结合(main)
  15. 电子系统设计实践——软件编写
  16. 消息中间件(消息队列)介绍
  17. 全国计算机等级考试有java吗,请问全国计算机等级考试有没有二级Java?
  18. Hadoop,master和slave简单的分布式搭建
  19. 新东方托福词汇(List 31 ~ List 35)
  20. leetcode刷题:292. Nim 游戏(Java)

热门文章

  1. 这10种人,最适合做管理者
  2. android ui设计与开发工具,Android用户体验与UI设计
  3. CSS 中的 HSL 和 HSLA 与 RGB 和 RGBA
  4. 固态硬盘SSD学习笔记:SSD主控
  5. QQ IDKey生成
  6. python学习 - 标准库概览
  7. JavaPoet动态生成代码,高薪程序员必会
  8. 2022-2028年中国汽车设计行业发展现状调查及市场分析预测报告
  9. 感冒发烧,病毒,细菌,抗生素?
  10. 黄冠|南昌大学计算机科学与技术,课制|这里有全华师最好看的课件