【MySQL】【入门】第二章:数据库及表的创建
看完这篇你能学到
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;数据类型 2: 使用MySQL数据库储存数据时,不同的数据类型绝对了MySQL的储存数据方式的不同 3:每种数据类型中各类型也有区别 一整数类型 (1)TINYINT 1 字节. (2)TNI 4 ...
- 删除第一个_学习数据结构--第二章:线性表(顺序存储、插入、删除)
第二章:线性表(顺序表示) 1.线性表的定义和基本操作 线性表是具有相同数据类型的n(n≥0)个数据元素的有限序列 线性表中第一个元素称为表头元素;最后一个元素称为表尾元素. 除第一个元素外,每个元素 ...
- 【数据结构总结】第二章:线性表
第二章:线性表 提示:本文主要是以思维导图的形式概括数据结构第一章的精华内容,基本不会用到文字性的内容,目的是为了给大家梳理每个重要的知识点的相关概念,方便大家在复盘的时候快速阅读和浏览,加快记忆速度 ...
- mysql 表引擎 entity framework_EntityFramework之数据库以及表基本创建(一)
前言 之前有学过EF一段时间那时EF才4.0似乎还不太稳定,而现在EF都已7.0版本,同时AspNet Identity都与此大有关联,看来是大势所趋于是开始学习EF,在学EF过程中也遇到一些小问题, ...
- 《数据结构(C语言版)》严巍敏课件~第二章:线性表
<数据结构(C语言版)>严巍敏课件-第二章:线性表
- webrtc 入门第二章 音视频录制
webrtc 入门第二章 音视频录制 一.介绍 1.媒体录制原理 在很多场景中回放音视频资源的需求是非常重要的例如会议,直播授课等.任何媒体形式的表情都可进行录制,如 ,,等.其中内容更加自由用户 ...
- 实验三 mysql数据库与表的创建_实验二 数据库和表的创建与管理
实验二 数据库和表的创建与管理 创建用于企业管理的员工管理数据库,数据库名为YGGL中,YGGL数据库中包括三个表:Employees(员工信息表).Departments(部门信息表).Salary ...
- SQLSERVER数据库、表的创建及SQL语句命令
SQLSERVER数据库.表的创建及SQL语句命令 备份,还原,创建,删除,查询,修改 ** 数据库定义及操作命令:** 按照数据结构来组织.存储和管理数据的仓库.由表.关系以及操作对象组成,把数据存 ...
- 数据库原理及应用——熟悉数据库管理工具、数据库和表的创建与管理
实验一 熟悉数据库管理工具.数据库和表的创建与管理 一.实验目的: 了解SQL Server或MYSQL数据库的基本知识: 熟悉SQL Server或MYSQL环境和系统结构: 掌握图形化交互工具的基 ...
- mysql event scheduler机制 与 动态表名创建
mysql event scheduler机制 与 动态表名创建 今天有一个需求,需要定时在mysql创建表与删除表,以及根据日期命名表名.诚然,通过外部程序很容易实现与控制这一切. 但是需要额外的服 ...
最新文章
- ADSL上网常见错误提示
- IOS开发中发送Email的两种方法
- android版本更新提示安装失败,android4.4.2系统更新后总是安装失败
- Spring注解之 @SuppressWarnings注解
- sql常用crud命令
- linux 桌面显示视频播放器,Ubuntu 13.10开启媒体播放器VLC桌面通知的步骤
- 苹果cms V10模板 首涂黑白风格窄屏超小模板
- python计算器小程序源码_python练习-计算器小程序
- 中国移动试商用GPS手机导航业务 包月资费15元
- 快戳!Python 开发者的福音来啦!
- 多线程中redistemplate不执行_在 Flink 算子中使用多线程如何保证不丢数据?
- 值得推荐的13款可视化软件,快收藏!
- 来自Unix/Linux的编程启示录
- 睡眠阶段分期——SVM和ELM分别与粒子群算法结合(main)
- 电子系统设计实践——软件编写
- 消息中间件(消息队列)介绍
- 全国计算机等级考试有java吗,请问全国计算机等级考试有没有二级Java?
- Hadoop,master和slave简单的分布式搭建
- 新东方托福词汇(List 31 ~ List 35)
- leetcode刷题:292. Nim 游戏(Java)