MySQL——创建和插入

时间:2024-04-17 07:06:38

一、插入数据

INSERT 使用建议;
在任何情况下建议列出列名,在 VALUES 中插入值时,注意值和列的意义对应关系
values 指定的值顺序非常重要,决定了值是否被保存到正确的列中
在指定了列名的情况下,你可以仅对需要插入的列给到值即可,对于有默认值的列会自动填充默认
省略列名的注意事项
列的属性中允许设置为 NULL
表结构中规定了列的默认值
因为插入语句相对耗时,所以插入语句的执行者可以在插入语句中加入低优先级声明,保证查询语
句被优先执行 ( 相同的操纵可以在 update delete 句中使用 )
INSERT LOW_PRIORITY INTO

首先查看数据表结构

格式:desc 表名;

 插入数据

不选取列,直接插入,注意事项非常多!

格式:INSERT INTO 表名 VALUES (值1,值2.。。。)

指定插入数据

选择需要插入数据的列,只需要保证值和列的对应关系就好,但是需要注意被省略的列一定要是允许为 NULL 并设定了默认值的

格式:INSERT INTO 表名(列名1,列名2 .。。。)VALUES ( 值1,值2.。。。)

 插入多条数据

INSERT INTO 表名(列名1,列名2)values

(值1,值2。。。)

(值1,值2.。。。)

mysql> INSERT INTO mydb2.stu_info (stu_id,stu_name,stu_age,stu_gender)
    -> values
    -> (4,'zy',59,'F'),
    -> (5, '周杰伦', 44, 'M'),
    -> (6, '林俊杰', 42, 'M'),
    -> (7, '薛之谦', 40, 'M');

更新字段

格式 :update 表名 set 列名 = 22 where 条件;

例:update stu_info set stu_age = 22;

删除数据

使用注意事项:
不要省略 where 子句,以避免发生整张表格数据删除的错误,请在使用 DELETE 之前认真分析语句
内容
先编写 where 子句确定修改的范围
DELETE 权限的划分

delete from 表名 where 列名 =条件

 整张表格数据的删除一般使用

TRUNCATE 表

注意事项:
1. delete 删除的表中的数据,而不是数据表;
2. 整张表格数据的删除一般使用 TRUNCATE

二、创键

创建数据库

格式:CARATE DATABASES 数据库名;

 建表结构

格式:CREATE TABLE 表名(列名 类型 约束条件),(列名2,类型 约束条件);

mysql> create table stu_info(
    -> stu_id int primary key auto_increment comment '学号',
    -> stu_name varchar(30) not null comment '姓名',
    -> stu_age tinyint not null check (stu_age >= 18),
    -> stu_gender char(1) not null default 'M' check (stu_gender in ('F', 'M'))
    -> );

 常见数据类型

数据类型详解 MySQL的数据类型以及表的创建。_数据库建表数字型-****博客文章浏览阅读1.2k次,点赞2次,收藏2次。数据类型:在MySQL中,有三种主要的类型;文本、数字和日期/时间类型。Text 文本类型:Number 数字类型:注意:这些整数类型拥有额外的选项 UNSIGNED。通常,整数可以是负数或正数。如果添加UNSIGNED属性,那么范围将从 0 开始,而不是某个负数。Date 日期类型常见的数据类型:表表的创建:使用create table创建表在创建表的时候,需要确定表的结构表的字段,字段的类型,字段的约束条件**CREATE TABLE t_user (usid i_数据库建表数字型https://blog.****.net/zrz1028/article/details/121177949?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171288492016800211551447%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=171288492016800211551447&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-121177949-null-null.142%5Ev100%5Epc_search_result_base9&utm_term=mysql%E5%88%9B%E5%BB%BA%E8%A1%A8%E7%9A%84%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B&spm=1018.2226.3001.4187

约束条件

主键

primary key

非空
not null
自动排序

auto_increment  #默认非空

 禁止重复

unique

添加外键

主要起到外键的约束,不可以随意添加数据,保证了数据的完整性

方法一:直接在属性值后面添加

create table score(
cscore int(11),
st_id int(50) references student(id),
cs_id int(30) references classes(id),
primary key(st_id,cs_id)
);

方法二:建表时在末尾添加

create table score(
cscore int(11),
st_id int(50),
cs_id int(30),
primary key(st_id,cs_id),
FOREIGN KEY (st_id) REFERENCES student(id),
FOREIGN KEY (cs_id) REFERENCES classes(id)
);

方法三:添加约束

create table score(
cscore int(11),
st_id int(50),
cs_id int(30),
primary key(st_id,cs_id),
CONSTRAINT `FK_ID_ST` FOREIGN KEY (st_id) REFERENCES student(id),
CONSTRAINT `FK_ID_CS` FOREIGN KEY (cs_id) REFERENCES classes(id)
);

方法四:在表的定义外进行添加

alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应

 枚举

DHECK (字段 IN ('',''))

范围

格式: CHECK (字段 between 数值 and 数值)

三、修改

字段

#修改字段类型、字段注释、字段默认值
ALTER  TABLE 表名 MODIFY [COLUMN] 字段名 新数据类型 新类型长度  新默认值  新注释;
 -- COLUMN关键字可以省略不写

mysql修改字段名:
ALTER  TABLE 表名 CHANGE [column] 旧字段名 新字段名 新数据类型;	

表名

ALTER TABLE 旧表名 RENAME TO 新表名

注释

ALTER TABLE 表名 COMMENT '新注释'

 增加一个字段

ALTER TABLE 表名 ADD COLUMN newname 数据类型 数据长度 默认值 注释

//增加一个字段,默认为空
alter table box add column boxroom int 10 default null comment '座位空间'
//增加一个字段,默认不为空
alter table box add column boxroom int 10  not null comment '座位空间'

ALTER TABLE 表名 ADD [COLUMN] 字段名 字段类型 是否可为空 COMMENT '注释' AFTER 指定某字段 ;
--COLUMN关键字可以省略不写

 删除一个字段

ALTER TABLE 表名 DROP [COLUMN] 字段名 ;
--COLUMN关键字可以省略不写