SQL语句:和数据库交互的语言,进行数据库管理的语言。(Structure Query Lanuage,结构化查询语言)
创建数据库 create database 数据库名;
create database day1; // 创建数据库,数据库中数据的编码采用的是安装数据库时指定的默认编码 utf8
create database day2 character set utf8 // 创建数据库,并指定数据库中数据的编码
查看数据库:show databases; // 查看某个数据库的定义的信息:show create database day1;
删除数据库: drop database day1;
切换数据库: use day1(数据库名);
查看正在使用的数据库 select database()
2. 创建表
增删改查数据
1.增加数据(- 插入所有字段。一定依次按顺序插入。注意不能少或多字段值,字符串用‘ 分割’)
INSERT INTO student VALUES(1,'张三','男',20);
-- 插入部分字段(没有插入显示NULL表示没有值)
INSERT INTO student(id,NAME) VALUES(2,'李四');
2.修改数据
修改所有数据(建议少用)
UPDATE student SET gender='女';
-- 带条件的修改(推荐使用)
UPDATE student SET gender='男' WHERE id=1; -- 修改id为1的学生,修改性别为男
-- 修改多个字段,注意: SET 字段名=值,字段名=值,....
UPDATE student SET gender='男',age=30 WHERE id=2;
-- 1.3 删除数据
-- 删除所有数据(建议少用)
DELETE FROM student;
-- 带条件的删除(推荐使用)
DELETE FROM student WHERE id=2;
-- 另一种方式
-- delete from: 可以全表删除 1)可以带条件删除 2)只能删除表的数据,不能删除表的约束 3)使用delete from删除的数据可以回滚(事务)
-- truncate table: 可以全表删除 1)不能带条件删除 2)即可以删除表的数据,也可以删除表的约束 3)使用truncate table删除的数据不能回滚
TRUNCATE TABLE student;
4查询数据(重点)
-- 2.1 查询所有列
SELECT * FROM student;
-- 2.2 查询指定列
SELECT id,NAME,gender FROM student;
2.3条件查询(where)
-- 2.3.1 逻辑条件: and(与) or(或)
-- 需求: 查询id为2,且姓名为李四的学生
SELECT * FROM student WHERE id=2 AND NAME='李四'; -- 交集
需求: 查询id为2,或姓名为张三的学生
SELECT * FROM student WHERE id=2 OR NAME='张三'; -- 并集
-- 2.3.2 比较条件: > < >= <= = <>(不等于) between and (等价于>= 且 <=)
-- 需求: 查询servlet成绩大于70分的学生
SELECT * FROM student WHERE servlet>70;
-- 需求: 查询jsp成绩大于等于75,且小于等于90分的学生
SELECT * FROM student WHERE jsp>=75 AND jsp<=90;
-- 另一个语法
SELECT * FROM student WHERE jsp BETWEEN 75 AND 90; -- (包前包后)
SELECT * FROM student WHERE gender<>'男';
-- 2.3.3 判空条件(null 空字符串): is null / is not null / ='' / <>''
-- 需求: 查询地址为空的学生(包括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=''; -- (包括null和空字符串)
-- 需求: 查询有地址的学生(不包括null和空字符串)
SELECT * FROM student WHERE address IS NOT NULL AND address<>'';
-- 2.3.4 模糊条件: like
-- 通常使用以下替换标记:
-- % : 表示任意个字符
-- _ : 表示一个字符
-- 需求: 查询姓‘张’的学生
SELECT * FROM student WHERE NAME LIKE '张%';
-- 需求: 查询姓‘李’,且姓名只有两个字的学生
SELECT * FROM student WHERE NAME LIKE '李_';