语法:create table table_name(col_name1 data_type1,col_name2 data_type2,....); 创建t_test数据表,字段为id,name(数据类型中的数字是字段长度)
create table t_test(id char(20),name char(10));
完整创建定义:
create [temporary] table [if not exists]table_name [([column_definition],~~~|[index_definition])] [table_option][select_statement];
创建数据表:
show create table tablename 查看数据表的定义
语法:describe table_name; desc table_name;
describe可以缩写为desc。
describe t_test;
desc t_test;
语法:show tables;
show tables;
如果是复制其他数据库的表结构,在table_name2前加上数据库的名称
语法:create table new_table_name1 like old_table_namme2;
将数据库db_test中的t_test1表结构复制到当前数据库,命名为表结构t_test2。
create table t_test1 like t_test2;
表结构一致
insert into table_name_new select * from table_name_old;
表结构不一致
insert into table_name_new(column1,column2...) select column1,column2... from table_name_old;
语法:alter table old_table_name (旧名字) rename new_table_name(新名字);
alter table t_test1 rename t_test2;
语法:alter table table_name add col_name1(添加字段名)data_type (字段类型);
alter table t_test add test_address varchar(255);
语法:alter table table_name add col_name1(添加字段名)data_type (字段类型) first;
alter table t_test add test_address varchar(255) first;
语法:alter table table_name add col_name1(添加字段名)data_type (字段类型) after test2(字段);
alter table t_test add test1 varchar(20) after test2;
语法:alter table t_reader drop reader_qq (删除的字段名);
alter table t_test drop test1;
语法:alter table table_name modify col_name1(字段名) data_type (字段类型); 将test2的数据类型由varchar改为char。
alter table table_name modify test2 char(100);
语法:alter table table_name change old_col_name(字段名) new_col_old(新字段名) data_type(字段数据类型);
alter table t_test change test_address address char(100);
作用:保证输入记录唯一性 方式: - 创建表时设置 - 创建表之后设置
语法:create table table_name(xs_id char(12),xs_name char(10) primary key (xs_id)); 创建studnet表时,将xs_id设置为主键。
create table student (xs_id char(12),xs_name char(10),primary key(xs_id));
创建studnet表时,将xs_id和xs_name设置为主键。这种将多个字段设为主键的方式称为:组合主键。组合主键也是一个主键(唯一性)。
create table student (xs_id char(12),xs_name char(10),primary key(xs_id,xs_name));
语法:alter table table_name drop primary key;
alter table studnet drop primary key;
作用:确保数据完整性。如: - 实体完整性 - 用户定义完整性 - 参照完整性 只有当某个字段成为了主键后,该字段才能在其它表中成为外键。 语法:alter table table_name add constraint 外键名称 foreign key (设为外键的字段名)references t_table2(主键字段名);
将t_test1表中id字段设为主键,t_test2表中id字段设为外键。
alter table t_test2 add constraint fk1 foreign key (id) references t_test1(id);
语法: show create table table_name; 获取外键名称:
show create table t_test2;
语法:alter table t_test2 drop foreign key 外键名称;
alter table t_test2 drop foreign key fk1;
什么是约束:在创建表的时候,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性、有效性、完整性。
常见的约束:
create table t_user(
id int,
username varchar(255) not null(**在创建表时添加约束**),
password varchar(255)
);
insert into t_user(id,password) values(1,'123'); //编译错误,约束username字段不能为空!
ERROR 1364 (HY000): Field 'username' doesn't have a default value
insert into t_user(id,username,password) values(1,'lisi','123');
唯一性约束修饰的字段具有唯一性,不能重复。但可以为null。
drop table if exists t_user;
create table t_user(
id int,
usercode varchar(255),
username varchar(255),
unique(usercode,username) //多个字段联合起来添加一个约束unique 【表级约束】
);
ps:not null约束只有列级约束,没有表级约束。
drop table if exists t_user;
create table t_user(
id int primary key, //列级约束
username varchar(255),
email varchar(255)
);
create table t_user(
id int primary key, //列级约束
username varchar(255),
email varchar(255)
);
主键的分类:
1)根据主键字段的字段数量来分:单一主键 and 复合主键
2)根据主键的性质来划分:自然主键 and 业务主键
关于外键约束的相关术语:
A表中的字段引用B表中的字段,则A是子表,B是父表
删除数据的时候,先删除子表,再删除父表。添加数据的时候,先添加父表,再添加子表。创建表的时候,先创建父表,再创建子表。删除表的时候,先删除子表,再删除父表。外键值可以为null
1.字符串常量:用单引号进行字符串
【数据库】 mysql的四种安装方式_mysql安装-CSDN博客