数据库基础语言

目录

数据库与表的概念

如何操作数据库

数据库连接方式

SQL分类

DDL数据定义语言

DML 数据操作语言

数据库常用数据类型

约束条件

主键约束(PRIMARY KEY)

具有主键约束的字段同时可以使用自增来让DBMS自行对其值进行维护

非空约束(NOT NULL)

唯一性约束(UNIQUE)

DQL 数据查询语言


数据库基本概念:数据库(DataBase)就是存储数据的仓库
数据库管理系统(DBMS):可以独立运行的软件,维护磁盘上的数据,用统一的方式维护不同种类的数据,做到通用且高效。

常见的DBMS: mysql 、oracle 、db2 、sqlserver

数据库与表的概念

以MySQL为例 在DBMS中,一个项目中用到的所有数据都可以以一个数据库形式保存在一起。每种不同的数据都是以 表的形式保存。

表用来保存数据,一张表是由行和列构成

列被称为字段:保存一组数据中各个属性

行被称为记录:保存具体的一条信息。

如何操作数据库

所有的DBMS都支持SQL语句进行对应的操作。我们以客户端的角度与DBMS进行连接,并发送对应的 SQL语句进行操作。

所有数据库都支持SQL92标准

SQL结构化查询语言:Structured Query Language

数据库连接方式

命令行形式、图形化界面、JDBC连接(集成开发环境中idea)

SQL分类

1.DDL语言:数据定义语言,用来进行数据库对象操作的。

        数据库对象:数据库,表,视图,索引等

        CREATE,ALTER,DROP

2.DML语言:数据操作语言,用来对表中的数据进行操作的。

        INSERT,UPDATE,DELETE

3.DQL语言:数据查询语言,用来查询表中数据的。

        SELECT

4.TCL语言:事务控制语言,用来保证一些列数据库操作具有原子性,隔离性,一致性,持久性

        COMMIT,ROLLBACK

5.DCL语言:数据控制语言,进行数据库管理操作的,比如用户创建,权限分配等,是DBA经常使用的操作。

DDL数据定义语言

1.查看当前DBMS中已有的数据库:

        SHOW DATABASES

2.查看数据库信息:

        SHOW CREATE DATABASE 数据库名

3.新建一个数据库:

        CREATE DATABASE 数据库名 [charset=字符集名称]

4.删除数据库:

        DROP DATABASE 数据库名

5.使用数据库(切换一个数据库):

        USE 数据库名

6.创建表

        CREATE TABLE 表明(

                字段名1 类型[(长度)][默认值] [约束],

                字段名2 ... )

7.查看表结构:

        DESC 表名

8.查看已创建表的信息:

        SHOW CREATE TABLE 表名

9.删除表:

        DROP TABLE 表名

10.修改表   修改表名:

        RENAME TABLE 原表名 TO 新表名

11.修改表结构    添加字段    向表的末尾追加一个新的字段:

        ALTER TABLE 表名 ADD 字段名 类型[(长度)] [默认值] [约束]

12.将字段添加到表的第一列上:

        ALTER  TABLE  表名  ADD  字段名  类型  FIRST

13.将字段插入到表中,将新字段添加到表中现有某个字段之后:

        ALTER  TABLE  表名  ADD  字段名  类型  AFTER  表中现有某字段

14.删除字段:

        ALTER TABLE 表名 DROP 字段名

15.修改字段:

        ALTER TABLE 表名 CHANGE 原字段名 新字段名 类型

16.查看一个数据库中创建了多少张表

        SHOW TABLES

例子:

1.创建一个名为mydb的数据库

        CREATE DATABASE mydb;

2.创建数据库时指定字符集

        CREATE DATABASE mydb1 CHARSET=UTF8;

        CREATE DATABASE mydb2 CHARSET=GBK;

3.可以查看到曾经创建mydb库时的SQL,查看指定的字符集信息。

        SHOW CREATE DATABASE mydb;

4.删除数据库mydb1

        DROP DATABASE mydb1;

5.切换到数据库mydb上

        USE mydb;

6.创建userinfo表

        CREATE TABLE userinfo(

        id INT, 

        username VARCHAR(30), 

        password VARCHAR(30),

        nickname VARCHAR(30), 

        age INT(3) );

7.查看userinfo表的结构

        DESC userinfo;

8.查看创建userinfo表的信息

        SHOW CREATE TABLE userinfo;

9.删除userinfo表

        DROP TABLE userinfo;

10.将userinfo表改名为user

        RENAME TABLE userinfo TO user

11.向hero表中追加性别字段gender

        ALTER TABLE hero ADD gender VARCHAR(10)

12.向hero中最开始添加字段ID

        ALTER TABLE hero ADD id INT FIRST

13.插入字段pwd,并且插入到name字段之后

        ALTER TABLE hero ADD pwd VARCHAR(30) AFTER name

14.将pwd字段从hero表中删除

        ALTER TABLE hero DROP pwd;

