《别再说你不会Mysql了》之“数据库和数据表的基本操作”

前言:

        数据库使用搭配Navicat,长期使用需要付费,最新版本破解不稳定,我用的老版(这样商家也不会追究太多)

        再就是数据库不止这一种,这是Mysql的专场,作为前端开发者,常用的是mongodb

        部分学校教课用到的是Mysql技术与应用,很薄的一本,但实际Mysql工作用到的资料还有配套一本大约2倍厚的,提醒大家,这只是入门,并且单是语句用不到什么技术含量,多敲就能过。

        以下内容只包括基本操作,并无框架之类,希望能为入门开发者和高校学生备考提供借鉴,同时也是作为我的前端生涯广度学习上的记录。

        另外开始部分笔者会写的特别详细,小白式文档,且附带语句代码和效果,语言不枯燥,,带你一起高效学习,快速建立回溯复习。

        同时引用他人博客链接作为补充,增强文章科学性。

                                                数据库

创建数据库:

CREATE DATABASE 数据库名;

CREATE DATABASE 数据库;

效果图:

xxgc2同理,使用下面语句即可查询到。

查看过去创建的数据库:

SHOW DATABASES;

效果:

顾名思义是查询你mysql里面所有的数据库

查看刚创建好的数据库:

SHOW CREATE TABLE 数据库;

修改数据库字符编码

ALTER DATABASE 数据库 DEFAULT CHARACTER SET gbk COLLATE gbk_bin;

和修改utf-8编码类似,为了统一规范,让机器识别(例如不用utf-8编译程序往往和中文乱码问题有关)

 效果:

删除不需要的数据库

DROP DATABASE 数据库;

效果:

然后        SHOW DATABASE 数据库;

这里可能删除后表仍然显示过去创建的查询,但实际它是个空查询没有实际意义

                                                数据表

 创建数据表

例如让你把以下数据存入表中

CREATE TABLE 数据表名称
(
字段名  数据类型[完整性约束条件],
字段名  数据类型[完整性约束条件],
字段名  数据类型[完整性约束条件],
.....
);

 注意:倒数第一行语句没有 ,          

查看数据表

SHOW CREATE TABLE 数据库;

有些材料提到加\G(且不加;)来使结果整齐,因为现在都用navicat来显示,所以不建议用\G,我自己在navicat里操作试过\G后,暂时不能正常运行给出结果

使用DESCRIBE 语句查看数据表(很重要)

DESCRIBE teacher;

修改表名

ALTER TABLE 旧表名  RENAME [TO] 新表名;

其实sql语句无严格大小写区分,按理说小写还容易理解,但是在linux虚拟机里对大小写有限制,因此教材普遍大写使用

        可能出现的的问题

当你创建了一个名为数据库2的

然后对它进行重命名后,如果点击保存表,同时弹出框内输入你所改好的表名

左下角内容框会同步修改;但是如果只是像右边输入DESCRBE语句,左边内容框不会同步改变

修改字段名和数据类型(同时修改两个)

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;

这里出现个插曲(bug),在你describe之前,

很有可能是以下这个情况,有可能是因为重复操作导致,用        describe 表名        检查一下就好

很多博客说是id字段前面添加空格导致,这里提供参考       Mysql错误:#1054 - Unknown column ‘id‘ in ‘field list‘ 解决办法_lxw1844912514的博客-CSDN博客

修改字段的数据类型(只修改一个)

 ALTER TABLE 表名 MODIFY 字段名 新数据类型;

 ALTER TABLE 数据库3 MODIFY name INT(10);
DESCRIBE 数据库3;

添加字段

 ALTER TABLE 表名
 ADD 新字段名 数据类型[约束条件]

ALTER TABLE 数据库3	ADD age INT(4);
DESCRIBE 数据库3;

 删除字段

ALTER TABLE 表名    DROP 字段名;

下面删除age字段

ALTER TABLE 数据库3	DROP age;
DESCRIBE 数据库3;

修改字段的位置(和类型)

ALTER TABLE 表名 MODIFY 字段名1 新数据类型 FIRST| (AFTER 字段名2);

ALTER TABLE 数据库3 MODIFY email INT(4) FIRST ;
DESCRIBE	数据库3;

删除数据表

DROP TABLE 数据表;

DROP TABLE xxgc2;
DESCRIBE xxgc2;

                                         数据表的约束

        主键约束(单字段)

