数据库笔记--数据库基础

Posted 浮音

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库笔记--数据库基础相关的知识,希望对你有一定的参考价值。

一、语法要求

  1. SQL语句可以单行或多行书写,以分号结尾。
  2. 可以用空格和缩进来来增强语句的可读性。
  3. 关键字不区别大小写。

二、语句分类

  1. DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列、索引等。常用的语句关键字主要包括 create、drop、alter等。
  2. DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据)。常用的语句关键字主要包括insert、delete、udpate等。
  3. DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别。主要的语句关键字包括 grant、revoke 等。
  4. DQL(Data Query Language):数据查询语言,用来查询记录(数据)。主要的语句关键字包括select等。

 三、DDL语句

1、基本库操作

  1. CREATE DATABASE [IF NOT EXISTS] db_liu; 创建新的数据库db_liu,
  2. SHOW DATABASES; 查看所有数据库
  3. USE db_liu; 切换到数据库db_liu
  4. ALTER DATABASE db_liu CHARACTER SET utf8; 修改数据库编码
  5. DROP DATABASE [IF EXISTS] db_liu; 删除数据库

2、基本表操作

  1. create table 表名(字段名称 字段类型,字段名称 字段类型...); 创建新的表(not null、primary key、auto_increment)
    示例:create table user(id int,username varchar(20),password varchar(20));
  2. SHOW TABLES; 查看所有表
  3. DESC 表名; 查看表结构
  4. SHOW CREATE TABLE 表名 \G; 查看全面的表定义信息
  5. 修改表
    1.  ALTER TABLE 表名 MODIFY [COLUMN] 列定义 [FIRST | AFTER 列名]; 修改列类型
      示例:alter table user modify username varchar(18)
      after password;first是将列改到第一列,after password是改到password列的后面
    2. ALTER TABLE 表名 ADD [COLUMN] 列定义 [FIRST | AFTER 列名]; 添加列
      示例:alter table user add age int;
    3. ALTER TABLE 表名 DROP [COLUMN] 列名; 删除列
    4. ALTER TABLE 表名 CHANGE [COLUMN] 旧列名 新列定义; 修改列名
      示例:alter table user change username name varchar(20);
    5. ALTER TABLE 原表名 RENAME [TO] 新表名; 修改表名
    6. drop table 表名; 删除表
      注意:change、first、after 列名是mysql的扩展部分,其他数据库未必有

3、DML语句

  1. 插入数据
    INSERT INTO 表名(列名1,列名2, …) VALUES(值1, 值2,...);
    INSERT INTO 表名 VALUES(值1,值2,…)
  2. 更新数据
    UPDATE 表名 SET field1=value1,field2=value2,... [条件判断];
    示例:update user set username="abcd" where id=1;
  3. 删除记录DELETE FROM 表名 [条件判断];

4、DQL语句

  1. 基本使用
    select name,age from user where id=1;(使用*代表查询所有记录)
  2. 使用distinct去掉重复记录
    select distinct name from user;
  3. 条件查询
    使用and(与)、or(或)、>、<、>=、<=、!=、=等运算符
  4. 排序
    select * from user where age>12 order by id asc;(desc是降序,默认升序)
  5. 分页查询
    limit 起始行,查询行数;(起始行从0开始)
    select * from user limit 0,5;
  6. 聚合函数(会排除null值的数据)
    sum(求和)、count(记录数)、avg(平均数)、max(最大值)、min(最小值)
    select age,count(*) from user where id>5 group by age having count(*)>=2;(having后的语句是对聚合后的结果进行过滤)
  7. 表连接
    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;
  8. 子查询
    查询需要的条件是另一个select语句的结果,关键字in、not in、=、!=、exists、not exists等
    select * from student where id in (select sno from course  where name=‘math‘);
  9. 记录联合
    union(去掉重复)、union all(不去重)
    select id from student union select sno from course;
  10. 模糊查询
    %替代任意个字符,_替代一个字符
    select * from user where name like "张_";

以上是关于数据库笔记--数据库基础的主要内容,如果未能解决你的问题,请参考以下文章

R语言基础知识笔记

网络基础+数据库基础笔记

MySql必知必会读书笔记 -- 基础

mysql基础学习笔记

mysql基础学习笔记

Oracle基础笔记