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 classroom (SID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,Name VARCHAR(30), CID INT NOT NULL);

INSERT INTO classromm (Name,CID) VALUES (‘Jerry‘,3),(‘tom‘,1);

SELECT * FROM classromm;

SELECT * FROM courses;

SELECT Name,Course FROM classroom,courses WHERE classroom.CID=courses.ID;

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

INSERT INTO classroom (Name,CID) VALUES (‘Willow‘,6);

DELETE FROM classroom WHERE CID=6;

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

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

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

ALTER TABLE courses ENGINE=InnoDB;

ALTER TABLE classroom ADD FOREIGN KEY foreign_cid (CID) REFERENCES courses(ID);

SHOW INDEXES FROM classroom;

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

INSERT INTO classroom (Name,CID) VALUES (‘Willow‘,6);

3.7.创建索引:

CREATE INDEX index_on_name ON classroom (Name) USING BTREE;

CREATE INDEX index_on_name ON classroom (Name(5) DESC) USING BTREE;

3.8.删除索引:

DROP INDEX index_on_name ON classroom;

时间: 2025-01-02 18:28:16

linux下mysql数据库 模型, 管理表 索引的相关文章

linux下mysql的用户管理及访问问题

1.mysql的安装配置 linux下有一个很神奇的东西叫yum,只要有源,用yum来安装是一件非常容易的事,什么都不用管,它会为你解决好一些软件依赖的问题.一键安装mysql: [[email protected] ~]# yum install mysql-server mysql-devel 安装完成后我们就可以使用mysql了: [[email protected] ~]# /etc/init.d/mysqld start Starting mysqld: [ OK ] [[email 

linux下mysql数据库主从同步配置

说明: 操作系统:CentOS 5.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备篇: 说明:在两台MySQL服务器192.168.21.128和192.168.21.129上分别进行如下操作 备注: 作为主从服务器的MySQL版本建议使用同一版本! 或者必须保证主服务器的MySQL版本要高于从服务器的MySQL版本! 一.配置好IP.DNS .网关,确保使用远程连接工具能够连接

Linux下MYSQL数据库的基本操作

建立数据库: mysql> create database test; //建立一个名为"test"的数据库 建立数据库表: mysql> create table test -> (name char(16) not null, -> passwd char(16) ->); //建立一个名为"test"的表,里面有两个字段,一个字段名为"name",类型为char,大小为16,非空:另一个字段名为"pa

linux下mysql数据库的学习

转载博客:http://freedomljtt.blog.163.com/blog/static/72294949201210145441701/ ubuntu12.04 卸载和安装mysql 卸载mysql 第一步 1 sudo apt-get autoremove --purge mysql-server-5.0 2 sudo apt-get remove mysql-server 3 sudo apt-get autoremove mysql-server 4 sudo apt-get r

Linux下MySQL 数据库的基本操作

1. 创建数据库相关命令: 首先,下载MySQL相关软件包:aptitude install mysql-server/mysql-client MySQL中的root用户类似于Linux下的root用户,拥有最多高的权限,若操作不当会对数据造成严重的危害.因此,针对每一个应用程序创建 对应的数据库及操作用户是一个好习惯. mysql -u root -p -u后跟用户名,-p表示需要密码登录,首次进入mysql用root用户(输入root用户账户的密码,这个密码要么是在安装过程中, 要么是使用

Linux下mysql数据库常用命令一

生产真实服务器下环境操作: 192.168.24.37192.168.24.37(Server)081119 Last login: Tue Aug 11 15:08:10 2015 from 192.168.24.1 #远程连接数据库 [[email protected] ~]# mysql -u root -h 117.40.239.9 -p    #远程连接数据库 Enter password: Welcome to the MySQL monitor.  Commands end wit

linux下mysql数据库导入导出命令

首先linux 下查看mysql相关目录[email protected]:~# whereis mysqlmysql: /usr/bin/mysql----   mysql的运行路径 /etc/mysql /usr/lib/mysql-----   mysql的安装路径/usr/bin/X11/mysql /usr/share/mysql/usr/share/man/man1/mysql.1.gz此外还有一个:var/lib/mysql --------mysql数据库data文件的存放路径

Linux 下,mysql数据库报无法登陆错误:ERROR 1045 (28000): Access denied for use

今天在别人的服务器上登录mysql发现无法登陆(Mysql别人实现安装好的) 密码和用户名都是正确的,但登录后报如下错误: ERROR 1045 (28000): Access denied for user ‘admin’@'localhost’ (using password: YES) 尝试了加入-h和-port也无法登陆,最后只能重新修改了.注--该方法也可以用于当忘记数据库密码时,找回数据库密码用 如下是我执行过程,完全执行后,可以顺利登录数据库:linux下的执行脚本: Java代码

linux下mysql数据库基础及客户端命令详解

1.mysql数据库存储引擎: SHOW ENGINES;   #查看mysql支持的存储引擎 常见有如下两个存储引擎: MyISAM:每表三个文件: .frm: 表结构 .MYD:表数据 .MYI:表索引 InnoDB:默认所有表共享一个表空间文件: 建议:每表一个独立的表空间文件:默认此功能没有打开 .frm: 表结构 .ibd: 表空间,包含表数据和表索引 .opt: 字符集和字符排序规则 打开InnoDB每表创建独立的表空间文件功能办法: vim /etc/my.cnf   #新增如下一