linux下mysql数据库模型, 管理表和索引相关要义介绍
admin
2023-06-08 21:01:46
0

本篇文章给大家主要讲的是关于linux下mysql数据库模型, 管理表和索引的内容,感兴趣的话就一起来看看这篇文章吧,相信看完linux下mysql数据库模型, 管理表和索引对大家多少有点参考价值吧。 

1.linux下mysql数据库及其模型

1.1.SHOW TABLE STATUS LIKE 'user'\G   #查看表的存储引擎

   SHOW ENGINES;   #查看数据库支持的存储引擎

客户端工具:mysql、mysqladmin、mysqldump、mysqlimport、mysqlcheck

云服务器端工具:mysqld, mysqld_safe, mysqld_multi

1.2.my.cnf检查顺序:

/etc/my.cnf --> /etc/mysql/my.cnf --> $MYSQL_HOME/my.cnf --> 

                          --default-extra-file=/路径文件 --> ~/.my.cnf

# mysqld --help --verbose

1.3.hostname.err,错误日志:此前服务未关闭,数据初始化失败,数据目录位置错误,数据目录权限问题

1.4.数据类型:存入的值类型;占据的存储空间;定长或变长;比较及排序;是否能够索引;

1.5.查看字符集和排序规则命令:

mysql> SHOW CHARACTER SET;

mysql> SHOW COLLATION;

1.6.AUTO_INCREMENT: 整型 非空 无符号 主键或惟一键

CREATE TABLE test(ID INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, Name CHAR(20))

mysql> SELECT LAST_INSERT_ID();

1.7.MySQL云服务器变量按作用域:分为全局变量和会话变量

SHOW GLOBAL VARIABLES    #查看全局变量

SHOW [SESSION] VARIABLES  #查看会话变量

MySQL云服务器变量按生效时间分为两类:动态和静态

动态:可即时修改

           静态:写在配置文件中,通过参数传递给mysqld

动态调整参数的生效方式:

全局变量:对当前会话无效,只对新建立会话有效;

会话变量:即时生效,但只对当前会话有效;

1.8.云服务器变量:@@变量名

显示:SELECT @@global.sql_mode;

              SELECT @@session.sql_mode;

设定:SET GLOBAL|SESSION 变量名='value'

2.管理表:

2.1.创建数据库:

CREATE DATABASE IF NOT EXISTS students CHARACTER SET 'gbk' COLLATE 'gbk_chinese_ci';

2.2.删除数据库:

DROP DATABASE [IF EXISTS] db_name

2.3.创建表:

CREATE TABLE [IF NOT EXISTS] tb_name (col_name col_defination, constraint )

2.3.1.直接创建一张空表:

CREATE TABLE tb1 (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, Name CHAR(20) NOT     NULL, Age TINYINT NOT NULL)  ENGINE [=] engine_name

CREATE TABLE tb2 (id INT UNSIGNED NOT NULL AUTO_INCREMENT, Name CHAR(20) NOT NULL, Age    TINYINT NOT NULL, PRIMARY KEY(id),UNIQUE KEY(name),INDEX(age))

CREATE TABLE courses(ID TINYINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,Course  VARCHAR(50) NOT NULL);

2.3.2.插入表数据:

INSERT INTO courses (Course) values ('CCNA'),('CCNP'),('RHCA');

2.3.3.显示表的索引:

SHOW INDEXES FROM tb_name;

2.4.从其它表中查询出数据,并以之创建新表:(注意此类方法表格式定义与源表不同)

CREATE TABLE courses_new SELECT * FROM courses WHERE ID <=2;

2.5.以其它表为模板创建一个空表;(此类方法表格式定义与源表一模一样)

CREATE TABLE Courses_good LIKE courses;

3.索引

3.1.添加索引:

ALTER TABLE Courses_good ADD UNIQUE KEY (Course);

3.2.修改字段名称:

ALTER TABLE courses_good MODIFY CID TINYINT UNSIGNED NOT NULL AUTO_INCREMENT;

ALTER TABLE courses_good CHANGE Couse Course VARCHAR(50) NOT NULL;

3.3.增加字段名称:

