SQL语句
启动SQL服务:net start mysql
关闭SQL服务:net stop mysql
登录MySql:mysql -uroot -proot
DDL
操作数据库
展示数据库:show databases;
创建数据库:create database 数据库名;
使用数据库:use 数据库名;
删除数据库:drop database 数据库名;
操作表
展示当前数据库中的表:show tables;
创建表:
create table 表名(字段名1 字段类型1,…,字段名n 字段类型n);
字段类型:
varchar(32):字符串,最多能存储32个字符,按照实际字符数量开辟空间
char(32):字符串,最多能存储32个字符,按照32个字符数量开辟空间
int(3):整型,最多3位数
float(8,2):浮点型,8位数,其中2位为小数
Ps:primary key auto_increment
primary key – 主键
auto_increment – 自增长
修改表名:alter table 原表名 rename 新表名;
删除表:drop table 表名;
操作字段
查询字段:desc 表名;
修改字段类型:alter table 表名 modify 字段名 字段新类型;
修改字段:alter table 表名 change 原字段名 新字段名 字段类型;
增加字段:alter table 表名 add 字段名 字段类型;
删除字段:alter table 表名 drop 字段名;
DML
Ps: 增删查改–CRUD
添加数据/插入数据
insert into 表 values(值1,值2,值n);
insert into 表(字段1,字段2,字段n) values(值1,值2,值n);
查询数据
select * from 表名; — 查询所有字段
select 字段 from 表名; — 查询指定字段
select distinct 字段 from 表; — 查询指定字段(去重)
select 字段 from 表名 where 条件1 and 条件2; — 多条件查询
select 字段 from 表名 order by 字段 排序关键字;
排序关键字:
asc – 升序(默认)
desc – 降序
select 字段 from 表名 limit 数量; – 展示指定数量的数据
select 字段 from 表名 limit 偏移量,数量; – 分页
select 函数(字段) from 表名;
统计类函数:
sum() — 求和
count() — 总数
max() — 最大值
min() — 最小值
avg() — 平均值
子查询:条件是另一个SQL语句的结果
select 字段 from 表名 where 条件 = (select max(sal) from student);
分组:select 字段 from 表名 group by 字段;
多表联合查询:
内连接:
select 标识1.字段[as 别名] , 标识2.字段[as 别名] from 表名1 标识1 ,表名2 标识2 where 标识1.字段=标识2.字段;
select 标识1.字段 , 标识2.字段 from 表名1 标识1 inner join表名2
标识2 on 标识1.字段=标识2.字段;
外链接:
左链接:
select 标识1.字段 , 标识2.字段 from 表名1 标识1 left join表名2
标识2 on 标识1.字段=标识2.字段;
右链接:
select 标识1.字段 , 标识2.字段 from 表名1 标识1 right join表名
2标识2 on 标识1.字段=标识2.字段;
更新数据
update 表名 set 字段1=值1,…,字段n=值n where 条件;
删除数据
delete from 表名 where 条件;
truncate table 表名; ps:清空表的数据,并且让自增的id从1开始自增
DCL
设置权限:grant select, insert on 数据库名.表名 to ‘账号’@‘ip地址’ identified by ‘密码’;
删除权限:revoke select on 数据库名.表名 from ‘账号’@‘ip地址’;
备份:—在未登录状态
mysqldump -u root -p huangguizhao>d:\hgz.sql
密码过后输入
mysqldump -u root -proot huangguizhao>d:\hgz.sql
恢复:
前提:必须先创建数据库
需先登录mySQL,进入指定数据库后执行SQL
Source d:\hgz.sql