MySQL使用

因为数据库实验用到了MySQL,这里对现在已经涉及到的MySQL部分操作做一个简单的小结。

1、安装MySQL

MySQL的官网下载对应自己OS平台的MySQL安装文件,有在线安装和离线安装包两种,由于服务器在国外,如果网络不是太好的话推荐选择离线安装包。



安装的话就不说了,网上教程一大把,个人PC的话,一般选择开发者模式安装就好了。这里主要说一下安装后的配置(虽然网上也有很多,但是自己做个总结免得每次都去找)。

机器环境:
OS: Windows 10(1703) 64bi

第一步:就是配置MySQL的默认字符编码,新版的MySQL的配置文件my.ini不在安装目录下了,而是在“C:\ProgramData\MySQL\MySQL Server 5.7”下,当然这是在我的机器上(我是以默认目录安装的)。

  1. 首先要做的就是备份配置文件咯,万一一不小心弄错了配置,MySQL服务启动不起来,又不知道怎么改回去,那岂不是很麻烦(虽然有官方文档嘛,但是那么又臭又长的英文我可不想花大量时间去查)。
  2. 备份好原来的配置文件后,用记事本打开my.ini,按如下所示添加相应的语句:
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
character-set-sever=utf8

第二步:修改数据库存放位置。同样在my.ini下找到[mysqld],然后在这个下方找到basedir和datadir两个选项,其中basedir是你的MySQL的安装位置,datadir就是MySQL的数据库的存放位置了。

如果你使用完整的安装文件安装,切记不要改动basedir,否则你的MySQL服务启动不起来的。当然如果是免安装版,就根据你的实际安装位置更改了。

你可以将数据库的存放位置放到任何你喜欢的位置,然后修改datadir为你确定的目录即可:

datadir="D:/DevelWorks/MySQL/Data/"

说实话这里有个恼火的地方就是在Windows的环境下有时会因为路径分隔符(/或\)的不同导致服务启动失败,这个自己多试几次,不同的环境有可能是“/”也有可能是“\”。

一般来说配置这两个就差不多了,当然如果你是大神也就用不着了,如果需要其他配置,看看官方文档就好了。

在Windows下启动MySQL:

以管理员身份打开命令提示符:
# net start MySQL57    启动服务
# net stop MySQL57     关闭服务

至于linux下的配置因为没时间也没有去捣鼓,估计配置方式也差不多,不同的在于配置文件的存放位置。

2、MySQL使用

登录:mysql -uroot -p

回车后会提示你输入密码,正确输入密码后回车就可以登录了。建议不要在-p参数后面直接写上密码,因为这里是明文显示的。

退出:exit;或quit;或\q;

注意:每个MySQL的命令后面都以英文分号(;)结束。

查看数据库:

show databases;

选择(切换)数据库:

use [数据库名];

查看数据表:

show tables;

描述表结构:

describe `表名`;

创建数据库:

create database `database-name`;

创建表:

create table `table-name`(

`column-name`, [data-type], [(表级)完整性约束条件],

.

.

.

[表级完整性约束条件]

);

如果完整性约束条件涉及多个属性列,则必须定义在表级完整性上,否则既可以定义在列级,也可以定义在表级。

插入记录(元组):

insert into `表名` values(属性1的值,属性2的值,...,属性n的值);

insert into `表名`(属性1,属性2,...,属性x) values(属性1的值,属性2的值,...,属性x的值);

导入sql文件:

source [文件路径];

查看表内容:

select * from `表名`;(查看所有内容)

select * from `表名` limit n;(仅查看前n条记录)

更新表:

ALTER TABLE <表名>

[CHANGE COLUMN <列名> <列名> <数据类型> [<列级完整性约束条件>] ,][ADD COLUMN <列名> <数据类型> [<列级完整性约束条件>] ,]

[ADD <表级完整性约束条件>,][DROP COLUMN <列名>,]

[DROP <完整性约束条件>]

删除数据库:

drop database `数据库名`;

删除表:

drop table `表名`;

重命名表:

rename table `old-table-name` to `new-table-name`;

3、其他

  1. 在做实验的时候经常出现"ERROR 1064 (42000)"这个语法错误,上网查了以下,原来是因为可能在SQL语句或者MySQL命令中使用了MySQL中的保留字,从而引发的语法错误,在这种情况下,应将保留字使用符号包含,避免SQL语句的解析出错。因此,在书写SQL语句时,应尽量将所定义变量(如数据库名字,表名等)使用符号包含。
  2. 查看MySQL数据库中每个表的占用空间:

    在MySQL中的information_schema数据库中有一个TABLES表,这个表的主要字段分别是:

    TABLE_SCHEMA : 数据库名
    TABLE_NAME:表名
    ENGINE:所使用的存储引擎
    TABLES_ROWS:记录数
    DATA_LENGTH:数据大小
    INDEX_LENGTH:索引大小
    --
    SQL:
    SELECT TABLE_NAME,DATA_LENGTH+INDEX_LENGTH,TABLE_ROWS FROM TABLES WHERE TABLE_SCHEMA='数据库名' AND TABLE_NAME='表名';

