创建数据表:
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;
完