15.将hero表中的age字段长度改为5

        ALTER TABLE hero CHANGE age age INT(5)

16.将hero表中的age字段类型改为VARCHAR(10)

        ALTER TABLE hero CHANGE age age VARCHAR(10)

17.将hero表中的gender字段改为phonenumber

        ALTER TABLE hero CHANGE gender phonenumber INT(11)

18.将hero表中phonenumber字段添加非空约束

        ALTER TABLE hero CHANGE phonenumber phonenumber INT(11) NOT NULL

DML 数据操作语言

1.INSERT 插入数据

        INSERT INTO 表名 [(字段1,字段2,字段3...)] VALUES (值1,值2,值3...)

2.插入默认值

        当插入一条记录时,表中某字段没有指定时,则是插入该字段的默认值。若该字段没有明确指定过默认值时,默认值为NULL。

3.用DEFAULT关键字为某个字段指定默认值

4.全列插入

        在INSERT语句中没有指定字段名时就是全列插入,此时需要注意VALUES子句中指定的值的个数,顺 序,类型必须与表中定义时指定的字段一致。

5.UPDATE 修改数据

        UPDATE 表名 SET 字段1=新值1[,字段2=新值2,...] [WHERE 过滤条件]

6.WHERE子句常用的条件

        =,>,>=,(不等于:<>。实际上 != 也可以用)

7.DELETE 删除数据,通常都要添加WHERE条件,否则是清空表操作!

        DELETE FROM 表名 [WHERE 过滤条件]

8.清空表操作

        DELETE FROM 表名

练习:

1.创建数据库day2db 字符集utf8并使用

        CREATE DATABASE day2db CHARSET=UTF8;

        USE day2db;

2.创建t_hero表, 有name字段,字符集utf8

        CREATE TABLE t_hero( name VARCHAR(30) )

3.修改表名为hero

        RENAME TABLE t_hero TO hero;

4.最后面添加价格字段money, 最前面添加id字段, name后面添加age字段

        ALTER TABLE hero ADD money INT(5);

        ALTER TABLE hero ADD id INT FIRST;

        ALTER TABLE hero ADD age INT(3) AFTER name;

5.表中添加以下数据:

        1,李白,50,6888 2,赵云,30,13888 3,刘备,25,6888

        INSERT INTO hero (id,name,age,money) VALUES(1,'李白',50,6888);

        INSERT INTO hero (id,name,age,money) VALUES(2,'赵云',30,13888);

        INSERT INTO hero (id,name,age,money) VALUES(3,'刘备',25,6888);

6.修改刘备年龄为52岁

        UPDATE hero

        SET age=52

        WHERE name='刘备';

7.修改年龄小于等于50岁的价格为5000

        UPDATE hero

        SET money=5000

        WHERE age<=50;

8.删除价格为5000的信息

        DELETE  FROM   hero  WHERE   money=5000;

9.删除表, 删除数据库

        DROP TABLE hero;

        DROP DATABASE day2db;

总结:

DML语言:数据操作语言,是对表中数据进行操作的语言。涵盖的内容:

INSERT(增),DELETE(删),UPDATE(改)

INSERT语句:

1.插入时指定的字段可以与表中字段顺序,个数不一致。但是VALUES中指定的值要与指定的字 段顺序,类型,个数完全一致。

2.插入数据时某个字段没有指定,那么该记录中该字段会插入默认值。字段没有显示指定默认值 是,默认值就为NULL。

3.插入数据时,可以将默认值插入到对应字段上,此时只需要使用DEFAULT即可。

4.插入数据时,显示的使用NULL将一个null插入到对应的字段上。

5.插入数据时若没有指定任何字段,则为全列插入,此时VALUES中指定的值的个数,顺序,类 型必须与表结构完全一致。

数据库常用数据类型

数字类型:整数类型:INT(m)和BIGINT(m)

m:整数的位数

INT(5):保存1个5位整数。 若保存整数19,实际保存时会在前面补0来达到指定长度:00019

浮点数:DOUBLE(m,n)

m:数字的位数    n:小数的位数    m包含n

DOUBLE(5,2):一共5位数,其中有2位小数。

保存的最大值:999.99

  • 当指定的小数部分超过了可保存的精度,则会进行四舍五入。

例: Person1表,其中有salary字段,类型为:Double(7,4) 此时插入数据时:

INSERT INTO person1 (salary)  VALUES(546.55789);

实际上salary保存的值:546.5579

  • 当最大值需要进行四舍五入,则会报错(值超过了范围)

INSERT INTO person1(salary) VALUES(999.99996)

 字符类型

  • 定长字符:CHAR(m)
  • m表示长度,单位是字符
  • name CHAR(5):表示name字段最多可以保存5个字符
  • 最大值为255
  • 实际保存数据时,如果实际保存的内容不足指定长度时,会在末尾补充若干的空格来占满对应的长度。
  • 优点:在磁盘中每条记录该字段的长度是固定的,检索速度快
  • 缺点:磁盘空间存在浪费

