数据库基础使用
创建数据库
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name
查表
SHOW TABLES;
建表
CREATE TABLE IF NOT EXISTS tb1(
-> username VARCHAR(20),
-> age TINYINT UNSIGNED,
-> salary FLOAT(8,2) UNSIGNED
-> );
查表结构
SHOW CREATE TABLE tb1;
SHOW COLUMNS FROM tb1;
插入数据
INSERT [INTO] tab_name [col_name…] VALUES(val,…)
INSERT tb1 VALUES('TOM',25,18500.55);
INSERT tb1(username,salary) VALUES('Willam',69829.58);
查找记录
SELECT expr,…FROM tb_name
SELECT *FROM tb1;
设置空或非空字段
CREATE TABLE tb2(
-> username VARCHAR(20) NOT NULL,
-> age TINYINT UNSIGNED NULL
-> );
AUTO_INCREMENT
自动编号,且必须与主键组合使用
默认情况默认,起始值为1,每次的增量为1
主键约束PRIMARY KEY
主键约束
每张数据表只能存在一个主键
主键保证记录的唯一性
主键自动为NOT NULL
CREATE TABLE tb3(
-> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
-> username VARCHAR(30) NOT NULL
-> );
唯一约束UNIQUE KEY
唯一约束
唯一约束可以保证记录的唯一性
唯一约束的字段可以为空值null
每张数据表可以有多个唯一约束
看起来除了每张表内有多个唯一约束存在,好像和PRIMARY KEY每个啥子区别,那么来创建一个即有主键约束又有唯一约束的数据表
CREATE TABLE tb4(
-> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
-> username VARCHAR(20) NOT NULL UNIQUE KEY,
-> age TINYINT UNSIGNED
-> );
可见这里的username字段是有唯一约束的
这里插入一条数据,因为id字段是主键并且自动排序就不用了插入
再次插入则报错,因为username中已经存在‘TOM’了
PRIMARY KEY 和 UNIQUE KEY 的区别就在于此
默认约束DEFAULT
默认值
当插入记录时,如果没有明确为字段赋值,则自动赋予默认值
我们继续创表,这张表设置了sex字段,这个字段可以为空,如果为空,就将‘3’赋予sex
现在我们插入数据来试验,只插入一个username,(id设置主键自动排序所以不用输入),sex未输入,看看是否能把3赋予给它
系统将默认值3赋予这个字段