MySQL数据库的使用

写在前面

经过一个暑假的学习摸索和实践,呆萌(chun)如我,也已经对数据库有了粗浅的认识,掌握了MySQL一些简单的操作。然而毕竟只是新手,很多时候都是走一步算一步,并没有很系统地整理学到的知识。正好明哥吩咐,我就把这段时间学会的没学会的记录整理成博客,以待他日查阅复习(zhuang B)。

MySQL的安装

想使用MySQL,安装是必不可少的。由于年代久远,本人安装的个中曲折已无从考证。其实用几个命令行就能完成。

sudo apt-get install mysql-server
apt-get install mysql-client
sudo apt-get install libmysqlclient-dev

此外还要安装MySQLdb插件,在终端输入命令行如下:

sudo apt-get install python-mysqldb

这样就大功告成啦,可以进入到下一步数据库的使用。

数据库的使用

安装好数据库后,我们可以开始使用数据库啦,打开终端输入

mysql -u root -p (其中root为用户名,一般默认为root)

按下回车键,会要求你输入密码(在安装数据库时输入的密码)成功连接数据库服务器后会看到这个界面。

MySQL数据库的使用_第1张图片

这时候你已经连接上到数据库服务器了,可以进行下一步操作。

注意:在数据库中使用命令行时,都要以“;”结尾来表示已输入一个完整的指令,此时按下回车键,则执行相应命令。

我们现在来建一个数据库,输入命令行

create database d_name;

其中d_name为你起地数据库名称。这时你已经建好一个数据库了!用命令行

show databases;

可以看到你已建的所有数据库。

注意:由于编码问题,在建好一个新的数据库后应输入命令行

alter database d_name character set utf8 collate utf8_general_ci;

则可解决中文乱码的问题。

数据库建好后,要使用数据库时,需先进入到数据库中,使用命令行

use d_name;

如果要新建一个表格,可输入命令行

create table t_name(column_1 char(n),column_2 char(n));

其中,t_name是表格名,column_1是列1的名字,char是该列的数据类型,n是一个具体数字,以此类推,可以增加多个列。输入

show tables;

可以看到建好的表格。

注意:数据类型一般有char和varchar,当需要输入中文而建库时又没有解决乱码时,可将数据类型设为nchar或nvarchar

数据库一些常用的语句如有需要,去网上找也很方便,这里不赘述。

在Django中使用MySQL

当我们想把把Django中的数据存进MySQL时,就要把数据库和Django做链接。在Django的setting里,修改如下配置

DATABASES = {
        'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'd_name',
        'USER': 'root',
        'PASSWORD': '密码',
        'HOST': '',
        'PORT': '3306',
    }
}

注意:其中,d_name是你想连接的数据库的名字,密码是你进入数据库的密码,HOST一般悬空,默认为本地或改为“localhost”,PORT一般为3306.

为了方便后面的工作,我们在这里新建一个应用,在终端输入

python manage.py startapp app_name

注意:要在setting里注册这个app,如下

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app_name',
)

完成这些之后,我们进入到app里的models,通过用模块建表格的方法,帮助我们将后台中的数据导入到MySQl中。例子如下:

#coding:utf-8
#!/usr/bin/python
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_name.settings")
from django.db import models
class Text(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    def __unicode__(self):
        return self.title,self.content

在这个例子中,我们建了这样一个表格,除了自动生成的id索引,另外两项是我们在类text中定义的title和content,其中CharField是字符类型,最大长度是100,TextField是可用最大长度,相关的使用还需进一步学习。

注意:在使用models时,我们必须修改环境配置,在开头加入

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_name.settings")

其中project_name需自己修改

写完模板后,我们就可以同步数据库了,在终端输入

python manage.py syncdb

根据提示一步步操作,就可以同步数据库,在数据库中建出模板所构造的表格了。当需要更新数据库时,在终端输入

python manage.py makemigrations
python manage.py migrate

即可完成同步,此时,数据库中我们需要的表格已经建好了,我们可以进入下一步的传数据了。

数据导入数据库

Django中有专门用于数据导入的objects语句,在需要传数据的脚本中导入models中的类,如

from app_name.models import class_name

然后使用objects语句,例如

Text.objects.create(title='具体内容',content='具体内容')

objects语句还可用于查询数据库等操作,常用有

class_name.objects.get(具体列名='具体内容')
class_name.objects.filter(具体列名='具体内容')

注意:两者的区别在于get方法没有匹配对象时会报错,filter方法没有匹配对象时会返回[ ]

总结

作为过来人,我也深刻地认识到,要想掌握更多数据库的使用方法,需要在实践中慢慢摸索,不断学习。越学习越能体会到自己的无知。就此搁笔。(毕竟我也累了,不想再写了。)

你可能感兴趣的:(随笔)