MySQL数据库(SQL语言)
一、基本数据库操作语句
启动和关闭MySql服务
启动MySql服务
1.命令行操作启动MySql服务
2.通过计算机控制面板访问服务
控制面板----》管理工具----》服务-----》MySQL服务名—》启动
关闭MySql服务
1.命令行操作关闭MySql服务
2.通过计算机控制面板访问服务
控制面板----》管理工具----》服务-----》MySQL服务名—》停止
如果MySQL服务没有启动,我们是无法登陆连接到MySQL数据库服务器的,所以登陆连接到MySQL数据库服务器之前,检查一下服务是否启动。
2.登陆MySql服务器
1.命令行登陆MySql服务器
1.1 本机登陆 MySQL -u用户名 -p密码
1.2 远程登陆 MySQL -h数据库服务所在计算机IP -u用户名 -p密码
2.图形界面的管理工具登陆MySql服务器
3.查询数据库服务器上现有的数据库
show databases;
4.选择自己需要使用的数据库
use test;
5.查询被选中数据库中的数据库表
show tables;
6.创建数据库
create database [mydata_db];
数据库名称可以携带”_db”作为后缀,以表示这是一个数据库。
7.删除数据库
drop database [mydata_db];
二、MySQL常用数据类型
1.字符串型 VARCHAR[整数]、CHAR[整数]
2.数值型TINYINT 、SMALLINT、INT、BIGINT、FLOAT、DOUBLE
3.逻辑型 BIT [0/1]
4.日期型DATE、TIME、DATETIME、TIMESTAMP
5.大数据类型BLOB[2进制]、TEXT[文本]
三、MySQL定义表的字段的约束
1.定义主键约束:primary key:不允许为空,不允许重复
【往往数据库表的第一列就是主键列】
2.主键自动增长 :auto_increment
【与主键约束一起使用 / 数据库一定要支持自动增长机制】
3.定义唯一约束:unique 不允许重复 例如:name varchar(20) unique
4.定义非空约束:not null 不允许为空 例如:salary double not null
四、基本数据库表操作语句
创建数据库表
#格式:
create table t_user(
列名1 数据库类型 [约束],
列名2 数据库类型 [约束],
…
列名n 数据库类型 [约束]
);
例如:创建一个用户表
create table t_user(
user_id int primary key auto_increment,
user_name varchar(20) not null,
user_sex bit,
user_height double,
user_bri datetime
);
修改表结构【通常都是在数据库表结构创建好以后】
1、修改表结构增加一个user_head列。
alter table 表名 add user_head varchar(20) ;
2、修改表结构修改指定列的数据类型。
alter table t_user modify user_head char(10);
3、修改表结构修改指定列的名称
alter table t_user change user_head head varchar(20) not null;
4、修改表的字符集为utf8
alter table 表名character set utf8;
5、修改表结构删除指定列。
alter table 表名 drop head;
6、修改表表名
rename table 旧名称to 新名称;
7、删除数据库表【会删除表中的数据记录以及表结构】
drop table user_table;
五、insert语句向表中插入数据
1.所有列都添加数据,没有数据的列是用null代替【一一对应】
2.字符串数据与时间日期型数据在添加信息的时候需要单引号
3.bit型的true为1,false为0
4.null数据不再唯一约束的范围
5."2020年09月23日"这种时间提起格式不能用
sert into usertable values(null,‘张三’,true,null,null);
insert into usertable values(null,‘李四’,false,null,null);
insert into usertable values(null,‘王五’,true,168.5,‘2020/09/23’);
insert into usertable values(null,‘赵六’,true,170.5,‘2020-09-23’);
insert into usertable values(null,‘王麻’,false,180.5,‘2020-09-23 15:30:30’);
6.指定列添加数据
insert into usertable(user_id,user_name,user_sex)values(null,‘马七’,false);
六、update语句修改表中数据
1.主键列不能被修改
2.修改语句一般都会有限定条件
update usertable set user_name=‘张三丰’,user_sex=false,user_height=160.5
where user_id=1;update usertable set user_name=‘张三三’,user_sex=true,user_height=190.5
where user_id=5 or user_height=168.5;update usertable set user_name=‘李诗’,user_sex=false
where user_id=9 and user_name=‘马七’;
七、delete语句删除表中数据
delete from usertable where user_id=1;
delete from usertable where user_id=9 or user_name=‘李四’;
delete from usertable where user_id=3 and user_name=‘张三’ and user_sex=false;
八、基本select语句
1.查询所有
select *from usertable;
2.查询指定列
select user_name,user_height from usertable;
3.基本条件查询 【 or and 】
select *from usertable where user_id=8;
select *from usertable where user_id=8 or user_sex=true;
select *from usertable where user_name=‘赵六’ and user_sex=true;
4.比较运算符查询
select *from usertable where user_height<180.5;
select *from usertable where user_height<180.5 and user_sex=true;
5.区间查询 between 最小值 and 最大值
select *from usertable where user_height between 160.5 and 190.5;
select *from usertable where user_height >= 160.5 and user_height <= 190.5;
6.in(集合)条件查询
select *from usertable where user_id in(1,2,3,5,6,8);
7.模糊查询
select *from usertable where user_name like ‘%三’;
select *from usertable where user_name like ‘三%’;
select *from usertable where user_name like ‘%三%’;
8.判断是否为空is null
select *from usertable where user_height is null;
9.not (取反)
select * from usertable where not(user_height > 170.5);
select * from usertable where user_height is not null;
10.排序查询 order by 列名 asc[升序]|desc[降序]
select * from t_user order by uage asc;
select * from t_user order by uheight desc;
11.SQL聚合函数查询
#count(列名/) – 行的总数【总记录数】
select count() from t_user;
#sum(列名) – 求和
select sum(uheight) from t_user;
#avg(列名) – 求平均数
select avg(uage) from t_user;
#max(列名) – 求最大值
select max(uage) from t_user;
#min(列名) – 求最小值
select min(uheight) from t_user;
12.分页查询 limit 参数1 , 参数2
#参数1—当前页的第一条记录的开始位置[(当前页码-1)*每页记录数]
#参数2—每页记录数
#共有8条记录,每页显示3条记录
#第1页
select * from t_user limit 0,3;
#第2页
select * from t_user limit 3,3;
#第3页
select * from t_user limit 6,3;
13.分组查询 group by 列名[先分组,后查询统计]
select uage,count(uage) from t_user group by uage;
select usex,count(usex) from t_user group by usex;
14. 别名查询
#数据库表可以有别名 【表名称 as 表的别名 / 表名称 表的别名】
#例如: t_user as 用户表 / t_user 用户表
select usex,count(usex) from t_user as 用户表 group by usex;
#表中的列[包括统计函数]可以有别名
#【列名称 as 列的别名 / 列名称 列的别名】
select usex as 性别,count(usex) 总数 from t_user as 用户表 group by usex;
select usex as 性别,count(usex) 总数 from t_user as 用户表 group by 用户表.usex;
#别名通常情况下会在多表查询中区分名称相同的列。