------------------ MySQL 服务
-- sudo service mysql start/stop/restart/status
------------------ 数据库相关的
-- 查看数据库
show databases;
-- 使用数据库
use 数据库名;
-- 查看当前使用的数据库
select database();
-- 创建数据库
create database 数据库名 charset=utf8;
-- 删除数据库
drop database 数据库名;
------------------ 备份和恢复
-- 备份 命令行中执行, 使用的是mysqldump
mysqldump -uroot -p 数据库名 > xxx.sql
-- 只备份指定的表
mysqldump -uroot -p 数据库名 --tables 表名1 表名2 > xxx.sql
-- 恢复
mysql -uroot -p 数据库名 < xxx.sql
-- 恢复,已经在mysql 交互环境中
source xxx.sql
------------------表操作
--- 查看当前库中所有的表
show tables;
--- 查看表结构
desc 表名;
--- 查看创建表的语句
show create table 表名;
--- 创建表
CREATE TABLE `students` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`age` tinyint(3) unsigned DEFAULT '0',
`height` decimal(5,2) DEFAULT NULL,
`gender` enum('男','女','保密') DEFAULT NULL,
`cls_id` int(10) unsigned DEFAULT '0',
PRIMARY KEY (`id`)
)
--- 删除表
drop table students;
--- 修改表
-- 添加字段
-- alter table 表名 add 列名 类型;
alter table students add birthday datetime;
-- 修改字段,但是不重命名
alter table students modify birthday int;
-- 修改字段,并且重命名
alter table students change birthday birth bigint not null;
-- 删除字段
alter table students drop birthday;
------------------表的数据操作,基本的增删改查
-- 查询(retrieve)
select * from students;
select name,age from students;
-- 插入
insert into students values(id, name, age, height, gender, cls_id); -- 得填上id
insert into students(name, age) values('Mike', 10);
insert into students(name, age) values('Mike', 10), ('John', 11);
-- 修改
update students set name='Mike' where id=1; -- 没有TM的into from什么的
-- 删除
delete from students where id=1;
-- 逻辑删除
update students set is_delete=1 where id=1;
-------------------
-- DQL:数据查询语言,用于对数据进行查询,如select
-- DML:数据操作语言,对数据进行增加、修改、删除,如insert、udpate、delete
-- TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback
-- DCL:数据控制语言,进行授权与权限回收,如grant、revoke
-- DDL:数据定义语言,进行数据库、表的管理等,如create、drop
-- CCL:指针控制语言,通过控制指针完成表的操作,如declare cursor
-- 对于web程序员来讲,重点是数据的crud(增删改查),必须熟练编写DQL、DML,能够编写DDL完成数据库、表的操作,其它语言如TPL、DCL、CCL了解即可
-- SQL 是一门特殊的语言,专门用来操作关系数据库
-- 不区分大小写
-- TINYINT 1 -128 ~ 127 0 ~ 255
-- SMALLINT 2 -32768 ~ 32767 0 ~ 65535
-- MEDIUMINT 3 -8388608 ~ 8388607 0 ~ 16777215
-- INT/INTEGER 4 -2147483648 ~2147483647 0 ~ 4294967295
-- BIGINT 8 -9223372036854775808 ~ 9223372036854775807 0 ~ 18446744073709551615
--
-- CHAR 0-255 类型:char(3) 输入 'ab', 实际存储为'ab ', 输入'abcd' 实际存储为 'abc'
-- VARCHAR 0-255 类型:varchar(3) 输 'ab',实际存储为'ab', 输入'abcd',实际存储为'abc'
-- TEXT 0-65535 大文本
--
-- DATE 4 '2020-01-01'
-- TIME 3 '12:29:59'
-- DATETIME 8 '2020-01-01 12:29:59'
-- YEAR 1 '2017'
-- TIMESTAMP 4 '1970-01-01 00:00:01' UTC ~ '2038-01-01 00:00:01' UTC