SQL语言是跟数据库交互的语言,进行数据库管理的语言
全程Structure Quary Lanuage 结构化查询语句
首先是创建数据库
Create database day15;
default character set utf8; -- 指定默认字符集创建数据库
然后创建表(Table)
create table student(
sid INT PRIMARY KEY AUTO_INCREAMENT, -- 自增长约束
sname VARCHAR(20),
sage INT
);
一、增删改数据
1.1、增加数据
-- 插入所有字段,一定依次按顺序插入(注意:不能多字段,也不少字段)
INSERT INTO student VALUES(1, '张三', 20);
-- 插入部分字段
INSERT INTO student(sid, sname) VALUES(2, '李四');
1.2、修改数据
-- 修改所有数据
UPDATE student SET sage='20';
-- 带条件修改(推荐使用)
UPDATE student SET sage='20', sname='李四' WHERE sid=1;
1.3 删除数据
-- 删除所有数据(临时删除)
DELETE FROM student;
-- 删除所有数据(直接删除,不能带条件)
TRUNCATE TABLE student;
-- 带条件删除数据
DELETE FROM student WHERE sid = 2;
二、查询(SELECT)
2.1、查询所有列
SELECT * FROM student;
2.2、查询指定列
SELECT sid,sname FROM student;
-- 查询时可以指定别名(AS)
多表查询时后,表的别名就很有用!!
SELECT sid AS '编号',NAME AS '姓名' FROM student AS s ;
2.3 查询时添加常量列
--在查询student表时,添加一列(班级)
SELECT sid, sname,sage,'班级' AS '年级' FROM student;
2.4 查询时合并列
-- 给student表添加servlet和jsp成绩列
ALTER TABLE student ADD servlet INT, ADD jsp INT;
DESC student;
UPDATE student SET servlet =60,jsp =80 WHERE sd=1;
SELECT sid,sname,(servlet+jsp) AS '总成绩' FROM student;
2.5 查询时去除重复记录
-- 查询学生性别 男 女
SELECT DISTINCT gender FROM student;
-- 查询学生所在地址
SELECT DISTINCT address FROM student;
2.6 条件查询(where)
2.6.1 逻辑条件 and(&&) or(||)
-- 查询id=2,且姓名为李四的学生
SELECT * FROM student WHERE sid=2 AND sname = '李四';
-- 查询id=2 或姓名为张三的学生
SELECT * FROM student WHERE sid =2 OR sname='李四';
2.6.2 比较条件 > < >= <= == <>(不等于) between and
-- 查询servlet成绩大于70分的学生
SELECT * FROM student WHERE servlet>70;
-- 查询jsp成绩大于等于75,且小于等于90的学生
SELECT * FROM student WHERE jsp BETWEEN 75 AND 90;
2.6.3 判空条件(null 空字符串) : is null / is not null / ==' ' / <>' '
注意: NULL vs 空字符串
NULL:没有值;
空字符串:有值;
-- 查询地址为空的学生
-- 判断NULL
SELECT * FROM student WHERE address IS NULL;
-- 判断空字符串
SELECT * FROM student WHERE address='';
SELECT * FROM student WHERE address IS NULL OR address='';
-- 查询有地址的学生
SELECT * FROM student WHERE address IS NOT NULL OR address<>'';
2.6.4 模糊条件 like
-- 通常使用替换的标记
-- % : 表示任意字符
-- _ : 表示一个字符
-- 需求:查询姓‘张’的学生
-- 张%%%%%%%
SELECT * FROM student WHERE sname LIKE '张%';、
-- 张_
SELECT * FROM student WHERE sname LIKE '张_';