MySql数据库的基本操作-表-总结


1.Mac这样调用:/usr/local/mysql/bin/mysql -u root -p

Ubuntu这样调用:mysql -uroot -p

 

2.查看数据库:show databases;

新建数据库:create database t1;

查看刚建立的数据库:show create databases t1;

修改此数据库的编码方式:alter database t1 character set = utf-8;

删除数据库:drop database [if exists] t1; //  []内是可选项

打开(使用)数据库:use test;

显示用户已经打开的数据库:select database();

3.关于数据表:

1.创建表:create table tb1(

    -> username varchar(20) [not null], //用户姓名,字符型

    -> age tinyint unsigned [null], //年龄,整形,无符号类型

    -> salary float(8,2) unsigned //工资,浮点型,共8位,小数后两位,无符号型

-> );

其中not null表示字段禁止为空;null表示字段可以为空。

2.查看[某数据库的]表:show tables [from mysql];

  查看数据表结构:show columns from tb1;

3.表数据的插入:insert tb1 values('Tom',25,6987.55);

                insert tb1(username,salary) values('John',5547.65);

4.表数据的查询:查询全部的记录:select from tb1;

5.添加主键于一个字段,那么此字段的值不能重复,一个表中,只有一个主键,而且这个主键自动非空

create table tb2(

    -> id smallint unsigned auto_increment primary key  // id字段作为主键

    -> ); // auto_increment意思是自动增加值,第一个是1,第二个是2...

 

6.添加唯一约束unique key,保证记录的唯一性   默认约束default

create table tb3(

    -> id smallint unsigned auto_increment primary key,

    -> username varchar(20) not null unique key,

    -> sex enum(‘1’,’2’,’3’) default ‘3’

-> );

7.外键约束:例如建两张表:

create table provinces(

    -> id smallint unsigned primary key auto_increment,

    -> pname varchar(20) not null

    -> ); 

create table users(                                                           

    -> id smallint unsigned primary key auto_increment,

    -> username varchar(10) not null,

    -> pid smallint unsigned,

    -> foreign key (pid) references provinces (id) on delete|update cascade                               

    -> ); 

当前子表users的外键设置为pid,参照父表provincesid

1.cascade:若父表删除/更新,则子表相应删除/更新;

2.set null:若父表删除/更新,则子表相应的外键设置为null(相应字段不能是not null);

3.restrict:若父表删除/更新,子表无变化;

4.no action:与restrict一样。

 

8.添加单列: alter table table_name add [column] col_name column_definition [First | After col_name]

添加一列age至末尾:alter table users1 add age tinyint unsigned not null default 10;

passwordusername的后面alter table users1 add password varchar(32) not null after username;

添加truename至最前:alter table users1 add truename varchar(20) not null first;

9.添加多列:alter table tbl_name add [column] (col_name col_definition,…)    //添加到现有列的最后

10.删除列:alter table users1 drop column_name;

alter table users1 drop password,drop age;  //删除多列,列name之间用,分隔。

也可以add+drop写在一起:alter table users1 drop password,add age;

alter table是修改表的关键字。

11.添加主键约束:alter table tbl_name add [constraint [symbol]] primary key [index_type] (index_col_name,...)

alter table users2 add constraint PK_users2_id primary key (id);

其中,PK_users2_id是约束的名字,设置主键为id字段。

12.添加唯一约束:alter table tbl_name add [constraint [symbol]] unique [index | key] [index_name] [index_type](index_col_name,...)

users2username字段添加唯一约束:alter table users2 add unique (username);

13.添加外键约束:alter table users2 add foreign key (pid) references provinces(id); 

     修改表users2 添加外键约束给pid字段  参照  表provincesid字段

14.添加|删除默认约束:alter table tbl_name alter [column] col_name {set default literal | drop default}

age设置默认值15: alter table users2 alter age set default 15;

删除age的默认值:    alter table users2 alter age drop default;

15.删除主键约束:alter table tbl_name drop primary key

16.删除唯一约束:alter table tbl_name drop {index|key} index_name

17.删除外键约束:alter table tbl_name drop foreign key flk_symbol

删除外键约束的时候,必须加上外键名字(flk_symbol),所以首先要show create table tbl_name;来查看外键名字,比如:CONSTRAINT `users2_ibfk_1` foreign key(‘pid’) references......其中users2_ibfk_1就是外键名字。

    根据外键名字直接删除:alter table users2 drop foreign key users2_ibfk_1;

18.删除索引(根据列名称):alter table users2 drop index pid;

删除表users2的索引pid

19.修改列定义(类型/位置)alter table tbl_name modify[column] col_name column_definition [first |after col_name];

id到第一列/id类型:alter table users2 modify id smallint unsigned not null first;

修改列定义/名称:

alter table tbl_name change[column] old_col_name new_col_name column_definition [first|after col_name]

pid类型/名称都修改p_idalter table users2 change pid p_id tinyint unsigned not null;

20.数据表更名:

a) alter table tbl_name rename[To|As] new_tbl_name;

b) rename table tbl_name to new_tbl_name[,tbl_name2 to new_tbl_name2]...

示例:

alter table users2 rename users3; //users2改名为users3

rename table users3 to users2,t2 to RK2; //users3改名为users2t2改名为RK2

 

 

 

 

 

 

 -----------------------------------------------------------------------------------------------------------------------------

一直在http://www.imooc.com/ 学习,感觉不错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

limaning

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值