数据库与SQL——小白入门篇

数据库的基本概念

数据库:用于存储和管理数据的仓库

特点:

  1. 数据结构化
  2. 方便存储和管理数据
  3. 使用统一的方式操作数据库

常见的数据库软件:

Oracle Database:甲骨文公司的RDBMS(通常简称为Oracle)

SQL Server :微软公司的RDBMS

DB2:IBM 公司的RDBMS

PostgreSQL:开源的RDBMS

MySQL :开源的RDBMS

SQL

概念:结构化查询语言,一种ANSI的标准计算机语言

(定义了操作所有关系型数据库的规则)

语法:  

  1. SQL语句可以单行或多行书写,并以分号结尾
  2. SQL对大小写不敏感
  3. 注释:

                 (1)单行注释: -- 注释内容 或 # 注释内容(mysql 特有) 

                 (2)多行注释: /* 注释 */

       

分类:

(1)DDL(Data Definition Language)数据定义语言

                     用来定义数据库对象:数据库,表,列等 关键字:create, drop,alter 等

(2) DML(Data Manipulation Language)数据操作语言

                     用来对数据库中表的数据进行增删改 关键字:insert, delete, update 等

(3) DQL(Data Query Language)数据查询语言

                     用来查询数据库中表的记录(数据) 关键字:select, where 等

DDL(操作数据库和表)

DDL一些重要语句:     

(操作库)

1)创建:创建数据库:create database 数据库名称;

2)查询:

               查询所有数据库的名称: show databases;

               查询某个数据库的字符集:show create database 数据库名称;

3)删除:删除数据库:drop database 数据库名称;

4)使用:

               查询当前正在使用的数据库名称:select database();

               使用数据库:use 数据库名称;

(操作表)

1)创建:

              create table 表名(

                                             列名1 数据类型1,

                                             列名2 数据类型2,

                                             ....

                                             列名n 数据类型n

                                                 );

               另:最后一列,不需要加逗号(,)

                     复制表:create table 表名 like 被复制的表名;

2)查询:

               查询某个数据库中所有的表名称:show tables;

               查询表结构:desc 表名;

3)修改:

              修改表名:alter table 表名 rename to 新的表名;

              添加一列:alter table 表名 add 列名 数据类型;

              修改列名称 类型:alter table 表名 change 列名 新列别 新数据类型;

                                    alter table 表名 modify 列名 新数据类型;

              删除列:alter table 表名 drop 列名;

4)删除:drop table 表名;

DML(增删改表中数据)

DML重要语法:

1)添加数据:insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);  

                   另:列名和值要相互对应,除数字类型,其他类型需要用单引号或双引号

2)删除数据:delete from 表名 [where 条件]

                   另:若不加条件会删除表中的所有记录,可使用TRUNCATE TABLE 表名;来代替

3)修改数据:update 表名 set 列名1 = 值1, 列名2 = 值2,... [where 条件];

DQL(数据查询语言)

查询表中的记录:select * from 表名;

语法:

              select

                     字段列表

              from

                     表名列表

              where

                     条件列表

              group by

                     分组字段

              having

                     分组之后的条件

              order by

                     排序

              limit

                     分页限定

1)条件查询:

                             (1)where子句后加条件

                             (2)运算符:

                                                 BETWEEN...AND 

                                                 IN( 集合)

                                                LIKE:模糊查询

                                                占位符:

                                                            _(单个任意字符)

                                                           %(多个任意字符)

                                                IS NULL 

2)排列查询:order by 排序字段1 排序方式1 ,  排序字段2 排序方式2...(ASC升序,DESC 降序)

                   另:如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。

3)聚合函数:将一列数据作为一个整体,进行纵向的计算。

                 (1)count:计算个数(一般选择非空的列:主键)

                 (2)max,min:计算最大和最小值

                 (3)sum:计算和

                  另:其计算需要排除null值,可选择不包含非空的列进行计算或者使用IFNULL函数

             

4)分页查询:limit 开始的索引,每页查询的条数;(limit是MySQL特有的)

                    另:开始的索引 = (当前的页码 - 1) * 每页显示的条数

约束

概念:对表中的数据进行限定,保证数据的正确性、有效性和完整性。  

分类:

       (1)主键约束:primary key

       (2)非空约束:not null

       (3)唯一约束:unique

       (4)外键约束:foreign key

1)非空约束:not null,某一列的值不能为null

                   (1)创建表时添加约束

                                       CREATE TABLE stu(

                                                                        id INT,

                                                                        NAME VARCHAR(20) NOT NULL -- name为非空

                                                                     );

                    (2)创建表完后,添加非空约束:

                                                     ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;

                     (3)删除name的非空约束:ALTER TABLE stu MODIFY NAME VARCHAR(20);

2)唯一约束:unique,某一列的值不能重复

                   (1)在创建表时,添加唯一约束:

                                                  CREATE TABLE stu(

                                                                         id INT,

                                                                         phone_number VARCHAR(20) UNIQUE -- 手机号

                                                                  );

                  (2)删除唯一约束:ALTER TABLE stu DROP INDEX phone_number;

                  (3)在表创建完后,添加唯一约束:

                                            ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;

       

  1. 主键约束:primary key(非空且唯一)

                    (1)在创建表时,添加主键约束

                                              create table stu(

                                                             id int primary key,-- 给id添加主键约束

                                                             name varchar(20)

                                                         );

                   (2)删除主键:ALTER TABLE stu DROP PRIMARY KEY;

                   (3)创建完表后,添加主键:ALTER TABLE stu MODIFY id INT PRIMARY KEY;  

                       另:一张表只能有一个字段为主键,主键见识表中记录的唯一标识

4)外键约束:foreign key,让表于表产生关系,从而保证数据的正确性

               (1)添加外键:

                             create table 表名(

                                                              .  ...

                                                            外键列

                                   constraint 外键名称 foreign key (外键列名称) references 主表名称     (主表列名称)

                            );

               (2)删除外键:ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

          (3)创建表之后,添加外键:ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);

另:级联操作

                        (1)添加级联操作:ALTER TABLE 表名 ADD CONSTRAINT 外键名称

                                          FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名      称) ON UPDATE CASCADE ON DELETE CASCADE  ;

                           (2) 分类:

                                        级联更新:ON UPDATE CASCADE

                                        级联删除:ON DELETE CASCADE

多表之间的关系

1)一对一(实现方式:一对一关系实现,可以在任意一方添加唯一外键指向另一方的主键)[了解即可]

2)一对多 (在多的一方建立外键,指向一的一方的主键)

3)多对多(实现方式:多对多关系实现需要借助第三张中间表。中间表至少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键)

数据库的备份和还原:

              备份:在cmd上mysqldump -u用户名 -p密码 数据库名称 > 保存的路径

              还原:登录,创建,使用数据库,然后再执行文件,source 文件路径

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值