mysql数据库3306端口

mysql数据库3306端口目录 数据库的安装 检测数据库是否安装 登进数据库 创建用户 操作数据库 用户操作 类型 备份数据库 连接数据库 数据库的安装 sudo apt get install mysql server sudo apt get install mysql client sudo apt get install libmysqlclie dev 检测数据库是否安装

目录

 数据库的安装

 检测数据库是否安装

登进数据库

创建用户

 操作数据库

用户操作

 类型:

备份数据库

连接数据库


 

 数据库的安装

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

 检测数据库是否安装

sudo  netstat  -tap|grep  mysql

登进数据库

mysql   -hlocalhost  -uroot -p

创建用户

create user 'tang'@'localhost' identified by '' ;

grant all on *.* to ;tang'@'localhost'                            

\q ; //退出 

mysql -utang  -p 

 操作数据库

show databases ; //查看所有数据库

use stu ; //使用stu 数据库

drop database  stu  ;  //删除stu 数据库

create database stu ;  //创建stu 数据库

use stu ;   create table mystu ;

alter table mystu add id int primary key auto_increment ;  //为mystu表添加主键id 

alter table mystu auto_increment = 1000 ;     //自定义主键从1000递增

alter table mystu add age int ; 

alter table mystu modify age tinyint unsigned zerofill default 0 ;

alter table grade add foreign key(stuid) references mystu(id) ;  //为grade表添加一个名为 fk 的外键,关联于 mystu 表中的 id 。

alter table grade drop foreign key fk ;    //删除外键

创建表格设置外键:constraint 外键别名 foreign  key(字段名) reference 参照表(字段名)

删除外键:alter  table 表名 drop  foreign  key 外键别名

字段操作:
1,添加字段
alter  table  表名   add  字段的定义                   //默认放在最后
alter  table  表名   add  字段的定义  first      //放在最前
alter  table  表名   add  字段的定义  after  字段名  //指定字段后面
显示字段详细信息    desc  表名

删除表格    drop  table  表名

 

用户操作

  • 1,添加用户

create user '用户名'@'localhost'  identified  by '密码'

  • 2,授权

grant  all   on  *.*  to  '用户名'@'localhost'

  • 3,查看用户

select  host,user  from  mysql.user;

create table grade(
    -> id int ,
    -> chinese double ,
    -> math double ,
    -> english double ,
    -> constraint fk foreign key(id) references mystu(id))charset utf8;
 

 类型:

tinyint      1:默认是有符号类型

smallint     2
mediumint    3
int          4
bigint       8
unsigned :   设置无符号类型
zerofill :   零填充,默认就是无符号类型
not  null :  不能为空
default   :  设置默认值  

 

2)浮点类型

float:   4
double :  8
decimal(m,d)

3)字符串

char(32):   定长字符串
varchar(32):  变长字符串   
text       :   文本,不允许设置默认值

year :年份(以整型表示)
date:日期('yy-mm-dd')
time :时间('hh:mm:ss')
datetime:日期时间('yy-mm-dd hh:mm:ss')

备份数据库

备份:

1,表级备份(系统命令终端操作)

  • mysqldump  -uroot  -p 库名 表1  表2 > 路径   //备份指定表格
  • mysqldump  -uroot  -p 库名 > 路径        //备份库下的所有表格

2,库级备份

  • mysqldump  -uroot  -p  库1  库2 -B >路径    //备份指定库
  • mysqldump  -uroot  -p  --all-databases >路径    //备份所有库

mysqldump -utang -p  stu student score > ./table.sql ;     //备份stu数据库下的student 和 score 表到当前目录下的                                                                                                                          //table.sql文件中。

mysqldump -utang -p stu > ./tables.sql                             //备份stu库中的所有表

mysqldump -utang -p stu test -B > ./database.sql            //备份stu和test数据库

 

  • use  库名;
  • source  路径;

2,库级恢复

  • source  路径

use stu ;

source ./table.sql ; //执行当前目录下的table.sql的 sql 语句

连接数据库

int main()
{
    MYSQL mysql ;                               //定义数据库句柄
    if(NULL == mysql_init(&mysql)    //初始化句柄
    {
        printf("init failed!\n") ;
    }
    if(NULL == mysql_real_connect(&mysql, "localhost","tang","123","stu",0,NULL,0))    //连接数据库
    {
        printf("%s\n",mysql_error(&mysql)) ;
        return -1 ;
    }
    printf("connecct successfully!\n") ;

    mysql_set_character_set(&mysql , "utf8") ;           //设置字符集为 utf8

    char name [32] = "zhangsan" ;

    char sql[1024] ;

    sprintf(sql , "insert into student (name,class) values('%s' , '2')  " ,name) ;   // 为sql 用sprintf() 赋值

    if(0 != mysql_query(&mysql , sql))     //执行sql 语句

    {

             printf("%s", mysql_error(&mysql) ;

             return -1;

    }

    MYSQL_RES *result ;
    MYSQL_ROW row = NULL ;
    MYSQL_FIELD *field = NULL ;

    result = mysql_store_result(&mysql) ;
    int num_field = 0;
    int num_row = 0;
    num_row = mysql_num_rows(result) ;      //获取返回的数据行数
    num_field = mysql_num_fields(result) ;    //获取每行的字段数
    for(int i=0 ;i<num_field;++i)
    {
        field = mysql_fetch_field(result) ;    //获取每个字段
        printf("%s ,  ",field->name) ;            //打印字段名
    }
    putchar(10) ;
    for(int i=0 ;i<num_row;++i)
    {
        row = mysql_fetch_row(result) ;      //获取每行数据
        for(int i=0;i<num_field;++i)
        {
            printf("%s , ",row[i] );                   
//打印每行数据
        }
        printf("\n") ;
    }

    mysql_close(&mysql) ;                         //关闭数据库
 

    return 0 ;
}
shangqian@sq-v-m:~$ gcc mysql.c -lmysqlclient
shangqian@sq-v-m:~$ ./a.out

connecct successfully!
sno , sname , sbirth , ssex , class , 
101 , 曾华 , 1988-12-12 , 男 , 11033 , 
102 , 匡明 , 1987-06-05 , 男 , 11031 , 
103 , 王丽 , 1987-12-01 , 女 , 11033 , 
104 , 李军 , 1986-02-23 , 男 , 11033 , 
105 , 王芳 , 1988-04-01 , 女 , 11031 , 
106 , 陆君 , 1988-07-03 , 男 , 11031 , 
 

知秋君
上一篇 2024-11-12 18:12
下一篇 2024-11-12 21:48

相关推荐