一、概述
关系数据库概述:
https://blog.csdn.net/qq_21370419/article/details/128568920
二、数据库的安装
参考我的两篇博客:
win10 安装mysql 5.6.36版本_windows 安装mysql5.6_人……杰的博客-CSDN博客
wind 10 安装 mysql 8.0_人……杰的博客-CSDN博客
三、简单的操作使用
1.对数据库的操作
-- 创建数据库
CREATE DATABASE test_db;
-- 查看数据库
SHOW DATABASES;
运行结果:
-- 使用数据库 USE 数据库名
USE canada;
-- 删除数据库
DROP DATABASE canada;
2.对数据库中的表进行操作
-- 2.1 创建表
CREATE TABLE customer (
id varchar(30),
name varchar(30),
age int,
email varchar(20),
birthday date
);
-- 2.2 查看当前数据库下所有表
SHOW TABLES;
运行结果:
-- 2.3 查看表的结构
DESC customer;
运行结果:
SELECT 查询
-- 2.4 SELECT 查询
-- 2.4.1 SELECT:查询所有表中所有列
SELECT * FROM customer;
-- 2.4.2 SELECT:查询表中指定列
SELECT name,age FROM customer;
-- 2.4.3 SELECT:对查询中的数据进行过滤 使用WHERE
-- 2.4.3.1 查询id号为10002的用户记录
SELECT * FROM customer WHERE id = "10002";
-- 2.4.3.2 查询年龄在20到50之间的用户姓名
SELECT name,age FROM customer WHERE age >= 20 AND age <= 50;
-- 或者
SELECT name,age FROM customer WHERE age BETWEEN 20 AND 50;
-- 2.4.3.3 使用in查询id为10002、10003、10004的用户
SELECT * FROM customer WHERE id IN ('10002','10003','10004');
-- 2.4.3.4 使用like查询:姓名中带"孙"的字符 %匹配任意字符
SELECT * FROM customer WHERE name LIKE '%孙%';
-- 2.4.3.5 使用like查询:姓名中第三个字符为'r'的用户 %匹配任意字符 _只匹配一个字符
SELECT * FROM customer WHERE name LIKE '__r%';
-- 2.4.3.6 查询姓名为空的用户
SELECT * FROM customer WHERE name IS NULL;
-- 2.4.3.7 查询姓名不为空的用户
SELECT * FROM customer WHERE name IS NOT NULL;
-- 2.4.3.8 查询按年龄降序排序 ASC-升序(默认) DESC-降序
SELECT * FROM customer ORDER BY age DESC;
INSERT 插入
-- 2.5 INSERT 插入记录
-- 2.5.1 在表中增加一条记录 注意:插入varchar和date类型数据时,需要使用单引号引起来
INSERT INTO customer(id,name,age,email,birthday)
VALUES('10002','Jerry',22,'jerry@sohu.com','2023-01-08');
-- 或者
INSERT INTO customer
VALUES('10004','孙行者',100,'xzsun@qq.com','1997-11-21');
-- 2.5.2 在表中增加一条记录,name为空 注意:插入varchar和date类型数据时,需要使用单引号引起来
INSERT INTO customer(id,name,age,email,birthday)
VALUES('10002',NULL,22,'jerry@sohu.com','2023-01-08');
-- 或
INSERT INTO customer(id,age,email,birthday)
VALUES('10006',39,'xx@sohu.com','2021-10-12');
-- 或 注意和上面的区别,是非NULL
INSERT INTO customer(id,name,age,email,birthday)
VALUES('10010','',44,'hongxiao@sohu.com','1978-03-15');
UPDATE 更新
-- 2.6 UPDATE 更新记录
-- 2.6.1 更新表中的记录
UPDATE customer SET age = "18",birthday = "1998-01-08" WHERE id = "10002";
DELETE 删除
-- 2.7 DELETE 删除记录
-- 2.7.1 在表中删除一条id = "10002"的指定记录
DELETE FROM customer WHERE id = "10002";
删除表
-- 2.8 删除表 DROP TABLE 表名
DROP TABLE customer;
四、练习题
练习题一
-- 1 创建一个名为test_db的数据库
create database test_db;
-- 2 查看刚才创建的test_db数据库
show databases;
-- 3 在test_db数据库中创建名为customer的表,属性包含:id(字符串类型),name(字符串类型),age(整型),email(字符串类型),birthday(date类型)。
use test_db;
CREATE TABLE `customer` (
`id` varchar(30),
`name` varchar(30),
`age` int,
`email` varchar(20),
`birthday` date
);
-- 4 查看确认customer表是否创建成功,若创建成功查看下表结构是否符合要求
SHOW TABLES;
DESC customer;
-- 5 查看表中所有信息
SELECT * FROM customer;
-- 6 在表中插入一条数据,插入信息依次为id = 10002,name=Jerry,age=22,email=Jerry@qq.com,birthday=2023-01-08。
INSERT INTO customer(id,name,age,email,birthday)
VALUES('10002','Jerry',22,'jeryy@qq.com','2023-01-08');
-- 7 更新customer表中id=10002的记录:age = 18,birthday=2000-01-08。并查看更新结果
UPDATE customer SET age = '18',birthday = '2000-01-08' WHERE id='10002';
SELECT * FROM customer;
-- 8 在表中插入两条记录:第一条信息:id = 10005,name=孙悟空,age=100,email=wksun@qq.com,birthday=1997-08-08;第二条信息:id = 10008,name=唐僧,age=999,email=sengtang@qq.com,birthday=2007-12-11;并查看插入信息。
INSERT INTO customer(id,name,age,email,birthday)
VALUES('10005','孙悟空',100,'wksun@qq.com','1997-08-08');
INSERT INTO customer(id,name,age,email,birthday)
VALUES('10008','唐僧',9999,'sengtang@qq.com','2007-12-11');
SELECT * FROM customer;
-- 9 删除customer表中id=10002的记录
DELETE FROM customer WHERE id = '10002';
-- 10 删除customer表中名字为“唐僧”的记录
DELETE FROM customer WHERE name = '唐僧';
-- 11 删除表customer中年龄为100岁的记录
DELETE FROM customer WHERE age = 100;
-- 12 删除表customer,并确认是否删除
DROP TABLE customer;
SHOW TABLES;
-- 13 删除数据库test_db,并确认是否删除。
drop database test_db;
SHOW DATABASE;
练习题二
-- 1 创建一个名为test2_db的数据库
create database test2_db;
-- 2 查看刚才创建的test2_db数据库
show databases;
-- 3 在test2_db数据库中创建名为customer的表,属性包含:id(字符串类型),name(字符串类型),age(整型),email(字符串类型),birthday(date类型)。
use test2_db;
CREATE TABLE `customer` (
`id` varchar(30),
`name` varchar(30),
`age` int,
`email` varchar(20),
`birthday` date
);
-- 4 查看确认customer表是否创建成功,若创建成功查看下表结构是否符合要求
SHOW TABLES;
DESC customer;
-- 5 查看表中所有信息
SELECT * FROM customer;
-- 6 在表中插入数据
-- 6.1 插入信息id=10002, name=Jerry, age=22, email=jerry@sohu.com,birthday=2023-01-08
INSERT INTO `canada_sql`.`customer` (`id`, `name`, `age`, `email`, `birthday`) VALUES ('10002', 'Jerry', '22', 'jerry@sohu.com', '2023-01-08');
-- 6.2 插入信息id=10004, name=孙行者, age=100, email=xzsun@qq.com, birthday=1997-11-21
INSERT INTO `canada_sql`.`customer` (`id`, `name`, `age`, `email`, `birthday`) VALUES ('10004', '孙行者', '100', 'xzsun@qq.com', '1997-11-21');
-- 6.3 插入信息id=10006, name=行者孙, age=39, email='', birthday='1979-12-31'
INSERT INTO `canada_sql`.`customer` (`id`, `name`, `age`, `email`, `birthday`) VALUES ('10006', '行者孙', '39', '', '1979-12-31');
-- 6.4 插入信息id=10010, name=行者孙孙, age=44, email=hongxiao@sohu.com, birthday=1978-03-15
INSERT INTO `canada_sql`.`customer` (`id`, `name`, `age`, `email`, `birthday`) VALUES ('10010', '行者孙孙', '44', 'hongxiao@sohu.com', '1978-03-15');
-- 6.5 插入信息id=10012, age=44, email=hongxiao@sohu.com, birthday=1972-03-15
INSERT INTO `canada_sql`.`customer` (`id`, `name`, `age`, `email`, `birthday`) VALUES ('10012', NULL, '44', 'hongxiao@sohu.com', '1972-03-15');
-- 6.6 插入信息id=1003,name="孙悟空"
INSERT INTO `canada_sql`.`customer` (`id`, `name`) VALUES ('1003', '孙悟空');
-- 6.6 插入信息age = 66,birthday=2022-12-21
INSERT INTO `canada_sql`.`customer` (age,birthday) VALUES (66,'2022-12-21');
-- 7 查询数据
-- 7.1 查询id为10002的用户记录
SELECT * FROM customer WHERE id = "10002";
-- 7.2 查询为姓名为孙悟空的用户记录
SELECT * FROM customer WHERE name = "孙悟空";
-- 7.3 查询姓"孙"的用户信息的姓名和年龄
SELECT name,age FROM customer WHERE LIKE "孙%";
-- 7.4 查询姓名中带"者"字的用户信息
SELECT * FROM customer WHERE name LIKE "%者%";
-- 7.5 查询姓名为三个字的用户姓名
SELECT name FROM customer WHERE name LIKE '___';
-- 7.6 查询姓名中第三个字为孙的用户信息
SELECT * FROM customer WHERE `name` LIKE "__孙%";
-- 7.7 查询姓名中第二个字为"者",第三个字为"孙"的用户姓名
SELECT name FROM customer WHERE name LIKE "_者孙%";
-- 7.8 查询使用qq邮箱的用户姓名和邮箱
SELECT name,email FROM customer WHERE email LIKE "%@qq%";
-- 7.9 查询id中至少有三个0的用户id
SELECT id FROM customer WHERE id LIKE "%0%0%0%";
-- 7.10 查询年龄为30到50之间的用户姓名和年龄
SELECT name,age FROM customer WHERE age >= 30 AND age <= 50;
-- 或
SELECT name,age FROM customer WHERE age BETWEEN 30 AND 50;
-- 7.11 查询70后的客户信息
SELECT * FROM customer WHERE birthday BETWEEN '1970-01-01' AND '1979-12-31';
-- 或
SELECT * FROM customer WHERE birthday >= '1970-01-01' AND birthday <='1979-12-31'
-- 7.12 查询姓名为"孙悟空","孙行者"和"行者孙"的客户信息
SELECT * FROM customer WHERE name IN ("孙悟空","孙行者","行者孙");
-- 7.13 查询生日为空的用户信息
SELECT * FROM customer WHERE birthday IS NULL;
-- 7.14 查询姓名为空的用户信息,并根据其年龄倒序排序
SELECT * FROM customer WHERE `name` IS NULL ORDER BY age desc;
-- 7.15 所有用户信息按年龄升序排序
SELECT * FROM customer ORDER BY age;
-- 7.16 查询邮箱号为空的用户信息
SELECT * FROM customer WHERE email IS NULL OR email = '';
-- 8 更改
-- 8.1 将孙悟空的年龄设置为110,生日设置为1999-12-21
UPDATE customer SET age = 110,birthday = '1999-12-21' WHERE `name` = '孙悟空';
UPDATE customer SET birthday = '' WHERE `name` = "孙悟空"
-- 9 删除
-- 9.1 删除姓名为空用户信息
DELETE FROM customer WHERE `name` IS NULL;
-- 9.2 删除年龄超过60岁的用户信息
DELETE FROM customer WHERE age >60;
-- 10 删除表customer
DROP TABLE customer;
SHOW TABLES;
-- 11 删除数据库test2_db
DROP DATABASE test2_db;
SHOW DATABASES;