数据库如何建表

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 表名;

总的来说可以这样写:

IF EXISTS 表名;  作用:如果表存在就删掉(这段代码怎么执行都不会报错)

DROP TABLE IF EXISTS user; 
-- IF EXISTS 表名; 作用:如果表存在就删掉(这段代码怎么执行都不会报错)

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表进行举例

student 表
sno name sex age dep uid
09512101 张三 18 计算机系 000001
09512102 李四 19 计算机系 000002
09512103 王五 20 计算机系 000003
student 表结构
列名 数据类型 约束 说明
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表进行举例

stulesson 选课表
sno cname score
001 数据库原理 90
003 数据库原理 80
003 C语言 75
stulesson 选课表结构
列表 数据类型 约束 说明
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命令行导入导出数据库

猜你喜欢

转载自blog.csdn.net/rej177/article/details/122727753