创建表
CREATE TABLE 表名(
列名 数据类型,
列名 数据类型,
...
列名 数据类型
);
//最后一列不要加,
create table stu(
id INT(4),
name VARCHAR(50),
PASSWORD VARCHAR(20)
);
删除表
DROP TABLE 表名;
drop table stu;
查看表
desc 表名;
desc stu;
向stu表中插入数据
INSERT into 表名(字段名1,字段名2,字段名3,.....) VALUES(值1,值2,值3,.....);
//当sql语句中插入的值为 字符串和日期类时 要添加''
INSERT into stu(id,name,PASSWORD) VALUES(1,'张三','123456');
//当插入所有列名时,其列名可以省略,但插入顺序的值要和列名保持一致
INSERT into stu VALUES(1,'张三','123456');
查看stu表
SELECT * from 表名;//* 表示通配符 匹配所有
SELECT * from stu;
查看stu表部分内容
SELECT 列名1,列名2 FROM 表名;
SELECT name,PASSWORD FROM stu;
查看(剔除重复内容)
SELECT DISTINCT name from stu; //distinct 在列名前添加 剔除重复数据
修改表
UPDATE 表名set 列名=值;
UPDATE stu set PASSWORD=5555;
修改表(条件限制)
UPDATE 表名set 列名=值 WHERE 列名=对应的值;
UPDATE stu set PASSWORD=123456 WHERE id=1;
删除表
DELETE * FROM stu; //sql语法错误
DELETE FROM 表名;
DELETE FROM stu;//删除后可能通过回滚恢复数据
TRUNCATE TABLE stu; //删除后数据不可恢复
where子查询
运算符:
= 等于
!=或者<> 不等于
> >= < <=
between 在某个范围之间
like 像什么?? 模糊查询
查询emp表中【薪资大于3000】的所有员工,显示员工姓名、薪资
SELECT name,sal FROM emp WHERE sal>3000;
查询emp表中【总收入(薪资+奖金)大于3500】的所有员工,显示员工姓名、总收入
避免为空 ifnull(要查的列名,替换的内容)
注:列和列之间的计算 如果有null 计算得到的永远为空值 通过ifnull函数避免
SELECT NAME,sal+IFNULL(+bonus,0) FROM emp WHERE
sal+IFNULL(bonus,0)>3500;
设置别名
SELECT NAME,sal+IFNULL(+bonus,0) as '总薪资' FROM emp WHERE
sal+IFNULL(bonus,0)>3500;
//as 也可以省略 放在列名后
查询emp表中【薪资在3000和4500之间】的员工,显示员工姓名和薪资
SELECT name,sal FROM emp WHERE sal BETWEEN 3000 AND 4500;
SELECT name,sal FROM emp WHERE sal>3000 AND sal<4500;
查询emp表中【薪资为 1400、1600、1800】的员工,显示员工姓名和薪资
SELECT name,sal FROM emp WHERE sal=1400 or sal=1600 OR sal=1800;
查询薪资不为1400、1600、1800的员工,显示员工姓名和薪资
SELECT name,sal FROM emp WHERE sal!=1400 AND sal!=1600 AND sal!=1800;