Dieser Artikel vermittelt Ihnen relevantes Wissen über MySQL, das hauptsächlich verwandte Themen zur DML-Fortschrittung, zur Paging-Suche, zu SQL-Einschränkungen und zum Erlernen von Mehrtabellenoperationen vorstellt. Ich hoffe, dass es für alle nützlich sein wird . helfen.
Empfohlenes Lernen: MySQL-Video-Tutorial
#首先简单的创建一个student表为后序操作做准备 use test; create table student ( id int, name varchar(8), age tinyint ) engine = innodb default charset = utf8mb4; desc student;
alter table student add addr varchar(20); #新增一个addr列出来
alter table student modify addr varchar(15); #修改student表中addr列的数据类型 (长度修改) alter table student modify addr char(20); #修改student表中addr列的数据类型 (类型修改为char(20))
alter table student change addr stu_addr varchar(20); # change 相比 modify 而言功能更加强大可以修改列名字. # modify不可以修改列名
Werte und Felder müssen übereinstimmen, mit der gleichen Anzahl und dem gleichen Typ.
Zusammenfassung und Hinweise zu neuen Datensatzvorgängen:
Der Typ des Spaltennamens muss mit dem geänderten Wert übereinstimmen
#模拟这样一个场景, 每一页5条数据 select * from student limit 0, 5; # 第一页 select * from student limit 5, 5; # 第二页 select * from student limit 10, 5; # 第三页
-- 后台计算出页码、页数(页大小) -- 分页需要的相关数据结果分析如下, -- 注意:下列是伪代码不用于执行 int curPage = 2; -- 当前页数 int pageSize = 5; -- 每页显示数量 int startRow = (curPage - 1) * pageSize; -- 当前页, 记录开始的位置(行数)计算
create table user_table( id int primary key, #添加主键约束 name varchar(10), age tinyint ) engine = innodb charset = utf8mb4;
insert into user_table values(1001, '翠花', 18); #插入第一条记录翠花是没有问题的 insert into user_table values(1001, '王五', 20); #插入这条记录应当是报错, 重复插入主键了 # [Err] 1062 - Duplicate entry '1001' for key 'PRIMARY' # 重复加入1001 作为主键
insert into user_table values(null, '大胖', 30); # 区别唯一约束, 主键约束不可以为null #[Err] 1048 - Column 'id' cannot be null
create table persons ( pid int, lastname varchar(255), firstname varchar(255), address varchar(255), constraint persons_pk primary key(lastname, firstname) #通过constraint 增添联合主键 ) engine = innodb default charset = utf8mb4;
alter table user_table add constraint name_id_pk primary key(name, id); # 向user_table表中增加一个name + id的联合主键
alter table user_table drop primary key; # 删除user_table表中的主键约束
格式: 字段名 整数类型[长度][约束] auto_increment
create table test( id int primary key auto_increment, # 添加一个主键约束, 设置自动增长. 默认增长为1 age tinyint, name varchar(20) ) engine = innodb default charset = utf8mb4;
insert into test values(null, 18, '小呼噜'); # 我们设置了主键自动递增可以不再需要传入主键字段 # 或者主键传入null 他会自动设置从1开始默认增量1
drop table test; create table test( id int primary key auto_increment, name varchar(10) not null,#设置非null 插入数据不能传入null age tinyint ) engine = innodb auto_increment = 10 default charset = utf8mb4; # 我们还可以向这般指定auto_increment的值
insert test values(null, null, 28); # 会出错, 第二个字段增加了not null 约束 # 传空会报错[Err] 1048 - Column 'name' cannot be null
alter table test modify name varchar(10); # 非常简单的方式, 直接更改数据类型的不加null约束即可 desc test;
注意:
drop table test; create table test ( id int unique, # 添加一个唯一约束 name varchar(20) not null, age tinyint ) engine = innodb default charset = utf8mb4; desc test;
insert into test values(null, '张三', 19); # 允许传入null 区别primary key insert into test values(1, '李四', 30), (1, '王五', 38); #报错[Err] 1062 - Duplicate entry '1' for key 'id'
CREATE TABLE persons ( pid INT, lastname VARCHAR(255), firstname VARCHAR(255), address VARCHAR(255) DEFAULT '香港' -- 添加默认约束 )engine = innodb default charset = utf8mb4;
# 传入null 则会按照default 赋值 insert into persons(pid, lastname, firstname) values(2, '德华', '刘'); # 或者指定字段, default字段可以不用传入val
alter table 表名 add 列名 类型(长度) 新增一列
alter table 表名 modify 列名 oldtype newtype 针对一列仅仅只做类型修改
alter table 表名 change old列名 new列名 oldtype newtype 针对一列可做类型 + 列明修改
alter table 表名 drop 列名; 针对一列做删除操作
insert into 表名(指定字段) values(指定值), (指定值); 指定插入字段值 (插入记录)
insert into 表名 values(所有字段顺序写入值); 按照建表字段顺序插入字段值
update 表名 set 字段 = 值 where 条件指定记录 更改记录
delete from 表名 where 条件指定记录 从指定表中删除满足条件的记录
约束就是一种限制
主键约束 (相当于是 unique 约束 + 非 null约束的结合), 用来唯一标识表中的记录
unique 约束, 也是保持不可重复, 列字段值唯一, 但是允许为null
非 null 约束. 就是不允许为null 不可以传入null作为参数
默认约束, 如果传入null 就默认字段值为初始默认值
朋友们,虽然今日介绍的东西不难, 但是简单的东西我们需要下细的掌握, 可以的话还是尽量测试一下, 祝大家学业有成,工作升职加薪
推荐学习:mysql视频教程
Das obige ist der detaillierte Inhalt vonMySQL-Zusammenfassung, gemeinsame Nutzung von DML Advanced, Paging-Suche, SQL-Einschränkungen und Multi-Table-Operationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!