mySQL
Navicat for mySQL
关系型数据库:用表传数据
如何建表:查询→新建查询
注释: -- 这是一个注释 或者/*这是一条注释*/
建表时需要指定:1.表名;2.表中字段(列)名;3.字段的数据类型
数值型
-- 【int(6)--整数 -999999到999999 n代表位数 最多11位,decimal(7,2) 最大长度七位,小数点后保留两位 整数位最多五位】
字符型
-- varchar(200) 最多保存100个汉字或200个英文或数字
、日期类型
-- DATETIME (年月日时分秒)
超级字符串 ·***·(1左面那个键)(标准是要写的 实际上写不写都行)
CREATE TABLE students(
`stuid` INT(9),
`stuname` VARCHAR(100),
`height` DECIMAL(3,2)
)
-- 向表中插入数据
INSERT INTO students(stuid,stuname) VALUES(9527,'华安');
INSERT INTO students(stuid,stuname,height,birthday) VALUES(9528,'华安他哥',1.73,'2018-11-11')
引号必须加
在不添加括号的时候是按顺序添加 不能缺项
-- 简单查询
-- 1.查什么
-- 2.从哪查
SELECT cname,id,teacher
from course
-- *代表全部列
SELECT *
from course
-- 条件查询
-- 查询身高1.5以上的所有人数据
-- 数值类型的条件
-- > < <= >= 不等于!=
SELECT *
FROM students
WHERE height > 1.5
-- 查询姓名是华安的学员信息
SELECT *
FROM students
WHERE stuname = '华安'
引号!!
单引号!!!!!
-- 查找2010年之前出生的学员信息
SELECT *
FROM students
WHERE birthday < '2010-1-1'
还是引号!!!
-- 两个条件时用and连接
SELECT *
from students
WHERE stuname = '华安' AND height > 1.6
再重复 还是引号 必须写
-- 两个非并列条件 用or连接
SELECT *
from students
WHERE stuname = '华安' OR height > 1.6
-- 查询每个人姓名 工资 年薪 查询后面加空格打字 是给查询结果列起名字
select stuname 姓名,salary 工资,salary*12 年薪
from students
-- 特殊比较运算符
-- 查询所有人工资大于等于1500,小于等于3500的所有人的信息
SELECT *
FROM students
WHERE salary >= 1500 and salary <= 3500
SELECT *
FROM students
WHERE salary BETWEEN 1500 and 3500
-- 查询在2000年至2017年之间出生的所有人信息
SELECT *
from students
WHERE birthday BETWEEN '2000-1-1' and '2017-12-31'
-- in(参数......)等于任意一个参数
-- 查询身高为2.23和3.23的所有人信息
select *
from students
where height = 2.23 or height = 3.23
select *
from students
where height in (2.23,3.23)
-- 查询姓名是华安,华安他姐,华安他二姐的人的信息
SELECT *
from students
WHERE stuname in ('华安','华安他姐','华安他二姐')
-- LIKE 模糊查询
-- 通配符:%
-- 查询姓名是以’华‘开头人的信息
select *
from students
where stuname like '华%'
-- 查询姓名是以’华‘结尾人的信息
select *
from students
where stuname like '%华'
-- 查询姓名中包含'华’人的信息
select *
from students
where stuname like '%华%'
-- 查询姓名是以王或小开头的人的信息
select *
from students
where stuname like '王%' or stuname like '小%'
-- 查询2013年出生的人的信息
select *
from students
where birthday between '2013-1-1' and '2013-12-31'
-- like不要用在查询时间上 有风险
原因是因为数据库不一样时间的表达方式不一样
-- 建两张相关表
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
FROM stu,class
WHERE cno = class.id