什么是主键?

MySql数据库学习(一)主键_牟小喵的博客-CSDN博客_主键用什么表示

创建表时顺便添加主键

字段名    数据类型    PRIMARY KEY;

CREATE TABLE 数据表2
(
id INT(2) PRIMARY KEY,
name INT(4)
);
DESCRIBE 数据表2;

 可能出现的问题

当对sql语句比如以下的,重复使用时会报错,原因是表已经建好,而命令自上而下进行。

解决:删除语句或者用快捷键ctrl+/ 改成注释

CREATE TABLE 数据表2
(
id INT(2) PRIMARY KEY,
name INT(4)
);
DESCRIBE 数据表2;

创建表之后单独添加主键

ALTER TABLE 表名    MODIFY     字段名    数据类型    PRIMARY KEY;

 ALTER TABLE 数据库3 	MODIFY name 	int(4)	PRIMARY KEY;
DESCRIBE	数据库3;

 删除主键(约束)

ALTER TABLE 表名    DROP PRIMARY KEY;

 ALTER TABLE `数据库3` DROP PRIMARY KEY;
 DESCRIBE	`数据库3`;

关于主键的注意事项

主键确实是唯一的,但组成主键的字段却不唯一(有些扯淡,毕竟是工科不如理科定理严谨,只是为了我们人类的使用)

我们下面接触复合主键

        复合主键

创建表时指定复合主键

PRIMARY KEY(字段名1,字段名2....);

CREATE	TABLE 数据表3
(
id INT(4),
name INT(4),
age	VARCHAR(10),
height	INT(5),
	PRIMARY	KEY(id,age)
);
DESCRIBE	数据表3;

        注意事项

由于在naviCat中操作的原因,不用在操作语句前置

USE    某数据表

删除表来练习和节省空间

DPOP TABLE 表名;

 复合主键额外添加

ALTER TABLE 表名    ADD PRIMARY KEY(字段名1,字段名2...);

 CREATE TABLE 数据表4
 (
 id INT(4),
 name INT(5),
 age INT(10),
 heigt VARCHAR(5)
 );
 ALTER TABLE 数据表4 ADD PRIMARY KEY(age, name);
DESCRIBE 数据表4;

  

删除复合主键

操作和删除单字段主键命令相同

ALTER TABLE 表名    DROP PRIMARY KEY;

                                                外键约束

CONSTRAINT 外键名 FOREIGN KEY (从表的外键字段名) REFERENCES 主表名 (主表的主键字段名)

        创建表时添加

CREATE TABLE 主表
(
id int(2) PRIMARY KEY,
name VARCHAR(2),
location VARCHAR(3),
height INT(4)
);
CREATE TABLE 从表
(
	id int(2) PRIMARY KEY,
	name INT(3),
	weight INT(3),
	old INT(4),
	CONSTRAINT 外键名 FOREIGN KEY(name)REFERENCES 主表(id)
);
-- DESCRIBE 主表; 这样打印,显示不了外键约束
-- DESCRIBE 从表;
show CREATE TABLE 主表;
show create TABLE 从表;

 从表打印:

 然后打印出这一坨,不忍直视的东西里面藏着你给的约束,目前只有从表能看出多了写东西,主表应该是没变

可能出现的问题

mysql的大小写问题,报错https://www.csdn.net/tags/NtTagg2sOTQwMTUtYmxvZwO0O0OO0O0O.html

设置主表从表的真正约束

        我认为数据库中的数据不能像强制类型和部分弱类型语言隐式转换而导致的,

要求:主表的主键字段和从表的外键字段的数据类型必须一致或兼容,含义还要一样。

据说因为主外键关联的原因,必须先创建主表(咱也不晓得,或许编个程序可以解决这些鸡肋的问题)

 后来添加外键约束

ALTER TABLE 从表名 ADD CONSTRAINT 外键名 FOREIGN KEY(从表的外键字段名) REFERENCES 主表名(主表的主字段名);

1.老样子先删除上面那两个表,以便节省空间

DROP TABLE 主表;
DROP TABLE 从表;

2.平平无奇地创建带主键地两个表

CREATE TABLE `主表`
(
id INT(4) PRIMARY KEY,
name VARCHAR(4),
height INT(3)
);
 CREATE TABLE `从表`
(
id INT(3) PRIMARY KEY,
name VARCHAR(4),
height INT(2)
);

