SQL:Structure Query Language 结构查询语言,是所有数据库操作的基础语言,是和数据库软件交互的基础接口。
一、SQL语言分类
DDL语言:Data Definition Language 数据定义语言,实现数据库对象的定义,例如创建,删除,修改等动作。
DML语言:Data Manipulation Language 数据操作语言,实现对象内容的变更,是操作最频繁的动作,例如insert,update,delete
DCL语言:Data Control Language 数据控制语言,实现权限控制,例如grant,revoke等
DQL语言:Data Query Language 数据查询语言,实现数据查询,selec动作,是最简单同时也是最复杂的语句
二、SQL基本操作
表(table):数据存放的基本对象,由很多行(row)数据组成的数据集合,每行拥有多个属性(列) ,excel表格与类似。
表的本质就是关系,将各个数据元素串联起来。
1.数据库级别操作
(1)查看当前数据库:
show databases; #不要对系统数据库做修改删除动作
(2)创建数据库
create database ykyk;
(3)选择操作数据库
use ykyk;
(4)删除数据库
drop database ykyk;
2.数据库表级别操作
(1)查看当前数据库中的表
mysql> use ykyk;
mysql> show tables;
(2)创建表的基本语法
CREATE TABLE t_name ( field_name1 datatype1 CONSTRAINT1,....);
create table test(id int,name varchar(20));
(3)查看表结构
desc test;
(4)查看表的构建语句
show create table test \G;
(5) 修改表结构
alter table ….
alter table test add gender char(1);
(6)删除表
drop table test;
(7)查看表的状态(包括视图);
show table status from employees \G;
3.特殊类型表 -- 临时表
数据和表结构仅存在一个会话中
在各个会话中属于私有状态
create temporary table temp(id int);
二、DML语言
1.insert插入
语法:
INSERT INTO t_name [(field1, field2,...] values(value1,value2..);
INSERT INTO t_name [(field1, field2,...] SELECT ...;
特点:
1)可以每次插入一条数据;
2)可以每次插入多条数据;
3)可以使用子查询插入结果集,但是要注意列的列表要和对应的数值严格匹配。
2.update更新
语法:
UPDATE t_name SET field1=value1,field2=value2,... WHERE condition;
注意:更新数据要特别注意条件,防止更新范围过大
3.delete删除
语法:
DELETE FROM t_name WHERE condition;
删除数据也要注意删除条件,防止删除范围扩大
4.truncate数据
truncate t_name;
truncate和delete的区别
1)delete是DML语言,可以回滚,truncate是DDL语言,删除不可回滚;
2)delete可以删除部分数据,truncate删除整个表的数据;
3)delete需要的代价太大,需要记录更多的undo信息和redo日志,truncate需要的代价很小。