变长字符:VARCHAR(m)

  • m表示长度,单位是字节
  • m的最大值为 65535
  • name VARCHAR(30):name保存的字符转换的字节最多保存30个。实际数据占用多少字节就保存多少字节。
  • 例如:保存'jack'。jack实际占用4个字节因此在磁盘上就占用4字节。如果是CHAR类型则会补充空格 占满30字节。
  • 优点:不浪费磁盘空间
  • 缺点:每条记录该字段长度不一致,查询效率低

变长字符:TEXT(m)

  • m表示长度,但是为字符
  • m的最大值为65535

日期类型

  1. DATE:保存年月日
  2. TIME:保存时分秒
  3. DATETIME:保存年月日时分秒
  4. TIMESTAMP:时间戳,保存UTC时间,保存自1970-01-01 00:00:00到该时间所经过的毫秒

插入日期时,可以以字符串形式插入,格式:'YYYY-MM-DD hh:mm:ss'

INSERT INTO userinfo(id,username,gender,birth,salary)

VALUES(1,'张三','男','2008-08-05 12:22:55',5000.89)

插入日期时,类型为DATETIME,在字符串中可以不指定时分秒

INSERT INTO userinfo(id,username,gender,birth,salary)

VALUES(2,'李四','女','1998-07-16',7000.55)

不指定时分秒则都为0

DATETIME类型不能忽略年月日

INSERT INTO userinfo(id,username,gender,birth,salary)

VALUES(3,'王五','男','16:55:23',9500.34)

会报错

约束条件

可以对表添加相应的约束,只有满足约束条件的操作才可以进行。这样通常用来保证表中的数据可以正确服务于业务

主键约束(PRIMARY KEY)

  • 一张表只能有一个字段被添加主键约束
  • 主键约束的特点:非空且唯一
    • 不能想主键字段插入重复的值
    • 不能将NULL值插入主键字段
  • 通常使用主键字段的值来标识表中唯一一条记录

CREATE TABLE user1(

        id INT PRIMARY KEY,

        name VARCHAR(30),

        age INT(3) );

INSERT INTO user1(id,name,age) VALUES(1,'张三',22);

INSERT INTO user1(id,name,age) VALUES(2,'李四',35);

具有主键约束的字段同时可以使用自增,来让DBMS自行对其值进行维护

在声明主键约束时同时声明自增(AUTO_INCREMENT)

创建表时指定主键自增

CREATE TABLE user2(

        id INT PRIMARY KEY AUTO_INCREMENT,

        name VARCHAR(30),

        age INT(3) );

插入数据时可以忽略主键字段

显示的为主键插入NULL值,此时主键仍然会自增(不推荐)

非空约束(NOT NULL)

  • 非空约束要求该字段的值不允许为NULL
  • 不能将NULL值插入到具有非空约束的字段上
  • 插入时不能忽略具有非空约束的字段,否则报错

唯一性约束(UNIQUE)

唯一性约束允许字段的值为NULL,但是不为NULL的值整表中,每条记录该字段的值都不允许重复。

  • 允许重复插入NULL值
  • 不允许插入重复值

DQL 数据查询语言

DQL用用于检索表中数据的语言。也是SQL中重点内容,也是难点内容。

SELECT [DISTINCT] 子句

FROM 子句

JOIN ... ON ... 子句

WHERE 子句

GROUP BY 子句

HAVING 子句

ORDER BY 子句

LIMIT 子句                       注:LIMIT子句是mysql使用的,其他数据库则不一定用。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ACCESS数据库是一种关系型数据库管理系统(RDBMS),由微软公司开发。它提供了一个可视化的界面,使用户可以轻松地创建、管理和查询数据库。以下是ACCESS数据库的一些基础知识: 1. 数据库:ACCESS数据库是一个容纳数据的容器,它由表、查询、表单、报表和宏等组成。用户可以在数据库中创建多个表,每个表都有自己的字段和记录。 2. 表:表是数据库中的基本组成单元,用于存储数据。每个表由一系列字段组成,每个字段代表一个数据项。用户可以定义字段的数据类型、长度和其他属性。 3. 查询:查询是用于从数据库中检索数据的工具。用户可以使用查询语言(如SQL)或查询设计器来创建查询。查询可以根据特定条件过滤数据、排序数据或执行计算。 4. 表单:表单是用于输入、编辑和显示数据的界面。用户可以创建自定义表单,以便更方便地与数据库进行交互。表单可以包含文本框、按钮和其他控件。 5. 报表:报表用于以可视化的方式呈现数据库中的数据。用户可以创建自定义报表,以便生成漂亮的打印输出或电子文档。 6. 宏:宏是一系列预定义的操作序列,可以自动执行特定任务。用户可以创建宏来简化常见的操作,如打开表、运行查询或执行其他操作。 以上是ACCESS数据库的一些基础知识。如果你有任何进一步的问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值