1.Mac这样调用:/usr/local/mysql/bin/mysql
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,参照父表provinces的id。
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;
password至username的后面: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,...)
向users2的username字段添加唯一约束:alter table users2 add unique (username);
13.添加外键约束:alter table users2 add foreign key (pid) references provinces(id);
修改表users2 添加外键约束给pid字段 参照 表provinces的id字段
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_id:alter 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改名为users2,t2改名为RK2
-----------------------------------------------------------------------------------------------------------------------------
一直在http://www.imooc.com/ 学习,感觉不错。