MySQL-增删改查基础

创建数据表:

CREATE TABLE if not EXISTS table_name(
colunm_name data_type,
...)
CREATE TABLE tb1(
username VARCHAR(20),
age TINYINT UNSIGNED,      #unsigned类型,即无符号类型是属于整型变量,即永远为非负的整型变量
salary FLOAT(8,2) UNSIGNED
);
CREATE TABLE tb2(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,  #AUTO_INCREMENT自增加长必须和主键一起使用,添加数据时这个字段可以不用赋值
username VARCHAR(20) NOT NULL UNIQUE KEY,  #字段值禁止为空
age TINYINT UNSIGNED NULL,     #字段值可以为空
sex ENUM('1','2','3') DEFAULT '3'
);

PRIMARY KEY
主键约束
每张数据表只能存在一个主键
主键保证记录的唯一性
主键自动为NOT NULL
UNIQUE KEY
唯一约束
唯一约束可以保证记录的唯一性
唯一约束的字段可以为空值(NULL)
每张数据表可以存在多个唯一约束
DEFAULT
默认值
当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。

FOREIGN KEY
外键约束

添加单列

ALTER TABLE table_name ADD [COLUMN]col_name column_definition [FIRST | AFTER col_name]

ALTER TABLE tb1 ADD password VARCHAR(32) NOT NULL AFTER username;
添加多列

ALTER TABLE table_name ADD [COLUMN](col_name column_definition,...)

删除列

ALTER TABLE table_name DROP [COLUMN]col_name
ALTER TABLE table_name DROP col_name1,DROP col_name2

ALTER TABLE tb1 DROP password;

增:

INSERT INTO tale_name [(col_name,...)] VALUES(val,...)  #INTO可以省略
INSERT tb1 VALUES('TOM',25,7863.25);   #这种情况,如果有id自增长,可以传NULL/DEFAULT
INSERT tb1 (username,salary) VALUES('John',4500.69);

INSERT INTO tale_name [(col_name,...)] VALUES(val,...),(val,...)       #插入多条

可以把一张表的数据按条件查出来插入另一张表
INSERT INTO tb2(username,age) SELECT username,age from tb1 WHERE age>10;

删:

DELETE from table_name [WHERE where_condition]

改:

UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1|DEFAULT)}[,col_name2={expr2|DEFAULT)}]... [WHERE where_condition]

UPDATE tb1 set age=age+5 where id % 2=0;   #更新id为偶数的记录

查:

SELECT expr,... from table_name
SELECT * from tb1;

posted @ 2020-03-24 17:18  忆梦,惊梦  阅读(175)  评论(0编辑  收藏  举报