MySQL的启动、停止、重启指令
· 启动命令
sudo service mysql start
· 关闭命令
sudo service mysql stop
· 重启命令
sudo service mysql restart
· 查看状态
sudo service mysql status
ps -aux | grep ‘mysql’
MySQL的登录和退出
· 登录命令
mysql -h 主机地址 -u用户名 -p密码
· 退出命令
exit/quit/ctrl+d
数据完整性
· 数据库是完整的业务单元,包含多张表,数据被存储在表中
· 表中为了更加准确的存储数据,保证数据正确有效,创建表时,为表添加一些强制性的验证,包括数据字段的类型,约束
数据类型
· 通过查看帮助文档查阅所有支持的数据类型
· 原则:够用就行,尽量使用取值范围小的,而不用大的,节省更多的存储空间
· 常用的数据类型:
· 整数 ----- int bit
· 小数 ----- decimal
· 字符串 ----- varchar , char
· 日期时间 ----- date,time,datetime
· 枚举类型 ----- enum(‘男’,‘女’,‘保密’)default‘保密’
· 特殊说明的类型:
· decimal 表示浮点数 , 如decimal(5,2)表示共存5位数,小数占2位
· char 表示固定的长度字符串,如char(3),如果填充'ab'时会补一下空格为'ab '
· varchar 表示可变长度的字符串,如varchar(3),填充'ab'时就会存储'ab'
· 字符串text表示存储大文本,当字符大于4000时推荐使用
· 对于图片、音频、视频等文件。不存储数据库中,而是上传到某个服务器上,然后在表中存储这个文件的保存路径
约束
· 主键 primary key : 物理上存储的顺序
· 非空 not null : 此字段不允许填写空值
· 惟一 unique : 此字段的值不允许重复
· 默认 default :当不填写此值时会使用默认值,如果填写时以填写为准
· 外键 foreign :对关系字段进行约束,当为关系字段填写时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常
· 说明:虽然外键约束可以保证数据的有效性,但是在进行数据的crud(增、改、删、查)时都会降低数据库的性能
数据库的操作
· 查看所有数据库
show databases;
· 使用数据库
use 数据库名;
· 查看当前使用的数据库
select database();
· 创建数据库
create database 数据库名 charset=utf8;
create database 数据库名 ; ---默认拉丁文
· 删除数据库
drop database 数据库名;
数据表的操作
· 查看当前数据库中所有表
show tables;
· 查看表结构
desc 数据表名;
· 创建表
create table 数据表名(字段 约束);
create table students (
id int unsigned auto_increment primary key not null,
name varchar(30),
age tinyint unsigned default 0 ,
high decimal(5,2),
gender enum('男', '女','保密'),
cls_id int unsigned default 0
);
· 修改表 - 添加字段
alter table 表名 add 列名 类型;
----> alter table students add address varcher(40);
alter table 表名 add 列名 类型及约束 after 字段名;
---->alter table students add birthday date after gender;
alter table 表名 add 列名 类型及约束 first;
----->alter table students add stu_id int unsigned first;
· 修改表-修改字段:重名版
alter table 表名 change 原名 新名 类型以及约束;
---->alter table students change high higher decrimal(5,2);
· 修改表-修改字段:不重名版
alter table 表名 modify 列名 类型及约束;
---->alter table students modify birthday data;
· 修改表-删除字段
alter table 表名 drop 列名;
---->alter table students drop cls_id;
· 删除表
drop table 表名;
----> drop table classes;
重命名表
rename table 旧表名 to 新表名;
---->rename table students to student;
· 查看表的创建语句
show create table 表名;
----> show create table students;
· 查看表的数据
select * from 表名;
---->select * from students;
· 重命名表
rename table 旧表名 to 新表名
· 增删改查(curd)
curd: 创建create 更新update 读取 retrieve 删除delete
· 增加数据
----> 增加全部数据
insert into 数据表名 values(全部列的值);
----> 增加部分字段
insert into 数据表名 (字段1,字段2)values(值1,值2);
----> 插入多条
insert into 数据表名 values(全部列的值),(全部列的值),(全部列的值);
insert into 数据表名(字段1,字段2) values(值1,值2),(值1,值2),(值1,值2);
· 修改数据
update 数据表名 set xx=值,yy=值 where 条件;
---->update students set name'小李',age=12 where id=1;
· 删除数据
----delete from 数据表名 where 条件; 物理删除
----update 数据表名 set is_delete=1 where 条件; 逻辑删除
注意:修改或删除数据的时候一定要指定条件,否则可能造成所有数据被污染或者清空。
· 清空数据 (会把全表都给清空掉,并且自增主键从1开始)
truncate table 数据表名;
· 查询数据
select * from 数据名;
select * from 数据名 where 条件;
select 字段 as 别名 from 数据名 where 条件;