六大约束:主键约束、外键约束、非空约束、唯一约束、默认约束、自动增加
1.not null非空 2.defaul默认值,用于保证该字段的默认值 ; 比如年龄:1900-10-10 3.primar key主键,用于保证该字段的值具有唯一性,并且非空 4.uniqu唯一约束,保证该字段的值可以为空,具有唯一性 5.AUTO_INCREMENT自动递增 6.foreign key外键约束; 用于限制两个表的关系, 用于保证该字段的值必须来自于主表的关联列的值; 在从表中添加外键约束,用于引用主表中的某列的值;
一、创建表
语法:使用use 数据库名;先指明数据库,再create table 表名
create table [if not exists] 表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
)[存储引擎 字符集];
==在同一张表中,字段名是不能相同
==宽度和约束条件可选
==字段名和类型是必须的
create table t_name(
id int(10) primary key,
name char(10) not null,
age int(10),
)ENGINE=InnoDB;
注:也可以使用:create table 数据库名.表名(……)
二、查询表
(1)、查询所有表:
show tables 表名;
(2)、查询部分表
前缀为ex的表 show tables like 'ex_%';(查出以ex_开头的表)
(3)、查询表结构
describe 表名;(可简写为 desc 表名;)
show columns from 表名;
(4)、查看表的创建语句(同查看数据库的创建语句:show create database 数据库名;)
show create table 表名;
三、修改表
(1)、修改表名
rename table 老的表名 to 新的表名; // rename 可以对多个表进行改名
alter table 旧表名 rename 新表名;
(2)、跨数据库改名
rename table 老的表名 to 其他数据库.新的表名
(3)、如果想在一个已经建好的表中添加一列,可以用以下代码:
alter table 表名 add [column] 字段名 varchar(20) not null;
alter table 表名 add (字段名 int(10), 字段名int(10));(添加多个字段)
(4)、改变表的字段
alter table t_name modify 字段名 char(11); -----只能改属性不能改名字
alter table t_name change gender age int(12); -----既可以改名也可改属性(把gender改为age)
alter table t_name change gender int(12) first; -------把gender放在第一列
alter table t_name change gender int(12) after id; -------把gender放在id后面
(5)、删除字段
alter table 表名 drop 字段名; -----删除一列
四、删除表
drop table 表名1,表名2……;
五、中文乱码问题
博客详细介绍:https://www.cnblogs.com/shootercheng/p/5836657.html
https://www.cnblogs.com/eRrsr/p/6044227.html
当然你也可以改mysql配置文件/etc/my.cnf。
六、简单数据库数据操作
https://www.cnblogs.com/heyangblog/p/7624645.html
七、数据库操作函数大全
https://www.cnblogs.com/slowlyslowly/p/8649430.html
八、数据库多表查询
http://www.cnblogs.com/bypp/p/8618382.html