两大数据库
mysql和oracle的区别
mysql免费 开源
oracle花钱 闭源
confirm 确认
建立表格
-- 这是第一个建表语句
-- 建表时需要指定:1、表名;2、表中字段(列)名;3、字段的数据类型
-- 数值型
-- 【int(n)最大长度--整数,decimal(7最长七位,2小数点后两位)】
-- 字符型
-- varchar(2000)一个英文一个字符,一个中文两个字符
-- DATE年月日 DATETIME年月日时分秒
CREATE TABLE students(
`stuid` INT(9),
`stuname` VARCHAR(100),
`height` DECIMAL(3,2), -- 每行要有,
`birthday` DATE -- 最后一行没有,
);
-- 向表中插入数据
INSERT INTO students(stuid,stuname) VALUES(9527,'李白');
INSERT INTO students(stuid,stuname,height,birthday) VALUES(9527,'李白他哥',1.59,'2018-11-11');
-- 新建一个表:course
-- id 课程的编号
-- cname 课程的名字
-- credit 学分
-- teacher 讲师名字
-- classroom 上课教室
-- starttime 开课时间
-- 插入数据
-- 1001 Java 2 小南哥 A9-202 2019-2-19
-- 1001 C++ 0.5 中南哥 A9-301 2019-1-19
-- 1001 Python 3 大南哥 A9-405
CREATE TABLE course(
`id` INT(9),
`cname` VARCHAR(100),
`credit` DECIMAL(2,1),
`teacher` VARCHAR(100),
`classroom` VARCHAR(100),
`starttime` DATE
);
INSERT INTO course(id,cname,credit,teacher,classroom,starttime)
VALUES(1001,'Java',2,'小南哥','A9-202','2019-2-19');
INSERT INTO course(id,cname,credit,teacher,classroom,starttime)
VALUES(1001,'C++',0.5,'中南哥','A9-301','2019-1-19');
INSERT INTO course(id,cname,credit,teacher,classroom)
VALUES(1001,'Python',3,'大南哥','A9-405');
INSERT INTO course -- 没写后面的括号的意思就是所有的都**按照类型顺序填写**
VALUES(1001,'C++',0.5,'南哥','A9-208','2019-8-19');
CREATE TABLE newcourse(
`id` INT(9),
`cname` VARCHAR(100),
`credit` DECIMAL(2,1),
`teacher` VARCHAR(100),
`classroom` VARCHAR(100),
`starttime` DATE
);
INSERT INTO newcourse(id,cname,credit,teacher,classroom,starttime)
VALUES(1001,'Java',2,'小南哥','A9-202','2019-2-19');
-- 简单查询
-- 1、查什么;2、从哪里查
SELECT id,cname,credit,teacher,classroom,starttime
FROM course
SELECT * -- 星号的意思就是查找全部列
FROM course
INSERT INTO students(stuid,stuname,height,birthday)
VALUES(9527,'李白他姐',1.59,'2018-11-11');
INSERT INTO students(stuid,stuname,height,birthday)
VALUES(9528,'李白他二哥',1.59,'2018-11-11');
INSERT INTO students(stuid,stuname,height,birthday)
VALUES(9529,'李白他二姐',1.59,'2018-11-11');
INSERT INTO students(stuid,stuname,height,birthday)
VALUES(9530,'李白他三哥',1.59,'2018-11-11');
INSERT INTO students(stuid,stuname,height,birthday)
VALUES(9531,'李白他三姐',1.59,'2018-11-11');
-- 条件查询,,,,数值型的条件
-- 查询身高1.5以上的所有人的数据
-- >,<,>=,<= 不等于 != 或者<>
SELECT *
from students
WHERE height >= 1.6 -- 没有等于号在前面的类型
-- 查询姓名就是李白的学员信息
-- 字符类型作为条件需要加单引号
SELECT *
from students
WHERE stuname = '李白'
-- Unicode码 把所有的世界的语言编号的码
-- 查找2010年出生的学员信息
-- int**不需要**'' 字符串类型的都**需要**''
SELECT *
from students
WHERE birthday < '2019-1-1' -- 必须是年-月-日
-- 逻辑运算符(and,or)
-- 查询名字是李白,身高1.6以上的学员信息
SELECT *
from students
WHERE stuname = '李白' AND height >= 1.6
-- 查询名字是李白,或者身高1.6以下的学员信息
SELECT *
from students
WHERE stuname = '李白' OR height <= 1.6
-- 查询每个人的姓名,工资,年薪
SELECT stuname 姓名,salary 月薪,salary*12+10 "年薪yearly salary"
-- 工作当中表达式中的名头有公式的必须列别名
from students
-- 特殊比较运算符
-- 查询所有人工资大于等于1500小于等于3500的所有人的信息
SELECT *
from students
WHERE salary >= 1500 AND salary <= 3500
-- 查询2000年到2017年出生的所有人信息
SELECT *
from students
WHERE birthday >='2000-1-1' AND birthday <='2020-12-31'
SELECT *
from students
WHERE birthday BETWEEN '2000-1-1' AND '2020-12-31'
-- BETWEEN a AND b 大于等于a小于等于b
SELECT *
from students
WHERE salary BETWEEN 1500 AND 3500
-- IN(参数...)
-- 查询身高是1.59和1.6和9的所有人的信息
SELECT *
from students
WHERE height = 1.59 OR height = 1.6 OR height = 9
select *
from students
WHERE height in (1.59,1.6,9) -- in的意思就是or的合集
-- 查询姓名是李白,李白他哥,李白他二姐
select *
from students
WHERE stuname in ('李白','李白他哥','李白他二姐')
-- LIKE模糊查询(部分匹配)必须会
-- 通配符 : %--任意多个字符就相当于XXX
-- 查询姓名是以'小'开头人的信息
SELECT *
from students
WHERE stuname LIKE '%哥%'
-- 查询名字是以哥或姐结尾的
SELECT *
from students
WHERE stuname LIKE '%哥' OR stuname LIKE '%姐'
-- 查询2013年出生的人的信息
SELECT *
from students
WHERE birthday BETWEEN '2000-1-1' AND '2020-12-31'
-- LIKE不要用在查询时间上,有风险
SELECT *
from students
WHERE birthday LIKE '2013%'
-- 建两张相关表
CREATE TABLE class(
`id` int(9), -- 班级编号
`cname` varchar(100), -- 班级名称
`croom` varchar(100) -- 所在教室
)
CREATE TABLE stu(
`id` int(9), -- 学生编号
`name` varchar(100), -- 姓名
`birthday` date, -- 出生日期
`cno` int(9) -- 所在班级
)
-- 查询学生编号,姓名,所在班级编号,所在教室
SELECT stu.id,NAME,cno,croom,class.id -- stu.id的意思就是stu里的id
from stu,class
where cno=class.id
-- 查询姓名中包含'王'的学生编号,姓名,所在班级编号,所在教室,班级名称
SELECT stu.id,NAME,cno,croom,class.id,cname -- stu.id的意思就是stu里的id
from stu,class
where cno=class.id AND name LIKE '%王%'