3.检查一下(这里应该检查从表就够了,因为后面添加外键约束也是检查的从表,主表不明显,或者说没有变化)

SHOW CREATE TABLE 主表;

 

 4.操作

ALTER TABLE 从表 ADD CONSTRAINT 外键名 FOREIGN KEY(name) REFERENCES 主表(id);

5.检查结果

SHOW CREATE TABLE `从表`;

 据说要和添加外键约束 前的从表进行比较,也许没区别呢(自己逝世吧!)

可能出现的问题

错误:MySQL server version for the right syntax to use near - 走看看

定义字段时关键字冲突

 删除外键约束

ALTER TABLE 从表名 DROP FOREIGN KEY 外键名;

ALTER TABLE 从表 DROP FOREIGN KEY 外键名;

 

 注意:这里你检查的时候,特别是仔细对比和之前的结果来确定外键约束是否被完全删除时,可能会发现多了,或者说没有删除某一段信息,原因在于,留下的是一个同名索引,

详情请见索引类型文章,后续(一周内)我也会完善这一系列,因为我搜到的大多是些转载的水文章

                                             非空约束

  意思是经过非空约束的字段值不能为空,同一个数据表中可定义多个非空字段(也就是和主键的唯一形成了对比)

貌似默认就是非空约束,可以在上面的例子中观察一下捏

 创建表同时添加非空约束

字段名 数据类型 NOT NULL;

         像主键一样的操作,略过了,这部分没什么意义,好比告诉你整个网页空白的地方是空格...(奇妙的比喻)

    为已经存在的表添加非空约束

ALTER TABLE 表名 MODIFY 字段名 新数据类型 NOT NULL;

 删除非空约束

ALTER TABLE 表名 MODIFY 字段名 数据类型;

                                             唯一约束

和非空约束对立,

创建表同时添加唯一约束

字段名    数据类型     UNIQUE;

后来添加唯一约束

ALTER    TABLE 表名 MODIFY 字段名 新数据类型 UNIQUE;

你可以看到没什么新鲜的东西,也许就两个或许一个单词看起来陌生一点

删除唯一约束

ALTER TABLE 表名 DROP INDEX 字段名;

关键词敲几遍,随用随查,也就会了

                                                默认约束

  确确实实是非空约束的完整版了MySQL默认约束_风叶翩翩的博客-CSDN博客_默认约束

用户插入新的数据行时,若没有为该列指定数据,则默认值填补,也可以是空值(NULL)

创建表添加默认约束

字段名 数据类型 DEFAULT 默认值;

后来添加默认约束

ALTER TABLE 表名 MODIFY 字段名 数据类型 DEFAULT 默认值;

删除默认约束

ALTER    TABLE 表名 MODIFY 字段名 数据类型;

                        设置表的字段值自动增加

【MySQL】轻松学习 列的完整性约束3(自动增长和设置默认)_霸道小明的博客-CSDN博客_设置字段值自动增加y

是个宝藏博主呢,去看看吧。

字段值自动增加涉及到Extra内容

创建表时指定字段值自动增加

字段名 数据类型 PRIMARY KEY AUTO_INCREMENT;

后来设置自动增加

ALTER TABLE 表名 MODIFY 字段名 新数据类型AUTO_INCREMENT;

删除自动增加

ALTER TABLE 表名 MODIFY 字段名 数据类型;

案例——学生选课数据库(搭配本系列之二数据表记录的更新操作)

