MySQL是一个小型的关系型数据库管理系统
1.命令行方式(原生)
2.窗口终端
(1)
连接数据库服务器
mysql -u root -p
输入密码
使用MySQL命令show databases
建数据库create database 数据库名
删除数据库 diop database 库名
使用数据库 use 库名
启动数据库服务器 net start mysql
关闭mysql服务器 net start mysql
查看所有数据库 show databases
desc
创建列表
create table you(
id int(11) not null auto_increment,(主键自增)
name varchar(30) not null,
age int(3) not null check(age>30),
email varchar(50) not null UNIQUE,(独一无二)
primary key(id)
)engine=myisam default charset=utf8;
sql语句
是结构化的查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查寻、更新、和管理、关系数据库系统、sql语言可以嵌套、
具有极大的灵活性
1.数据定义语言
2.操作语言
3.控制语言
set character_set_client=gbk;////给表中正确定义存储编码
set character_set_results=gbk;//////定义输出编码
select
from-----表名
where------常用的条件
group by -----分组
having------判断条件
order by----排序
limit-----限制查询范围
高级查询语句
1.聚合函数
count(*)统计函数
max(*)找最大值min(*)最小值
sum(*)
avg(平均值)
select mark,count(mark) as renshu from stu_mark where mark>=80 group by mark having mark>=90 ;
2.分组查询
select avg(mark),mark from stu_mark group by mark>=90;
3.联合查询
union查询就是把2条或者多条sql语句的查询结果,合并成一个结果集。
联合查询的选择字段具有相同的数据类型。
union all 可以使相同内容不合并。
如果想让内层排序起作用的话需要加上limit
4.连接查询
一个表的外键就是另一个表的主键。
交叉查询 笛卡儿积
select * from stu_info cross join major;
内链接 inner join
select stu_info.name,major.major_name from stu_info inner join major on stu_info.major_id=major.major_id;
select stu_info.name,major.major_name from stu_info,major where stu_info.major_id=major.major_id;
外链接
左链接
左连接:左边有的,右边没有的为null
右连接:左边没有的,右边有的为null
内连接:显示左边右边共有的
列出与链接条件匹配的行
列出左表或者右表或者整个表中符合搜索条件的行
select stu_info.name,major.major_name from stu_info left join major on stu_info.major_id=major.major_id;
右链接
select stu_info.name,major.major_name from stu_info right join major on stu_info.major_id=major.major_id;
全链接
两表中找到链接调教
找链接条件相匹配的行
5.子查询
查询条件是另一个select语句的结果
in ,not in,=,!=,exists,not,exists
select * from stu_info where major_id in(select major_id from major);
更新update
update stu_mark set major= '机电',name='乔乔' where sid='1001';
删除delete
delete from stu_mark where sid='1001' [limit 1] ;
delete from stu_mark order by sid desc limit 1;
like
distinct
desc 降序
asc升序