MySQL创建数据库表

查看表的定义- desc 表名
查看表里面的数据- select*from 表名
跨库查询表- show columns from 表名 from 库名
建表的大模版
create table 表名(
列名01 数据类型 约束01,
列名02 数据类型 约束02,
列名03 数据类型 约束03);
建表的具体模版
create table 表名(
列名01 int not null auto_increment primary key,
列名02 varchar(200) not null,
列名03 datetime ,
列名04 int default 1000,
列名05 float|double|decimal(10,2) )
插入一条记录的模板
insert into 表名(列名01,列名02,列名03,…) values(第一列对应 的值 ,第二列的值,第三列的值,…);
需要注意的是: 1,如果你的列是自增长列,则不应出现在表名后()中以及values后的()中 2,列名和列值要一一对应 3,对values中的值,除了整形和
浮点类型外,其他的值都必须两边加单引号或双引号。
修改表的语法模板
第一种:修改表中某一列的数据类型,语法模板:
alter table 表名 modify 列名 你要修改的数据类型;
(只能修改同类型的数据类型,如date datetime vachar(10) vachar(100) )
第二种,修改表结构为其增加字段(列)
alter table 表名 add column 列名 数据类型 相关约束;
第三种:删除表中的字段
alter table 表名 drop column 列名;
第四种:为表中的字段改名
alter table 表名 change 旧列名 新列名 数据类型 约束;
MySQL约束
约束英文:constraint
约束实际上就是表中数据的限制条件
约束种类
1非空约束(not null)
2唯一性约束(unique)
3主键约束(primary key) PK
4外键约束(foreign key) FK
5检查约束(目前MySQL不支持、Oracle支持)
1-非空约束 用not null约束的字段不能为null值,必须给定具体的数据 创建表,给字段添加非空约束(创建用户表,用户名不能为空)
mysql> create table t_user(
-> id int(10),
-> name varchar(32) not null
-> );
Query OK, 0 rows affected (0.08 sec)
如果没有插入name字段数据,则会报错
2-唯一性约束
unique约束的字段,具有唯一性,不可重复,但可以为null 创建表,保证邮箱地址唯一(列级约束)
mysql> create table t_user(
-> id int(10),
-> name varchar(32) not null,
-> email varchar(128) unique
-> );
Query OK, 0 rows affected (0.03 sec)
2.1-表级约束
mysql> create table t_user(
-> id int(10),
-> name varchar(32) not null,
-> email varchar(128),
-> unique(email)
-> );
mysql> insert into t_user(id,name,email) values
(1,‘xlj’,‘1606174027@qq.com’);
Query OK, 1 row affected (0.00 sec)
mysql> insert into t_user(id,name,email) values
(2,‘jay’,‘1606174027@qq.com’);
ERROR 1062 (23000): Duplicate entry ‘1606174027@qq.com’ for key ‘email’
2.2-使用表级约束,给多个字段联合约束
联合约束,表示两个或以上的字段同时与另一条记录相等,则报错
mysql> create table t_user(
-> id int(10),
-> name varchar(32) not null,
-> email varchar(128),
-> unique(name,email)
-> );
Query OK, 0 rows affected (0.01 sec)
插入第一条数据
mysql> insert into t_user(id,name,email) values(1,‘xxx’,‘qq.com’);
Query OK, 1 row affected (0.05 sec)
插入第二条数据如果是与联合字段中的一条相同另一条相同,也是可以的
mysql> insert into t_user(id,name,email) values(2,‘mmm’,‘qq.com’);
Query OK, 1 row affected (0.05 sec)
插入第三条数据,如果与联合字段都相同,则报错
mysql> insert into t_user(id,name,email) values(3,‘mmm’,‘qq.com’);
ERROR 1062 (23000): Duplicate entry ‘mmm-qq.com’ for key 'name
2.3-表级约束可以给约束起名字(方便以后通过这个名字来删除这个约 束)
mysql> create table t_user(
-> id int(10),
-> name varchar(32) not null,
-> email varchar(128),
-> constraint tuseremail_unique unique(email)
-> );
Query OK, 0 rows affected (0.06 sec)
constraint是约束关键字,tuseremail_unique自己取的名字 例:用户名既不能为空,也不能重复
name varchar(32) not null unique