zoukankan      html  css  js  c++  java
  • mysql的快速入门

    最近想使用c语言写一个聊天的系统,所以看了一看mysql。看到过程中不断的总结,就写了一些东西。

    说明一下,我使用的系统是ubuntu18.04,

    linux下mysql的安装和使用

    1.安装
    sudo apt-get install mysql-server
    sudo apt install mysql-client
    sudo apt install libmysqlclient-dev
    使用这三条命令安装,什么含义?
    第一个是mysql的服务器
    第二个是mysql的客户端
    第三个是mysql的c语言库.安装之后的位置在/usr/include/mysql/下面


    2.连接数据库
    mysql -h主机地址 -u用户名 -p用户密码
    mysql -h localhost -u root -p


    3.数据库的简单操作

        # whereis mysql  查看文件安装路径
        # which mysql     查询运行文件所在路径(文件夹地址)
        usr/bin/mysql 是指:mysql的运行路径
        var/lib/mysql 是指:mysql数据库文件的存放路径
        usr/lib/mysql 是指:mysql的安装路径

    4.数据库的相关操作

     (1).数据库的操作
        查看数据库
        show databases;(mysql必须使用分号结尾);
        创建数据库
        create database mydata;
        删除数据库
        drop database mydata;
        使用某个数据库
        use mydata;    
     (2).数据库中表的创建、增加、删除、修改
        建立一个表
        create table mytable
        (                                                   //使用圆括号
            id int auto_increment not null primary key,     //整型、自增、不为空、主键
            name varchar(20),                                 //字符串20个。
        );    
        插入数据
        insert mytable value(123,"qiny");                   //设置第一个id的值,id为自增的
        insert mytable(name) value("hello");                 //有选择的添加数据
        insert mytable(name) values("dxx"),("xiin");        //批量添加数据
        删除表格
        drop table mytable;                                 //删除表格
        删除表格的一行数据
        delete from mytable where id = 123;
        修改表格的属性值                                    //修改表的属性包括增加属性,删除属性,修改属性
        alter table mytable
        add age int not null,             
        drop name,
        modify id int not null primary key auto_increment,
        修改表格的数据
        update mytable set name = 'nxnn' where id = 123;

     (3)数据库的查询(常见)
        select * from student;        
        select name,id from student;
        select * from student where id = 123;
        select count(*),avg(score),sum(score) from student group by age;
        select * from student order by id desc | asc;

     (4)其他
        查看表的构造
        deac mytable;
        
    5.数据库的权限管理(不知道为什么没有成功)
     (1)创建一个用户
        CREATE USER 'qiny'@'localhost' IDENTIFIED BY '123456';
        create user 'root'@'localhost' IDENTIFIED BY 'password';
     (2)分配权限
        GRANT ALL PRIVILEGES ON *.* TO 'qiny'@'localhost' IDENTIFIED BY '123456';
        GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password';
     (3)移除权限
        EVOKE ALL PRIVILEGES ON *.* FROM 'username'@'localhost';

    6.c语言连接mysql
     (1)安装msyql的库文件
        编译方式:gcc xxx.c -o target -lmysqlclient
        其中-lmysqlclient的含义是使用mysqlclient的动态库文件。
     (2)使用mysql的库函数(相关函数参考mysql.h或者网上搜索)
        MYSQL * conn; //创建一个mysql的数据库连接指针
        conn = MSYQL_init(NULL); //初始化这个数据库连接指针
        conn = mysql_real_connect(conn,"localhost","qiny","password","test",0,NULL,0);//连接数据库,其中第一个参数是数据库连接指针,第二个参数是地址,第三个参数是用户名,第四个参数是密码,第五个参数是数据库的名称。
        mysql_query(conn,sql);//向数据库发出查询请求。
        MYSQL_RES * res_ptr = mysql_store_result(conn);    //建立一个数据存储区域,接受查询的结果。
        int column = mysql_num_fields(res_ptr);//获取数据库表的列数。
        int row = mysql_num_rows(res_ptr);//获取数据库表的行数。
        MYSQL_FIELD * field = mysql_fetch_field(res_ptr);//获取数据库返回值表的列名。
        MYSQL_ROW * mysql_row = mysql_fetch_row(res_ptr);//获取数据库中的一行数据 。


        

        
        
        
        
        
        
        
            


























     

  • 相关阅读:
    Java Map遍历方式的选择
    UriMatcher类的addURI()方法
    Java IO流分析整理[转]
    java基础一些注意细节
    java中static变量和方存在内存什么区域
    详细解析Java中抽象类和接口的区别
    mybatis一些记录
    Go语言简介(上)— 语法
    JavaScript相关-深入面向对象
    33个组件5
  • 原文地址:https://www.cnblogs.com/qiny1012/p/9535438.html
Copyright © 2011-2022 走看看