1.概述
SQL:Structure Query Language(结构化查询语言),SQL被美国国家标准局(ANSI)确定为关 系型数据库语言的美国标准,后来被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。 各数据库厂商都支持ISO的SQL标准,普通话 各数据库厂商在标准的基础上做了自己的扩展,方言 SQL 是一种标准化的语言,它允许你在数据库上执行操作,如创建项目,查询内容,更新内容, 并删除条目等操作。 Create, Read, Update, and Delete 通常称为CRUD操作。
2.sql语句的分类
- DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等。 alter user 'root'@'localhost' identified with mysql_native_password BY '新密码'; alter user 'root'@'localhost' identified with mysql_native_password BY '123456';
- DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据)增删改。
- DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别。 - DQL(Data Query Language):数据查询语言,用来查询记录(数据)查询。
3.数据库的操作
CREATE DATABASE语句用于创建新的数据库:
查看当前数据库服务器中的所有数据库
show databases;
修改数据库
alter database 数据库名 character set 编码方式
删除数据库
drop database 数据库名
查看当前使用的数据库
Select database();
切换数据库: use 数据库名
USE mydb2;
删除表
drop table 表名;
当前数据库中的所有表
show tables;
查看表的字段信息
desc 表名;
增加列:在上面员工表的基本上增加一个image列。
alter table 表名 add 新列名 新的数据类型;
增加列:在上面员工表的基本上增加一个image列。
alter table 表名 add 新列名 新的数据类型;
删除image列,一次只能删一列。
alter table 表名 drop 列名;
修改表名,表名改为user。
alter table 旧表名 rename 新表名;
查看表格的创建细节
show create table 表名;
修改表的字符集为gbk
alter table 表名 character set 编码方式;
DML操作
插入操作:INSERT: insert into 表名(列名) values(数据值);
注意:列名与列值的类型、个数、顺序要一一对应。 参数值不要超出列定义的长度。 如果插入空值,请使用null 插入的日期和字符一样,都使用引号括起来。
修改(更新)操作:UPDATE: 语法:UPDATE 表名 SET 列名1=列值1,列名2=列值2 ... WHERE 列名=值
修改(更新)操作:UPDATE: 语法:UPDATE 表名 SET 列名1=列值1,列名2=列值2 ... WHERE 列名=值
DQL数据查询
查询关键字:SELECT 语法: SELECT 列名 FROM 表名 【WHERE --> BROUP BY-->HAVING--> ORDER BY】 * 表示所有列
查询所有列
SELECT * FROM stu;
条件查询就是在查询时给出WHERE子句,在WHERE子句中可以使用如下运算符及关键字: =、!=、<>、、>=; BETWEEN…AND; IN(set); IS NULL; AND;OR; NOT;
模糊查询
当想查询姓名中包含a字母的学生时就需要使用模糊查询了。模糊查询需要使用关键字LIKE。 语法: 列名 like '表达式' //表达式必须是字符串 通配符: _(下划线): 任意一个字符 %:任意0~n个字符,'张%'
去除重复记录
去除重复记录(两行或两行以上记录中系列的上的数据都相同),例如emp表中sal字段就存在相同的 记录。当只查询emp表的sal字段时,那么会出现重复记录,那么想去除重复记录,需要使用 DISTINCT:
语法: order by 列名 asc/desc
//asc 升序 desc 降序 默认不写的话是升序
聚合函数是用来做纵向运算的函数:
COUNT(列名):统计指定列不为NULL的记录行数; MAX(列名):计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算; MIN(列名):计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算; SUM(列名):计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0; AVG(列名):计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;
分组查询
当需要分组查询时需要使用GROUP BY子句,例如查询每个部门的工资和,这说明要使用部分来分组。 注意:如果查询语句中有分组操作,则select后面能添加的只能是聚合函数和被分组的列名
LIMIT用来限定查询结果的起始行,以及总行数。 limit 开始下标,显示条数;
//开始下标从0开始 limit 显示条数;
//表示默认从0开始获取数据