ALTER TABLE courses_good ADD Startdate date default '2016-06-29';

3.4.修改表名称:

ALTER TABLE courses_good RENAME TO courses_new;

RENAME TABLE courses_new TO courses_good;

3.5.删除表:

DROP TABLE courses_new;

3.6.表之间建立关系:

CREATE TABLE cla***oom (SID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,Name VARCHAR(30), CID INT NOT NULL);

INSERT INTO cla***omm (Name,CID) VALUES ('Jerry',3),('tom',1);

SELECT * FROM cla***omm;

SELECT * FROM courses;

linux下mysql数据库模型, 管理表和索引相关要义介绍

SELECT Name,Course FROM cla***oom,courses WHERE cla***oom.CID=courses.ID;

linux下mysql数据库模型, 管理表和索引相关要义介绍

在没有引用外键情况下:cla***oom表可任意插入数据如下:

INSERT INTO cla***oom (Name,CID) VALUES ('Willow',6);

DELETE FROM cla***oom WHERE CID=6;

引用外键情况下:cla***oom表只能对照引用表存在的数据进行插入,不能任意插入数据

外键必须是支持事务的存储引擎,如InnoDB,否则会报错

外键引用字段类型参数也需一致

ALTER TABLE courses ENGINE=InnoDB;

ALTER TABLE cla***oom ADD FOREIGN KEY foreign_cid (CID) REFERENCES courses(ID);

linux下mysql数据库模型, 管理表和索引相关要义介绍

SHOW INDEXES FROM cla***oom;

此时对cla***oom表再插入引用的courses表中没有的数据,将会报错

INSERT INTO cla***oom (Name,CID) VALUES ('Willow',6); 

linux下mysql数据库模型, 管理表和索引相关要义介绍

3.7.创建索引:

CREATE INDEX index_on_name ON cla***oom (Name) USING BTREE;

CREATE INDEX index_on_name ON cla***oom (Name(5) DESC) USING BTREE;

linux下mysql数据库模型, 管理表和索引相关要义介绍

3.8.删除索引:

DROP INDEX index_on_name ON cla***oom;

以上关于linux下mysql数据库模型, 管理表和索引详细内容,对大家有帮助吗?如果想要了解更多相关,可以继续关注我们的行业资讯板块。

相关内容

热门资讯

伊朗总统准备向世界保证不寻求核... 伊朗总统佩泽希齐扬5月24日在接受采访时表示,“伊朗准备向全世界保证,正如已故伊朗最高领袖阿里·哈梅...
火星上出现一摞整齐叠放的石头,... 那是谁干的? 毅力号火星车在火星上发现了一摞整齐叠放的石头。NASA / JPL-Caltech ...
八国发表联合声明,谴责以色列国... △以色列国家安全部长伊塔马尔·本-格维尔(资料图)当地时间24日,阿联酋、约旦、土耳其、埃及、印度尼...
神舟二十三号载人飞船发射升空 IT之家 5 月 24 日消息,刚刚,搭载神舟二十三号载人飞船的长征二号 F 遥二十三运载火箭在酒泉...
浙江上线“创新积分制”数智平台 来源:中国新闻网 中新网杭州5月24日电(鲍梦妮)5月24日,在2026年浙江省“全国科技活动周”上...
国内知名冷门绝学大咖齐聚深圳,... 本文转自【光明日报】; 5月22日上午,作为2026文化强国建设高峰论坛重要组成部分,首届冷门绝学传...
神舟二十三号载人飞行任务航天员... 据微信公众号“中国载人航天”消息,5月24日20时16分,神舟二十三号载人飞行任务航天员乘组出征仪式...
以总理:同特朗普一致认为须消除... 新华社耶路撒冷5月24日电(记者庞昕熠 王卓伦)以色列总理内塔尼亚胡24日在社交平台发文称,他和美国...
专家解读|秉持以人为本 统筹发... 随着大模型、生成式人工智能、智能体等技术的迭代创新,人工智能正在进入加速应用的新阶段,由此引发的社会...
原创 v... vivo在5月份的新机继续增加,比如vivo S60系列、vivo Y600 Turbo等,均在5月...