SQL:结构化查询语言
SQL语言分类
- DDL:数据定义语言。
- DML:数据操作语言。
- DQL:数据查询语言。
数据库操作
- 创建数据库 [变量] (可省略)
create database [数据库名称] (character set [gbk/utf-8]);
字符集默认值是utf-8
- 删除数据库
drop database [数据库名称];
- 查看数据库
查看所有数据库:show databases;
查看数据库定义信息: show create database [数据库名称];
- 其他数据库命令
切换使用的数据库: use [数据库名称];
查看正在使用的数据库:select database();
表的操作
- 单表约束
- 主键约束:primary key ,要求被修饰的字段:唯一 非空。
- 唯一约束:unique,要求被修饰的字段唯一。
- 非空约束:not null 要求被修饰的字段不能为空。
- 创建表
create table [表名](
id int(长度) [约束],
。。。。
);
- 查看表
查看数据库中的所有表:show tables;
查看表的结构:desc [表名];
- 删除表
drop table [表名];
- 修改表
给表添加一列:alter table [表名] add [列名](长度)[约束];
修改表中列的类型、长度和约束:alter table [表名] modify 列名 类型(长度) 约束;
修改表的列名:alter table 表名 change 旧列名 新列名 类型(长度)约束;
删除表的列:alter table 表名 drop 列名;
修改表名: rename table 表名 to 新表名;
修改表的字符集:alter table 表名 character set 字符集;
插入数据语句 (增)
对应插入数据:insert into 表名(列名1,列名2,列名3) values(值1,值2,值3);
插入所有数据 : insert into 表名 values(值1,值2,值3);
删除数据语句(删)
delete from 表名[where条件]
更新数据语句(改)
update 表名 set 字段名=值,字段名=值。。。where条件;
查询数据语句(查)
先建一个表
- 简单查询
查询所有人信息:select * from person;
查询姓名和年龄:select pname,age from person;
- 别名查询 as关键字 可省略
表别名 查询所有数据:select * from person as p;
列别名 查询姓名: select pname as pn from person;
- 去重复查询 关键字:distinct
查询所有时间去重复后的数据:select distinct pdate from person;
- 带运算查询
查询年龄+10的人数据: select pname,age+10 from person;
条件查询
以此类推 :
查询年龄大于24的人:select * from person where age>24;
- 更多用法
eg:
- like的用法
- in的用法
- between and
- 排序 关键词:order by asc升序 desc降序
按年龄由高到低排序:select * from person order by age desc;
- 聚合函数
sum() 求和.
avg()求平均数
max()最大值
min()最小值
count()个数
求年龄之和:select sum(age) from person;
求人数的个数: select count(*) from person;
- 分组
先添加班级信息。
添加班级列:alter table person add class int;
将所有人分到1班:update person set class=1;
将pid为135的分到2班:UPDATE person SET class = 2 WHERE pid IN (1,3,5);
查看每个班级的平均年龄:SELECT class,avg(age) FROM person GROUP BY class;