-- CREATE DATABASE 学生选课;
-- 创建学生表
-- CREATE TABLE studentInfo
-- (
-- sno char(8) PRIMARY KEY NOT NULL,
-- sname VARCHAR(10) NOT NULL,
-- sgender CHAR(2),
-- sbirth DATE,
-- sclass VARCHAR(20)
-- );
-- 教师表
-- CREATE TABLE teacher
-- (
-- tno char(4) PRIMARY KEY NOT NULL,
-- tname VARCHAR(10) NOT NULL,
-- tgender CHAR(2),
-- tedu VARCHAR(10),
-- tpro VARCHAR(8) DEFAULT '讲师'
-- );
-- 课程表
-- CREATE TABLE courese
-- (
-- cno CHAR(4) PRIMARY KEY NOT NULL,
-- cname VARCHAR(40) UNIQUE,
-- cperiod INT,
-- credit DECIMAL(3,1),
-- ctno CHAR(4),
-- CONSTRAINT fk_teacher_course FOREIGN KEY(ctno) REFERENCES teacher(tno)
-- );
-- 选课表
-- CREATE TABLE elective
-- (
-- sno CHAR(8),
-- cno CHAR(4),
-- score 	INT,
-- PRIMARY KEY(sno,cno),
-- CONSTRAINT fk_course_elective FOREIGN KEY(cno) REFERENCES course(cno),
-- CONSTRAINT fk_stu_elctive FOREIGN KEY(sno) REFERENCES studentInfo(sno)
-- );
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: MySQL 数据库是一种关系型数据库管理系统,它可以存储和管理大量的数据。在MySQL中,可以创建多个数据库,每个数据库中包含多个数据表数据表由多个列和行组成。基本操作包括创建数据库数据表、插入、查询、更新和删除数据等。MySQL还支持高级操作,例如索引、存储过程、触发器和事务等。 ### 回答2: MySQL是一个开源数据库管理系统,它是使用SQL语言的关系型数据库之一。在MySQL中,你可以执行一系列基本的数据库和表操作。 第一步是数据库操作。要创建一个新的数据库,可以使用以下语句: CREATE DATABASE database_name; 在MySQL中,所有的数据都存储在表中。因此,创建一个新的表是非常关键的。可以使用以下语句来创建一个新的表: CREATE TABLE table_name ( column_1 data_type, column_2 data_type, … column_n data_type ); 其中,table_name是你打算创建的表的名称,column_1至column_n是你打算在表中创建的列的名称,而data_type是你打算在每一列中存储的数据类型。 当你需要向表中添加新数据时,可以使用INSERT语句。下面是一个例子: INSERT INTO table_name (column_1, column_2, … column_n) VALUES (value_1, value_2, … value_n); 这里,table_name是你打算插入数据的表的名称,而column_1至column_n是你打算插入数据的列的名称。value_1到value_n是你打算插入每个列中的值。 要查询表中的数据,可以使用SELECT语句。以下是一个例子: SELECT column_1, column_2, … column_n FROM table_name WHERE condition; 其中,column_1至column_n是你打算选择的列的名称。table_name是你打算查询的表的名称。condition规定了查询的条件,如果条件不成立,该数据将不在结果中显示。 在MySQL中,你可以使用UPDATE和DELETE语句来更新和删除表中的数据。以下是一个例子: UPDATE table_name SET column_name = new_value WHERE condition; DELETE FROM table_name WHERE condition; 以上就是MySQL数据库和表的基本操作。要牢记的重点是,你需要熟悉SQL语言的基本语法,以便在MySQL中有效地进行数据库和表操作。 ### 回答3: MySQL是一种关系型数据库管理系统,它是目前世界上最流行的开源数据库之一。MySQL提供了一组工具来管理和操作数据库和表,这些工具可以在命令行下或在图形用户界面下使用。下面是MySQL数据库和表的基本操作。 一、数据库基本操作 1.创建数据库:使用CREATE DATABASE语句创建一个新的数据库。 例如:CREATE DATABASE mydatabase; 2.删除数据库:使用DROP DATABASE语句删除一个现有的数据库。 例如:DROP DATABASE mydatabase; 3.选择数据库:使用USE语句选择要使用的数据库。 例如:USE mydatabase; 4.显示数据库列表:使用SHOW DATABASES语句显示所有可用的数据库。 例如:SHOW DATABASES; 二、表的基本操作 1.创建表:使用CREATE TABLE语句创建一个新的表。 例如:CREATE TABLE users ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, PRIMARY KEY (id) ); 2.删除表:使用DROP TABLE语句删除一个现有的表。 例如:DROP TABLE users; 3.插入数据:使用INSERT语句向表中插入新的数据。 例如:INSERT INTO users (name, email) VALUES ('John', 'john@example.com'); 4.更新数据:使用UPDATE语句更新表中现有的数据。 例如:UPDATE users SET email = 'jane@example.com' WHERE name = 'Jane'; 5.删除数据:使用DELETE语句从表中删除数据。 例如:DELETE FROM users WHERE name = 'John'; 6.查询表中数据:使用SELECT语句从表中检索数据。 例如:SELECT * FROM users; 以上是MySQL数据库和表的基本操作,这些操作是使用MySQL时必须熟练掌握的基础知识。随着使用的深入,还可以学习高级操作和优化技巧,以提高MySQL数据库的性能和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白村第一深情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值