—————— 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