MySQL数据库建表过程
目录
创建并使用数据库
第一步:打开命令行
第二步:运行MySQL
第三步:建立数据库以及表数据
创建表时约束条件
约束类型
其他SQL语句
MySQL命令行导入导出数据库
创建并使用数据库
第一步:打开命令行
有的是直接输入密码就可以(软件版比较常用)
有的是首先【Win+r】 输入【cmd】,打开MySQL命令行(用的多一些)
还有的是到数据库安装目录下的【bin】文件夹,在地址栏中运行【cmd】
注意:Windows启动 MySQL 的几种方式
第二步:运行MySQL
运行cmd后输入:【mysql -u root -p】 再回车,我的没有密码,所以password那里没有输入。
【正常来讲输入自己设置的密码:(默认:123456)直接回车。】
第三步:建立数据库以及表数据
首先就是建立一个数据库,在这里我们把数据库的名字命名为:jdbc_demo
输入:
create database jdbc_demo;
2、然后我们检查一下是否创建成功
输入:
show databases;
3、使用数据库
输入:
use jdbc_demo;
4、创建表,让表中有ID、名字、密码三条信息(里面信息可以随便改)
输入:
create table user(
id int(4) not null primary key auto_increment,
username varchar(20) not null,
password varchar(10) not null
);
当然我们在创建表之前可以先判断一下这个表在不在
如果数据库中存在这个表,就把它从数据库中drop掉。
DROP TABLE IF EXISTS 表名;
总的来说可以这样写:
DROP TABLE IF EXISTS user;
create table user
(
id int(4) primary key auto_increment, -- 主键ID 可以不设置非空,因为主键本来就是非空且唯一
username varchar(20) not null, -- 用户名 非空
password varchar(10) not null -- 密码 非空
);
5、查看表是否存在
输入:
show tables;
6、查看表的定义
输入:
desc user;
7、插入数据(我们在这里随便写一下)
输入:
insert into user values(0,"tom","12");
8、查看数据
输入:
select * from user;
到这里我们就完成一个创建数据库、建表的过程了,我们看一下运行效果:
注意事项:所有的符号都是英文编写。
创建表时约束条件
约束是建表时给某一列增加的强制数据规则
创建表的语法结构
CREATE TABLE <表名> (
<列名> <数据类型> [列级完整性约束定义]
{, <列名> <数据类型> [列级完整性约束定义]
… }
[, 表级完整性约束定义 ]
);
约束类型
根据上表student表结构写一下约束类型:
主键:PRIMARY KEY (一个表最多只能设置一个,是表每行的唯一性标识,非空且唯一)
外键:FOREIGN KEY(是别的表中的主键,两个表有依赖关系),被别的表依赖的表称为父表,依赖别的表的表成为子表,子表数据增加或修改时,数据必须在父表中存在。父表中数据删除或修改时,数据没有被子表使用
非空:NOT NULL(不允许为空)
唯一性:UNIQUE(如果某列定义加了这个约束,那后续数据不允许出现重复),比如说手机号。每个表最好都有主键约束
检查约束:CHECK (条件表达式),用于限制列的取值范围或规则,例如限制性别只能是男或女
自增:auto_increment(常用在主键上,如果ID有1、2、3、4、5,删掉了3号,那么会变成:1、2、4、5)
【例一】用student表进行举例
sno | name | sex | age | dep | uid |
09512101 | 张三 | 男 | 18 | 计算机系 | 000001 |
09512102 | 李四 | 男 | 19 | 计算机系 | 000002 |
09512103 | 王五 | 女 | 20 | 计算机系 | 000003 |
列名 | 数据类型 | 约束 | 说明 |
sno | CHAR(8) | 主键 | 每个学生学号应非空且唯一 |
name | CHAR(10) | 非空 | 姓名信息必须要保存 |
sex | CHAR(2) | 检查 | 取值“男”或“女” |
age | INT | 检查 | 小于10,大于60的学生年龄无意义 |
dep | VARCHAR(26) | default | 默认值为“计算机系” |
uid | CHAR(18) | 唯一值 | 每个人的身份证号是唯一 |
创建 student 表
CREATE TABLE student(
sno CHAR(8) PRIMARY KEY ,
name CHAR(10) NOT NULL ,
sex CHAR(2) CHECK(sex ='男' OR sex ='女'),
age INT CHECK(age >=10 AND age <=60),
dep VARCHAR(26) default '计算机系',
uid CHAR(18) UNIQUE
);
【例二】用stulesson表进行举例
sno | cname | score |
001 | 数据库原理 | 90 |
003 | 数据库原理 | 80 |
003 | C语言 | 75 |
列表 | 数据类型 | 约束 | 说明 |
sno | CHAR(8) | ||
cname | CHAR(50) | 非空 | 姓名信息必须要保存 |
score | INT | 检查 | 在0~100之间 |
创建 stulesson 表
CREATE TABLE stulesson(
sno CHAR(8),
cname CHAR(50) NOT NULL,
score INT CHECK(score >=0 AND score <=100),
PRIMARY KEY(sno, cname),
FOREIGN KEY(sno) REFERENCES student(sno)
)
注释:
<表名>:所要定义的基本表的名字
<列名>:组成该表的各个属性(列)
<列级完整性约束条件>:涉及相应属性列的完整性约束条件
<表级完整性约束条件>:涉及一个或多个属性列的完整性约束条件
其中 PRIMARY KEY 为主码约束,CHECK为检查约束
其他SQL语句
删除数据库:
drop database 数据库名
删除表:
drop table 表名
在表的末尾添加一个列:
Alter table 表名 add 列名 数据类型 (约束条件);
在表的开头添加一个列:
Alter table 表名 add 列名 数据类型 (约束条件) first;
MySQL命令行导入导出数据库
想直接导入sql文件或者写好后想导出数据库怎么办
MySQL命令行导入导出数据库