Day1
一、DDL、DML
1.1 MySQL登录退出
什么是sql?
Structured Query Language:结构化查询语言
其实就是定义了操作所有关系型数据库的规则
1.2 通用语法
1.3 SQL分类
1.4 DDL操作数据库_创建&查询
DDL(Data Definition Language)数据定义语言:
用来定义数据库对象:数据库,表,列等,关键字create、drop、alter等
-
操作数据库:CRUD
*C(create) :创建 * R(Retrieve):查询 show databases 查询所有数据库 * U(Update):修改 * D(Delete)删除 * 使用数据库
1.4 DDL操作数据库_修改、删除、使用
1.5 DDL操作表-查询、创建
show tables:查询某个数据库中所有的表名称
desc 表名:查询表结构
复制表:create table 表明 like 被复制的表明
1.6 DDL操作表-修改、删除
1.6 DML_添加、删除——修改数据
修改数据
二、DQL
2.1 查询
2.2 条件查询
CREATE TABLE student (
id INT, -- 编号
NAME VARCHAR(20), -- 姓名
age INT, -- 年龄
sex VARCHAR(5), -- 性别
address VARCHAR(100), -- 地址
math INT, -- 数学
english INT -- 英语
);
INSERT INTO student (id, NAME, age, sex, address, math, english) VALUES (1, '马云',55,'男','杭州' ,66,78),
(2,'马化腾',45, '女','深圳',98,87),(3, '马景涛',55,'男','香港',56,77), (4, '柳岩',20, '女', '湖南',76,65),
(5,'柳青',20, '男','湖南' ,86,NULL),(6, '刘德华',57,'男','香港',99,99), (7, '马德' ,22, '女','香港',99,99),
(8, '德玛西亚',18, '男', '南京',56,65);
SELECT * FROM student;
-- 查询姓名和年龄
SELECT NAME,age FROM student;
-- 去除重复的结果集
SELECT DISTINCT address FROM student;
SELECT NAME,address FROM student;
-- 计算math和english分数之和
SELECT NAME,math,english,math + english FROM student;
-- 如果有一个null参与的运算,计算结果都是null IFNULL函数
SELECT NAME,math,english,math + IFNULL (english,0) FROM student;
-- 起别名
SELECT NAME,math 数学,english 英语,math + IFNULL (english,0) 总分 FROM student;
-- 查询年龄大于20
SELECT * FROM student WHERE age > 20;
SELECT * FROM student WHERE age >= 20;
-- 查询年龄不等于20
SELECT * FROM student WHERE age != 20;
SELECT * FROM student WHERE age <> 20;
-- 年龄 大于等于20 小于等于30
SELECT * FROM student WHERE age >=20 && age <=30;
SELECT * FROM student WHERE age BETWEEN 20 AND 30;
-- 查询年龄22岁,18岁,25岁的信息
SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25;
SELECT * FROM student WHERE age IN (22,18,25);
-- 查询英语成绩为null ,null值不能使用= != 判断
SELECT * FROM student WHERE english IS NULL;
-- 查询英语成绩不为null
SELECT * FROM student WHERE english IS NOT NULL;
-- 查询姓马的有哪些?
SELECT * FROM student WHERE NAME LIKE '马%';
-- 查询姓名中第二个字是化的人
SELECT *FROM student WHERE NAME LIKE '_化%';
-- 查询姓名中包含马的人
SELECT * FROM student WHERE NAME LIKE '%马%';