*在终端中开启数据库:
方式1:在管理员身份运行cmd终端中开启数据库: net start mysql57(服务名称) ==>连接数据库: mysql -u 用户名 -p ==> 输入密码
(注意:可以设置mysql服务器开机自启动(计算机右键→管理→服务→mysql57双击更改启动方式))
方式2:在mysql-client里面开启数据库: 直接输入密码就可以进入了.
*退出登录:exit
*远程连接数据库: mysql -h ip地址 -u 对方用户名 -p ==> 输入对方密码
*数据库类型:关系型数据库: MySQL, Oracle等; 非关系型数据库(NoSQL): MongoDB, Redis等.
*数据库操作:
show databases; # 查看所有数据库, detabase要加复数s
create database demo charset=utf8; # 创建数据库demo
drop database demo; # 删除数据库demo
use demo # 切换数据库, 要操作数据库得先选择使用一个数据库
select database; # 查看当前使用的数据库
*表操作:
show tables; # 查看所有的表,查看表也要加s
create table demo(字段1,字段2,...); # 创建表demo
实例:create table demo(id int auto_increment primary_key, name varchar(20))
drop table demo; # 删除表demo
desc demo; # 查看表结构
show create table demo; # 查看创建表demo所使用的语句
rename table demo to newdemo; # 将表demo的表名修改为newdemo
*数据操作:
增:
insert into 表名(字段1,字段2,...) values(值1,值2,...) ; # 插入一条数据
insert into 表名(字段1,字段2,...) values(值1,值2,...), (值1,值2,...) ; # 插入多条数据
实例:insert into student(name,age,height) values('Tom',18,175) ;
删:
delete from 表名 where 条件; # 删除表内数据 (警告:后面不加where条件会将表内数据全部删除)
实例:delete from student where id=4;
改:
update 表名 set 字段1=值1, 字段2=值2,... where 条件 ; # 修改表内数据(警告:如果后面不加条件会将所有数据的该字段的值都修改了)
实例:update student set name='tom',age=18 where id=7;
查:
select * from 表名; # 查看某一个表里面的所有数据(这里的*代表所有的字段, 如果只想查询部分字段可用逗号分隔, 例select name,age from 表名;)
*条件查询:
a.语法:select 字段 from 表名 where 条件;
b.比较运算符(=, >, <, >=, <=, !=):
实例: select * from student where name='alick';
select id,age,sex from student where name='alick';
c.逻辑运算符(and, or, not):
实例:select * from student where id>=3 and gender=0; # 查询id>=3且性别为女的学生
d.模糊查询:
like: %表示多个任意字符、 _表示单个任意字符
实例: select * from student where name like 'alic%'; # 得到结果如alick、alickchen
实例: select * from student where name like 'alic_'; # 得到结果如alick
e.范围查询:
实例: select * from student where id in (2,7,12); # 查询id为2,7,12的学生
实例: select * from student where id between 5 and 10; # 查询id在5-10之间的学生
f.空查询:
实例: select * from student where address is null; # 查询住址为空的学生(非空是not null)
g.优先级:
小括号 > not > 比较运算符 > 逻辑运算符 ; and > or =>可用()来改变优先级
h.排序:
select * from 表名 order by 字段1 asc/desc, 字段2 asc/desc, ... ; # asc升序,desc降序
i.限制查询:
select * from student limit 3; # 查询前3条记录
☆ 数据库的备份及恢复
备份:mysqldump -u root -p testDB >/bakDir/testDB.bak # 将数据库testDB中的内容备份到文件testDB.bak中(用到了输出重定向)
恢复:mysql -u root -p testDB </bakDir/testDB.bak # 将备份文件testDB.bak中的数据库内容恢复到新建数据库testDB中(用到了输入重定向)