mysql学习总结(一)基础内容

4 篇文章 0 订阅

启动,关闭

启动MySQL

Windows
net start mysql 
Linux
  • 使用linux命令service 启动:
    service mysqld start
  • 使用 mysqld 脚本启动:
    /etc/inint.d/mysqld start
  • 使用 safe_mysqld 启动:
    safe_mysqld&

停止

  • 使用 service 启动的:
    service mysqld stop
  • 使用 mysqld 脚本启动的:
    /etc/inint.d/mysqld stop
    mysqladmin shutdown

重启

1、使用 service 启动:
service mysqld restart
2、使用 mysqld 脚本启动:
/etc/inint.d/mysqld restart

备注:查看mysql端口是否已经使用,使用netstat -anp 命令查看服务器端口使用情况。

  1. 注意理解mysqldmysqlmysqldmysql服务器或者称之为服务器上的实例,用于提供客户端访问。mysql为客户端访问管理工具。
  2. 可以通过三种方式启动mysql服务器(mysqld,mysqld_safe,service mysql start)
  3. 对于mysqld_safe,service mysql start方式,总是通过调用mysqld_safe来启动mysqld进程,以防止mysqld意外宕掉而提供重启服务。
  4. 可以通过mysqladmin shutdown以及service mysql stop来终止mysql服务器

连接

mysql -h 地址 -P 端口 -u 用户名 -p 密码
SHOW PROCESSLIST -- 显示哪些线程正在运行
SHOW VARIABLES -- 显示系统变量信息

数据库操作

查看当前数据库

select database()

显示当前时间、用户名、数据库版本

select now() ,user() ,version()

创建库

create database [if not exists] 数据库名字 数据库选项
数据库选项:

           character set charset_name
           collate collation_name

查看已有库

SHOW DATABASES[ LIKE 'PATTERN']

查看当前库信息

SHOW CREATE DATABASE 数据库名

修改库的选项信息

ALTER DATABASE  库名 选项信息

删除库

DROP DATABASE [ IF EXISTS]   数据库名         
同时删除该数据库相关的目录及其目录内容

表操作

创建表

CREATE [TEMPORARY] TABLE[ IF NOT EXISTS] [库名.]表名 ( 表的结构定义 )[ 表选项]
   每个字段必须有数据类型
   最后一个字段后不能有逗号
   TEMPORARY 临时表,会话结束时表自动消失
   对于字段的定义:
        字段名 数据类型 [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY] [COMMENT
表选项
CHARSET = charset_name

如果表没有设定,则使用数据库字符集

存储引擎
ENGINE = engine_name

表在管理数据时采用的不同的数据结构,结构不同会导致处理方式、提供的特性操作等不同
常见的引擎:

  • InnoDB
    表的结构存储在xxx.frm 文件中
    数据存储在tablespace这样的表空间中(逻辑概念),无法被压缩,无法转换成只读。这种innoDB引擎在mysql数据库崩溃后提供自动恢复机制。
    innoDB支持级联删除和级联更新
  • MyISAM
    这种引擎不支持事务。是mysql最常用的存储引擎,但是这种引擎不是被默认的。
    MyISAM采用三个文件组织一张表:
    xxx.frm(存储格式的文件)
    xxx.MYD(存储表中数据的文件)
    xxx.MYI(存储表中的索引的文件)
    优点:可被压缩,节省存储空间。并且可以转换为只读表,提高检索效率
    缺点:不支持事务。
  • Memory/Heap
    缺点:不支持事务,数据容易丢失。因为所有的数据和索引都存储在内存当中
    优点:查询速度最快
  • BDB
  • Merge
  • Example
  • CSV
  • MaxDB
  • Archive

不同的引擎在保存表的结构和数据时采用不同的方式

MyISAM表文件含义:

.frm表定义,.MYD表数据,.MYI表索引

InnoDB表文件含义:

.frm表定义,表空间数据和日志文件

SHOW ENGINES – 显示存储引擎的状态信息
SHOW ENGINE 引擎名 {LOGS|STATUS} – 显示存储引擎的日志或状态信息

自增起始数

AUTO_INCREMENT = 行数

数据文件目录

DATA DIRECTORY = '目录'

索引文件目录

INDEX DIRECTORY = '目录'

表注释

COMMENT = 'string'

分区选项

PARTITION BY ... (详细见手册)

查看所有表

SHOW TABLES [ LIKE 'pattern' ] 
SHOW TABLES FROM 表名

修改表

修改表本身的选项
ALTER TABLE 表名 表的选项
eg: ALTER TABLE 表名 ENGINE=MYISAM;
对表进行重命名
RENAME TABLE 原表名 TO 新表名
RENAME TABLE 原表名 TO 库名.表名 (可将表移动到另一个数据库)
-- RENAME可以交换两个表名
修改表的字段结构

ALTER TABLE 表名 操作名

操作名
ADD[ COLUMN] 字段定义             -- 增加字段
   AFTER 字段名                            -- 表示增加在该字段名后面
   FIRST                                         -- 表示增加在第一个
ADD PRIMARY KEY(字段名)        -- 创建主键
ADD UNIQUE [索引名] (字段名)    -- 创建唯一索引 
ADD INDEX [索引名] (字段名)       -- 创建普通索引
DROP [COLUMN] 字段名              -- 删除字段
MODIFY [COLUMN] 字段名 字段属性     -- 支持对字段属性进行修改,不能修改字段名(所有原有属性也需写上)
CHANGE [COLUMN] 原字段名 新字段名 字段属性      -- 支持对字段名修改
DROP PRIMARY KEY    -- 删除主键(删除主键前需删除其AUTO_INCREMENT属性)
DROP INDEX 索引名     -- 删除索引
DROP FOREIGN KEY 外键    -- 删除外键

删除表

DROP TABLE[ IF EXISTS] 表名 ...

清空表数据

TRUNCATE [TABLE] 表名

复制表结构

CREATE TABLE 表名 LIKE 要复制的表名

复制表结构和数据

CREATE TABLE 表名 [AS] SELECT * FROM 要复制的表名

检查表是否有错误

CHECK TABLE tbl_name [, tbl_name] ... [option] ..

表优化

·OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...

修复表

REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ... [QUICK] [EXTENDED] [USE_FRM]

分析表

ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...

导入导出数据

命令窗口执行(以dos为例)

--导出整个库(库名字:dbname  用户:root 密码admin)
mysqldump dbname >D:\dbname.sql -uroot -padmin

--导出dbname库中的table1表
mysqldump dbname >D:\dbname.sql -uroot -padmin
--导入数据
create database dbname;
use dbname;
source D:\dbname.sql
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

piepis

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

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

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

打赏作者

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

抵扣说明:

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

余额充值