mysql

2016-11-18  本文已影响0人  萌面大叔2

命令

创建一个数据,表格,并在表格中插入一列showtime

mysql> create database test01;    //创建一个数据test01
Query OK, 1 row affected (0.07 sec)

mysql> use test01;    //使用test01
Database changed
mysql> show tables;  //显示里面的表格
Empty set (0.01 sec)

mysql> create table data11(showtime time);//创建表格data11,列名为showtime
Query OK, 0 rows affected (0.34 sec)

mysql> insert into data11 values('11:11:11'),('11:11'),(111111);//在data11表格里填数据
Query OK, 3 rows affected (0.06 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from data11;//显示表格data11
+----------+
| showtime |
+----------+
| 11:11:11 |
| 11:11:00 |
| 11:11:11 |
+----------+
3 rows in set (0.04 sec)

mysql> 

运行结果:


图片1.png
插入数据(两种方式)
图片2.png 图片3.png

主键与外键

数据表之间的关联/引用关系是依靠具体的主键(primary key)和外键(foreign key)建立起来的。
主键:帮助MySQL以最快的速度把一条特点的数据记录的位置确定下来。

主键必须是唯一的
主键应该是紧凑的,因此整数类型比较适合
外键:引用另外一个数据表的某条记录。
外键列类型尽可能与主键列类型保持一致
外键列应该加上NOT NULL

create table student(
    sid int not null auto_increment,//自动增加sid不能为空
    name varchar(20) not null,
    primary key(sid)//主键
);
4.PNG 5.PNG
create table score(
    cid int not null auto_increment primary key,
    score int,
    sid int,
    foreign key(sid) references student(sid)//外键
);
捕获.PNG

内连接:

![Uploading 7_523478.PNG . . .] 7.PNG

外连接

复制表格里数据,创建新表

11.PNG 12.PNG

显示属性

增加,改名

add 列名 建表语句 [first | after 列名]
可以为表添加一列,如果没指定first或者after,则在列尾添加一列,否则在指定列添加新列
add primary key (列名)
为表添加一个主键,如果主键已经存在,则出现错误
add foreign key(列名) references 表名(列名)�为表添加一个外键
alter 列名 set default 默认值
可以更改指定列默认值
change 旧列名 新列名 <建表语句> [first | after 列名]
可以更改列类型和列名称,如果原列的名字和新列的名字相同
modify 列名 <建表语句> [first | after 列名]
和change的作用相同
drop 列名 //可以删除一列
drop primary key //可以删除主键
engine 类型名 //可以改变表类型
rename as 新表名 //可以将表名更改

举例1:
向people表中添加字段address2,类型为varchar,最大长度为100
alter table people add address2 varchar(100);
**举例2: **
将people表中的name列默认值改为100:
alter table people alter name set default 100;
举例3:
向student表增加“入学时间”列,其数据类型为日期型。
alter table student add scome date;
注:无论基本表中原来是否已有数据,新增加的列一律为空值。
举例4:
将年龄的数据类型改为半字长整数。
alter table student modify sage smallint;
注:修改原有的列定义有可能会破坏已有数据

1.PNG

用C++打开mysql里的表格

#include<mysql/mysql.h>
#include<iostream>
#include<string>
#include<stdlib.h>
using namespace std;
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
int main()
{
    const char *server = "localhost";
    const char *user = "root";
    const char *password = "123";
    const char *database = "test01";
    conn =mysql_init(NULL);
    if(!mysql_real_connect(conn,server,user,password,database,0,NULL,0))
    {
        cout<<"connect error "<<endl;
        return 0;
    }
    mysql_set_character_set(conn,"utf8");
    if(mysql_query(conn,"select * from students"))
    {
        cout<<"query error"<<endl;
        return 0;
    }
    res=mysql_use_result(conn);
    while ((row=mysql_fetch_row(res))!=NULL)
    {
        cout<<row[0]<<" "<<row[1]<<endl;
    }
    mysql_free_result(res);
    mysql_close(conn);
    return 0;
}
3.PNG
上一篇 下一篇

猜你喜欢

热点阅读