数据库笔记--数据库基础
Posted 浮音
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库笔记--数据库基础相关的知识,希望对你有一定的参考价值。
一、语法要求
- SQL语句可以单行或多行书写,以分号结尾。
- 可以用空格和缩进来来增强语句的可读性。
- 关键字不区别大小写。
二、语句分类
- DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列、索引等。常用的语句关键字主要包括 create、drop、alter等。
- DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据)。常用的语句关键字主要包括insert、delete、udpate等。
- DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别。主要的语句关键字包括 grant、revoke 等。
- DQL(Data Query Language):数据查询语言,用来查询记录(数据)。主要的语句关键字包括select等。
三、DDL语句
1、基本库操作
- CREATE DATABASE [IF NOT EXISTS] db_liu; 创建新的数据库db_liu,
- SHOW DATABASES; 查看所有数据库
- USE db_liu; 切换到数据库db_liu
- ALTER DATABASE db_liu CHARACTER SET utf8; 修改数据库编码
- DROP DATABASE [IF EXISTS] db_liu; 删除数据库
2、基本表操作
- create table 表名(字段名称 字段类型,字段名称 字段类型...); 创建新的表(not null、primary key、auto_increment)
示例:create table user(id int,username varchar(20),password varchar(20)); - SHOW TABLES; 查看所有表
- DESC 表名; 查看表结构
- SHOW CREATE TABLE 表名 \G; 查看全面的表定义信息
- 修改表
- ALTER TABLE 表名 MODIFY [COLUMN] 列定义 [FIRST | AFTER 列名]; 修改列类型
示例:alter table user modify username varchar(18)
after password;first是将列改到第一列,after password是改到password列的后面 - ALTER TABLE 表名 ADD [COLUMN] 列定义 [FIRST | AFTER 列名]; 添加列
示例:alter table user add age int; - ALTER TABLE 表名 DROP [COLUMN] 列名; 删除列
- ALTER TABLE 表名 CHANGE [COLUMN] 旧列名 新列定义; 修改列名
示例:alter table user change username name varchar(20); - ALTER TABLE 原表名 RENAME [TO] 新表名; 修改表名
- drop table 表名; 删除表
注意:change、first、after 列名是mysql的扩展部分,其他数据库未必有
- ALTER TABLE 表名 MODIFY [COLUMN] 列定义 [FIRST | AFTER 列名]; 修改列类型
3、DML语句
- 插入数据
INSERT INTO 表名(列名1,列名2, …) VALUES(值1, 值2,...);
INSERT INTO 表名 VALUES(值1,值2,…) - 更新数据
UPDATE 表名 SET field1=value1,field2=value2,... [条件判断];
示例:update user set username="abcd" where id=1; - 删除记录DELETE FROM 表名 [条件判断];
4、DQL语句
- 基本使用
select name,age from user where id=1;(使用*代表查询所有记录) - 使用distinct去掉重复记录
select distinct name from user; - 条件查询
使用and(与)、or(或)、>、<、>=、<=、!=、=等运算符 - 排序
select * from user where age>12 order by id asc;(desc是降序,默认升序) - 分页查询
limit 起始行,查询行数;(起始行从0开始)
select * from user limit 0,5; - 聚合函数(会排除null值的数据)
sum(求和)、count(记录数)、avg(平均数)、max(最大值)、min(最小值)
select age,count(*) from user where id>5 group by age having count(*)>=2;(having后的语句是对聚合后的结果进行过滤) - 表连接
select student.name,course.name from student,course where student.sno=course.sno;
外连接:左外连接(包含左边表所有的记录不管右边表有无匹配记录)、右外连接(包含右边表所有的记录不管左边表有无匹配记录)
select student.name,course.age from student left join course on student.sno=course.sno; - 子查询
查询需要的条件是另一个select语句的结果,关键字in、not in、=、!=、exists、not exists等
select * from student where id in (select sno from course where name=‘math‘); - 记录联合
union(去掉重复)、union all(不去重)
select id from student union select sno from course; - 模糊查询
%替代任意个字符,_替代一个字符
select * from user where name like "张_";
以上是关于数据库笔记--数据库基础的主要内容,如果未能解决你的问题,请参考以下文章