MySQL 创建表修改表,插入删除数据学习记录

创建表

创建表实例:

create table test ( id int  auto_increment,
                    ts1_id int ,
                    primary key(id,ts1_id),
                    ts_name varchar(20) not null,
                    ts_num int unique,
                    ts_sex  varchar(20)  default 'girl',
                    ts_count int default '0'
                    start_time  timestamp);

在这里插入图片描述

分解:
id int auto_increment:设置id为自动增长,auto_increment是MYSQL中的一个特殊约束条件,其主要作用是为表中新插入的新纪录自动生成唯一的ID;
一个表只能有一个字段使用auto_increment约束,且该字段必须为主键的一部分;
auto_increment约束的字段可以是任何整数类型;

primary key(id,ts1_id):设置多个字段的主键

ts_name varchar(20) not null:设置字段的非空约束

ts_num int unique:设置字段的唯一性约束,唯一性是指所有记录中该字段的值不能重复出现

【 ts_sex varchar(20) default 'girl' ts_count int default '0'】: 设置字段的默认值,如果在插入一条新的记录时,没有为这个字段赋值,那么数据库系统会自动为这个字段插入默认值
字段类型:
1. 数值型字段类型
MySQL支持整型、浮点型、双精度型、定点型等数值型字段类型。在创建表中需要声明数值字段类型,如下所示:
CREATE TABLE mytable(
myfield1 INT,
myfield2 FLOAT,
myfield3 DOUBLE,
myfield4 DECIMAL(10,2)
);
2. 字符型字段类型
MySQL支持字符型字段类型,如 CHARVARCHARTEXTBLOB 等。它们的区别在于字符串长度和存储方式不同,如下所示:
CREATE TABLE mytable(
myfield1 CHAR(20),
myfield2 VARCHAR(50),
myfield3 TEXT,
myfield4 BLOB
);
3. 日期和时间类型
MySQL支持 DATETIMEDATETIMETIMESTAMP等日期和时间类型。我们可以用它们将时间和日期的数据类型存储到数据库中,如下所示:
CREATE TABLE mytable(
myfield1 DATE,
myfield2 TIME,
myfield3 DATETIME,
myfield4 TIMESTAMP
);
4. 枚举型
 MySQL支持ENUM类型,它能够将一组可选的值组成列表。如下所示:
CREATE TABLE mytable(
myfield1 ENUM('男','女')
);
  • 表的完整性约束条件

primary key : 标识该属性为该表的主键,可以唯一的标识对应的元组
foreign key :标识该属性为该表的外键,是与之联系某表的主键
not null : 标识该属性不能为空
unique : 标识该属性的值是唯一的
default : 为该属性设置默认值
auto_increment : 标识该属性的值自动增加

查看表结构和字段

describe   test ; --查看表结构
desc  test ;--简写
show create table  test ;--查看表的详细结构语句

修改表

修改表名

语法格式:alter table 旧表名 rename [to] 新表名;

Alter table example0 rename test;
修改表字段
alter table test modify ts_name varchar(30);--修改字段的数据类型
alter table test modify stu_sex varchar(30);
alter  table test  modify score DOUBLE;



ALTER table test change sex ts_sex boolean;--修改字段名
alter table test change stu_sex sex int(2);


ALTER table test add age int(3);--增加字段
alter table test add phone int(11) not NULL;--增加有完整性约束条件的字段
ALTER table test add job_num int(3) first;--表的第一个位置增加字段
alter table test add ts_add varchar(20) after age;--表的指定位置之后增加字段


alter table  test modify stu_id int first;--字段修改到第一个位置
ALTER TABLE test MODIFY address VARCHAR(30) three;-- 修改为表的第一个字段

alter table  test modify age int(3) after ts_name;--字段修改到指定位置
ALTER TABLE test MODIFY score DOUBLE AFTER address;-- score放在address的后面

添加外键约束
【alter table 从表 add foreign key(外键字段) references 主表(主键字段)】;

删除表
alter table test drop ts_add;--删除字段
drop table test;--删除表

插入删除数据

insert  into test1 values ('today',101);--为表的所有字段插入数据


insert  into test values (001,001,'zeng',1,'w',2);--为表的所有字段插入数据
insert  into test(ts_name) values ('zeng');--为表的指定字段插入数据
insert  into test values (002,002,'zeng',2,'w',2),(003,003,'zeng',3,'w',2);--同时插入多条记录
insert into test (ts_name,ts_num) select name,ts_num from test1;--将查询结果插入到表中

语法格式:

insert into 表名1 (属性列表1)
select 属性列表2 from 表名2 where 条件表达式;

表名1说明记录插入到哪个表中;
表名2表示记录是从哪个表中查询出来的;
属性列表1参数表示为哪些字段赋值;
属性列表2表示从表中查询出哪些字段的数据;
条件表达式参数设置了select语句的查询条件;

注意:使用这种方法时,必须保证属性列表1和属性列表2中的字段个数是一样的,而且每个对应字段的数据类型必须是一样的。

delete from test where id=1001;--删除数据
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值