mysql学习总结

作者: 海上牧云l | 来源:发表于2016-12-27 17:25 被阅读36次

    首先django中使用mysql需要mysqlclient库的支持,windows下需要vs支持,可从http://www.lfd.uci.edu/~gohlke/pythonlibs/ 网站下载对应.whl文件,然后pip安装。

    在django中配置mysql

    django中默认sqlite3数据库,将DATABASES中内容配置如下

    DATABASES = {
     'default': {
     'ENGINE': 'django.db.backends.mysql',
     'NAME': 'django',     #数据库名字
     'HOST': '127.0.0.1',   
     'PORT': 3306,
     'USER': 'root',
     'PASSWORD': 'root'
     }
    }
    

    之后执行以下语句
    python manage.py makemigrations
    python manage.py migrate

    在django中输出sql语句

    article = Article.objects.all()
    print("sql: %s" % article.query)

    创建mysql帐号

    CREATE USER 用户名 @'ip' IDENTIFIED BY '密码'

    修改mysql账号权限

    GRANT ALL PRIVILEGES ON . TO 用户名@ip
    第一个*表示数据库,第二个表示表,*表示全部

    创建数据库

    CREATE DATABASE 数据库名字
    DEFAULT CHARSET utf8
    COLLATE UTF8_GENERAL_Ci;

    创建表

    先选择数据库
    use demo
    CREATE TABLE 表名(name varchar(25));
    或者
    CREATE TABLE 数据库.表名(name varchar(25));

    插入新数据

    INSERT INTO 表 (字段1, 字段2) VALUES (值1, 值2);
    意为在表的字段1,字段2后面分别插入值1值2.

    更新数据

    UPDATE 表名字 SET 字段1='字符串', 字段2=数字
    WHERE 字段1=值1, 字段2=值2;
    把字段分别为值1,值2的改为‘字符串’, 数字
    不加where表示把所有字段都改变

    删除数据

    DELETE FROM 表名字
    WHERE 字段名='字符串' AND 字段名2=数字;

    限制返回

    SELECT * FROM `blog_article` LIMIT 3 OFFSET 2
    SELECT * FROM\ blog_article\ LIMIT 2,3
    两条语句相等,第一句中limit 3 表示取前三个,offset 2表示跳过前两个。第二句中limit 2,3表示跳过两个,取前三个。

    模糊搜索

    q = request.GET.get("q", '')
    article = Article.objects.filter(title_contains=q)
    与上面django语句相同
    SELECT * FROM `blog_article` WHERE `blog_article`.title LIKE BINARY '%搜索内容%' (注意是单引号), %代表任意字符

    精确查找
    SELECT * FROM `blog_article` WHERE\ blog_article\.title = '查找内容'

    多表联查

    SELECT * FROM `userprofile`  INNER JOIN `user` ON (`userprofile.belong_to_id` = `user.id`) WHERE `user`.`username` = `admin`
    

    相关文章

      网友评论

        本文标题:mysql学习总结

        本文链接:https://www.haomeiwen.com/subject/xelevttx.html