mysql基本语法学习

----~~~~~~~~~~~~创建数据库~~~~~~~~~~~~~~~~~~
create database  数据库名;
---~~~~~~~~~~~~~使用数据库~~~~~~~~~~~~~~~~~
use 数据库名

---~~~~~~~~~~~~~~~~删除数据库~~~~~~~~~~~~~~
drop database 数据库名;

--~~~~~~~~~~~~~~~~~查看数据库中的表~~~~~~~~~~~
show tables 

---~~~~~~~~~~~检查数据库是否存在~~~~~~~~~~~~~~~
drop table if exists 表名;
drop table if exists student ; 

--~~~~~~~~~~~~~~~~创建表~~~~~~~~~~~~~~~~~
---创建学生表
create table student 
(
  stuID int auto_increment,
  stuName varchar(32),
  stuAge int, 
  deptID int,
  primary key(stuID)
)engine=innodb charset=utf8;

--创建课表
create table course 
(
courseID int primary key,
courseName varchar(32)
)engine=innodb charset=utf8;
  
--创建分数表 
create table sc
(
stuID int,
courseID int,
score float,
primary key(stuID,courseID),     ----创建一个主键
foreign key(stuID) references course(courseID)   ----创建一个外键
)engine=innodb charset=utf8


--~~~~~~~~~~~~~~插入数据~~~~~~~~~~~~~~~~~~
--给课程表插入数据
insert into course(courseID,courseName) values
(1,'语文'),
(2,'数学'),
(3,'英语');

--给分数表插入数据
insert into sc(stuID,courseID,score)values 
(1,1,100),
(1,2,89),
(1,3,99),
(2,1,100),
(2,2,66),
(2,3,77);
----- ~~~~~~~~~查看表中数据~~~~~~~~~~~~~~~~~~~
---查看student表中的数据
select * from student;

---使用distinct关键字,可以将重复行去掉,distinct必须放在列名前面
select distinct depart from staff;

---使用limit子句可以限制返回前几行数据
select name from staff limit 3;(查询前三行的数据)
---查询name列的第三行开始的两行数据
select name from staff limit 3,2;

-----使用完全限定表名查询(如果在其他数据库中查询表名,就需要使用完全限定表名)
select staff.name from lianxi.staff;

----数据检索排序(关键字order by)
select * from pers_info order by wage;(按照薪水升序排列) 
----指定排序,升序是默认排序可以使用desc指定降序排序
select * from per_info order by wage desc;(按照薪水降序排列)
---对多列数据指定降序排序,必须每个列都要指定desc关键字
select * from per_info order by wage desc,wage desc;(当tel降序排序相同时就按wage降序排序)
--查找最小值和最大值
select * from per_innfo order by wage limit 1;(查找工资最大值)
select * from per_innfo order by wage  desc limit 1;(查找工资最小值)

---~~~~~~~~~~~~where条件语句
select * from per_info where id=3;
select id,name,from staff where name='wang';
--~~~~~~~~~~~~where 子句中常用操作符  
--  = 等于    <> != 不等于    <小于   <=小于   >大于  >=大于等于
select *from per_info where wage>3000;(查询薪水大于三千)
---~~~~~~~~~between...and....范围查询
select * from per_info where  wage between 3000 and 5000;(查询薪水3千到5千的)
--查询空值null 
select * from per_info  where age is null ; 
---多个条件可以通过and连接
select * from per_info where wage>3000 and age is not null;
--or语句只满足一个条件就行
select * from per_info where wage<3000 or  age is not null;
--()优先级大于 and 优先级高于or
select * from per_info where wage<3000 (id <4 or id >9);
--in 操作符 指定条件范围查询
select * from per_info where id in (2,4,5);(查询id为2,4,5的)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值