回顾记录一下
库级操作语句
显示所有的库:show databases;
创建库:create database [if not exists] db_name;
重复创建会报错, 可以加上if not exists
删除库:drop database [if exists] db_name;
如果不知道数据库是否存在,记得加if exists
进入数据库:use db_name;
表级操作语句
显示所有的表:show tables;
创建表:create table [if not exists] tb_name (create definition…);
重复创建会报错, 可以加上if not exists
删除表:drop table tb_name;
表结构修改(alter)
修改表名:alter table 表名 rename to 新表名;
修改字段名:alter table tb_name change name new_name data_type;
修改字段类型:ALTER TABLE tb_name MODIFY field_name data_type;
添加字段:ALTER TABLE tb_name ADD [COLUMN] field_name data_type;
删除字段:ALTER TABLE tb_name DROP [COLUMN] field_name;
插入数据
指定字段插入: INSERT INTO tb_name(field_name) VALUES (field_values);
全字段插入: INSERT INTO tb_name VALUES (all_values);
多行插入: INSERT INTO tb_name(field_name) VALUES (value_1), (value_2), …;
查询数据
指定字段查询:SELECT field_names FROM tb_name;
全字段查询: SELECT * FROM tb_name;
带条件的查询: SELECT field_names FROM tb_name WHERE conditions;
修改数据
修改所有数据:UPDATE tb_name SET field_1=value_1
修改多个: UPDATE tb_name SET field_1=value_1, field_2=value_2 …;
修改满足条件的数据: UPDATE tb_name SET field_1=value_1 WHERE conditions;
注意:一定要写where条件,不然会修改列中全部数据
删除数据
删除表中所有数据:DELETE FROM tb_name;
删除表中满足条件的数据: DELETE FROM tb_name WHERE conditions;
注意:一定要写where条件,不然会删除表中全部数据
数值类型
字符类型
时间日期类型
案例
create table tb2( id INT, name VARCHAR(20), #指定长度,最多65535个字符。 变长字符串 sex CHAR(4), #指定长度,最多255个字符。 定长字符串 price DOUBLE(4,2), #双精度浮点型,m总个数,d小数位 detail text, #可变长度,最多65535个字符 dates DATETIME, #日期时间类型 YYYY-MM-DD HH:MM:SS ping ENUM('好评','差评’) #枚举, 在给出的value中选择 );
insert into tb value (1, '裤子', '男', 20.0, '这条裤子超级好!!!', now(), '好评');
比较运算符
等于: = ( 注意!不是 == )
不等于: != 或 <>
大于: >
大于等于: >=
小于: <
小于等于: <=
IS NULL
IS NOT NULL
逻辑运算符
AND:与
OR:或
NOT:非
约束条件
约束是一种限制,通过对表中的数据做出限制,来确保表中数据的完整性,唯一性
默认约束(default)
CREATE TABLE tb( id int default ‘a’ , name varchar(20) );
插入数据的时候,如果没有明确为字段赋值,
则自动赋予默认值
在没有设置默认值的情况下,默认值为NULL
非空约束(not null)
CREATE TABLE tb( id int not null, name varchar(20) );
限制一个字段的值不能为空,
Insert的时候必须为该字段赋值
空字符不等于NULL
唯一约束(unique key)
CREATE TABLE tb( id int unique key, name varchar(20) );
限制一个字段的值不重复,
该字段的数据不能出现重复的
确保字段中值的唯一
主键约束(primary key)
CREATE TABLE tb( id int primary key, name varchar(20) );
通常每张表都需要一个主键来体现唯一性
每张表里面只能有一个主键
主键 = 非空 + 唯一
自增长约束(auto_increment)
CREATE TABLE tb( id int auto_increment, name varchar(20) );
自动编号,和主键组合使用,
一个表里面只能有一个自增长
auto_increment 要求用在主键上
外键约束(foreign key)
保持数据的一致性
我有的你一定有, 你没有的, 我绝对没有
1. B表中的id_b字段,只能添加 id_a中已有的数据。 2. A表中id_a 被参照的数据, 不能被修改和删除 CREATE TABLE a( id_a int primary key, name varchar(20) ); CREATE TABLE b( id_b int primary key, name varchar(20), foreign key (id_b) references a(id_a) );