结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL 是1986年10 月由美国国家标准局(ANSI)通过的数据库语言美国标准,接着,国际标准化组织(ISO)颁布了SQL正式国际标准。1989年4月,ISO提出了具有完整性特征的SQL89标准,1992年11月又公布了SQL92标准。
SQL可以做什么
- 数据库数据的增删改查操作(CRUD)
- 数据库对象的创建,修改和删除操作
- 用户权限/角色的授予和取消
- 事务控制
SQL语言的分类
-
DQL(数据查询语言) select
-
DML(数据操作语言) insert、update、delete
-
DDL(数据定义语言) create、alter、drop
-
DCL(数据控制语言) grant、revoke
-
TCL(事务控制语言) SAVEPOINT 、 ROLLBACK、SET TRANSACTION ,COMMIT
数据库操作(ddl)
创建数据库
create database 数据库名 charset=utf8;
删除数据库
drop database 数据库名;
切换数据库
use 数据库名;
查看当前选择的数据库
show databases;
表操作(ddl)
查看当前数据库中所有表
show tables;
创建表
auto_increment表示自动增长
create table 表名(列及类型);
如:
create table students(
id int auto_increment primary key,
sname varchar(10) not null
);
数据类型
在mysql中包含的数据类型很多,这里主要列出来常用的几种
- 数字:int,decimal
- 字符串:varchar,text
- 日期:datetime
修改表
alter table 表名 add|change|drop|modify 列名 类型;
如:
alter table students add birthday datetime;
删除表
drop table 表名;
查看表结构
desc 表名;
更改表名称
rename table 原表名 to 新表名;
查看表的创建语句
show create table '表名';
数据操作(DML ,DQL)
查询
select * from 表名
增加
全列插入
insert into 表名 values(...)
缺省插入
insert into 表名(列1,...) values(值1,...)
同时插入多条数据
insert into 表名 values(...),(...)...;
或
insert into 表名(列1,...) values(值1,...),(值1,...)...;
主键列是自动增长,但是在全列插入时需要占位,通常使用NULL或0,插入成功后以实际数据为准
修改
update 表名 set 列1=值1,... where 条件
删除
delete from 表名 where 条件
逻辑删除,本质就是修改操作
update alter table students add isdelete bit default 0;
如果需要删除则
update students isdelete=1 where ...;
备份与恢复
数据备份
-
进入超级管理员
sudo -s
-
进入mysql库目录
cd /var/lib/mysql
-
运行mysqldump命令
mysqldump –uroot –p 数据库名 > ~/Desktop/备份文件.sql;
-
按提示输入mysql的密码
数据恢复
-
连接mysql,创建数据库
-
退出连接,执行如下命令
mysql -uroot –p 数据库名 < ~/Desktop/备份文件.sql
-
根据提示输入mysql密码