就先写到这里了,以后可能还会不定期的更新这篇文章,记录学习中的所见所闻。

【参考】MySQL必知必会。

【Conclusion】MySQL使用的更多相关文章

  1. About using UTF-8 fields in MySQL

    https://www.adayinthelifeof.nl/2010/12/04/about-using-utf-8-fields-in-mysql/ I sometimes hear: “make ...

  2. Day 2: ASP.NET and python trying

    ASP.NET and Python/Javascript Many jQuery plugins that are designed and shared for free on the inter ...

  3. 【Conclusion】MySQL的安装和使用

    MySQL使用 因为数据库实验用到了MySQL,这里对现在已经涉及到的MySQL部分操作做一个简单的小结. 1.安装MySQL 上MySQL的官网下载对应自己OS平台的MySQL安装文件,有在线安装和 ...

  4. How to create/restore a slave using GTID replication in MySQL 5.6

    MySQL 5.6 is GA! Now we have new things to play with and in my personal opinion the most interesting ...

  5. An Introduction to Stored Procedures in MySQL 5

    https://code.tutsplus.com/articles/an-introduction-to-stored-procedures-in-mysql-5--net-17843 MySQL ...

  6. Cursors in MySQL Stored Procedures

    https://www.sitepoint.com/cursors-mysql-stored-procedures/ After my previous article on Stored Proce ...

  7. Percona 开始尝试基于Ceph做上层感知的分布式 MySQL 集群,使用 Ceph 提供的快照,备份和 HA 功能来解决分布式数据库的底层存储问题

    本文由 Ceph 中国社区 -QiYu 翻译 英文出处:Using Ceph with MySQL 欢迎加入CCTG Over the last year, the Ceph world drew m ...

  8. Understanding mysql max_connect_errors

    来自:http://mysqlblog.fivefarmers.com/2013/08/08/understanding-max_connect_errors/ Perhaps like many u ...

  9. MySQL 5.5: InnoDB Change Buffering

    To speed up bulk loading of data, InnoDB implements an insert buffer, a special index in the InnoDB ...

随机推荐

  1. 【Ubuntu 16】安装ssh

    ubuntu16默认使用ufw(Uncomplicated FireWall 继承自 iptables)管理防火墙,使用gufw图形化界面方便管理, 默认情况下openssh-server没有安装. ...

  2. JavaScript看书笔记01

    JavaScript看书笔记... ------------------- JavaScript允许var定义语句出现在函数内部的任意位置.JS中使用Var来显示的给变量声明 JavaScript是一 ...

  3. 从 HTTP 到 HTTPS 再到 HSTS

    近些年,随着域名劫持.信息泄漏等网络安全事件的频繁发生,网站安全也变得越来越重要,也促成了网络传输协议从 HTTP 到 HTTPS 再到 HSTS 的转变. HTTP HTTP(超文本传输协议) 是一 ...

  4. Stream-快速入门Stream编程

    1.什么是流 Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的 Iterator.原始版本的 Iterator,用户只能显式地一个一个遍历元素并对其执 ...

  5. C语言:freopen函数

    当我们求解acm题目时,通常在设计好算法和程序后,要在调试环境(例如VC等)中运行程序,输入测试数据,当能得到正确运行结果后,才将程序提交到oj中.但由于调试往往不能一次成功,每次运行时,都要重新输入 ...

  6. Struts:文件上传下载

  7. Spark Structured Streaming框架(2)之数据输入源详解

    Spark Structured Streaming目前的2.1.0版本只支持输入源:File.kafka和socket. 1. Socket Socket方式是最简单的数据输入源,如Quick ex ...

  8. 关于模式为singTask的activity的bundle问题

    1.问题描述 今天遇到一个问题,我的一个页面跳模式为singTask的activity时,bundle的值拿不到,我于是找了下,发现基础真的很重要; 2.原因 launchMode为singleTas ...

  9. css控制竖直文字显示

    假如有一天,你把水平文字看腻味了...... 我建议你不妨试试垂直文字显示,就像这样: 我 是 竖 直 显 示 的 : 哈哈! 言归正传,怎么把一段话,垂直显示呢? 方法1: //把下面代码另存为ht ...

  10. [ASP.NET MVC] Razor 布局

    整体视图模板 View模板会先找到对应的controller文件,再找此文件下的Shared文件夹. 比如项目最外层的View/Shared 目录下有一个_Layout.cshtml模板页,有这样代码 ...