MySQL数据库建表过程 

目录

创建并使用数据库

第一步:打开命令行

第二步:运行MySQL

第三步:建立数据库以及表数据

创建表时约束条件

约束类型

其他SQL语句 

MySQL命令行导入导出数据库

char 和 varchar 区别

创建并使用数据库

第一步:打开命令行

有的是直接输入密码就可以(软件版比较常用)

有的是首先【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 表

snonamesexagedepuid09512101张三男18计算机系00000109512102李四男19计算机系00000209512103王五女20计算机系000003

student 表结构

列名数据类型约束说明snoCHAR(8)主键每个学生学号应非空且唯一nameCHAR(10)非空姓名信息必须要保存        sexCHAR(2)检查取值“男”或“女”ageINT检查小于10,大于60的学生年龄无意义depVARCHAR(26)default默认值为“计算机系”uidCHAR(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 选课表

snocnamescore001数据库原理90003数据库原理80003C语言75

stulesson 选课表结构

列表数据类型约束说明snoCHAR(8)cnameCHAR(50)非空姓名信息必须要保存scoreINT检查在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命令行导入导出数据库

char 和 varchar 区别

`char`和`varchar`都是SQL数据库中用于存储字符串数据类型的字段类型,它们的主要区别在于存储方式、空间效率以及长度处理:

1. 存储方式:    char:定长字符串类型,每个`char`类型的字段会占用预定义的固定长度的空间,不论实际存储的字符串长度是否达到预设长度。例如,如果你声明一个`char(10)`字段,那么即使你只存储了3个字符,也会占用10个字符的存储空间,并用空格或其他空白字符填充剩余的7个字符位置。    varchar:变长字符串类型,根据实际存储的字符数动态分配存储空间。例如,对于`varchar(10)`,若存储3个字符,只会占用包含3个字符及必要结束标记的存储空间。

2. 空间效率:    char:当数据长度往往固定且较小,或者经常填充到预定义长度时,空间利用率较高,但存储短字符串时可能会造成空间浪费。    varchar:更适合存储长度变化较大的字符串,能有效节省空间,特别是对于大多数字符串都不满预定义长度的情况下。

3. 性能:    char:因为长度固定,在数据存储和检索上可能会更快,特别是在索引密集型操作中,因为存储结构更加紧凑和可预测。    varchar:数据长度不固定,尽管现代数据库系统对此做了优化,但在某些条件下,尤其是在索引较大且字符串长度变化范围大的情况下,其性能可能略低于char。

4. 适用场景:    char:适用于存储固定长度的数据,如身份证号码、ID、邮政编码等,或者是长度一定且不需要额外空间的场景。   varchar:适用于存储长度可变的数据,如姓名、地址、评论等,这些数据长度可能有很大差异。

需要注意的是,不同数据库系统对char和varchar的具体实现可能会有所不同,包括最大长度限制、是否填充空格、存储效率等方面。在MySQL等数据库中,varchar的最大长度可达65535字节,而在Oracle数据库中,varchar2是varchar的增强版本,通常用于替代varchar。

 

好文阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: