栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

数据库基本常识以及简单用法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据库基本常识以及简单用法

文章目录
  • 一、入门简介
      • 1、介绍
      • 2、socket 介绍
  • 二、SQL
      • 1.SQL语句分类
      • 2、DCL(数据控制语言)语法(了解即可)
        • 2.1 创建用户
        • 2.2 给用户授权
        • 2.3 撤销授权
        • 2.4 查看权限
        • 2.5 删除用户
      • 3、DDL(数据定义语言)语法(重要)
        • 1、常用的数据类型
      • 4、DML(数据操作语言)语法(重要)
        • 4.1 插入数据(一次插入就是插入一行)
        • 4.2 修改记录
        • 4.4 删除数据(删除整行)
  • 总结


一、入门简介 1、介绍
  • MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。
  • MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。
  • MySQL因为其速度、可靠性和适应性而备受关注。MySQL是管理内容最好的选择。
2、socket 介绍
  • 客户端和服务端是使用socket链接的。
  • socket中文翻译是插座,但是学术叫套接字。其实就是计算机和计算机链接的方式。
  • 一个计算机使用ip+端口使用某种协议就能和另外一台机子的ip+端口链接通信。(TCP / UDP)
  • mysql使用的默认端口是3306,一个客户端随便使用一个端口,就能连接上服务。
  • 服务器的ip+端口是固定的,客户端往往是随机的。
二、SQL 1.SQL语句分类
  • 1.DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等。功能:创建、删除、修改库和表结构。

  • 2.DML(Data Manipulation Language):数据操作语言,用来定义数据库记录:增、删、改表记录。

  • 3.DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别。

  • 4.DQL(Data Query Language):数据查询语言,用来查询记录。也是接下来学习的重点。

2、DCL(数据控制语言)语法(了解即可)

该语言用来定义访问权限,理解即可,以后不会多用。

需要记住的是,一个项目创建一个用户,一个项目对应的数据库只有一个。这个用户只能对这个数据库有权限,其它数据库该用户就操作不了。

2.1 创建用户

用户只能在指定ip地址上登录mysql:create user 用户名@IP地址 identified by ‘密码’;

用户可以在任意ip地址上登录:create user 用户名@‘%’ identified by ‘密码’;

create user lzq@'%' identified by 'lzq123';
2.2 给用户授权

语法:grant 权限1,…,权限n on 数据库.* to 用户名@IP地址;其中权限1、2、n可以直接用all关键字代替。权限例如:create,alter,drop,insert,update,delete,select。

grant all on test.* to lzq;
2.3 撤销授权

语法:revoke 权限1,…,权限n on 数据库.* from 用户名@ ip地址;撤销指定用户在指定数据库上的指定权限。撤销例如:revoke create,delete on mydb1.* form user@localhost;表示的意思是撤消user用户在数据库mydb1伤的create、alter权限。

revoke all on test.* from lzq;
2.4 查看权限

查看指定用户的权限:show grants for 用户名@ip地址;

show grants for lzq;
2.5 删除用户
drop user 用户名@ip地址;
3、DDL(数据定义语言)语法(重要)

该语言用来对数据库和表结构进行操作。

1、常用的数据类型

日期和时间数据类型

MySQL数据类型含义
date3字节,日期,格式:2014-09-18
time3字节,时间,格式:08:42:30
datetime8字节,日期时间,格式:2014-09-18 08:42:30
timestamp4字节,自动存储记录修改的时间
year1字节,年份

整型

MySQL数据类型含义(有符号)
tinyint1字节,范围(-128~127)
smallint2字节,范围(-32768~32767)
mediumint3字节,范围(-8388608~8388607)
int4字节,范围(-2147483648~2147483647)
bigint8字节,范围(±9.22*10的18次方)

上面定义的都是有符号的,当然了,也可以加上unsigned关键字,定义成无符号的类型,那么对应的取值范围就要翻翻了,比如:

tinyint unsigned的取值范围为0~255。

浮点型

MySQL数据类型含义
float(m, d)4字节,单精度浮点型,m总个数,d小数位
double(m, d)8字节,双精度浮点型,m总个数,d小数位
decimal(m, d)decimal是存储为字符串的浮点数

我在MySQL中建立了一个表,有一列为float(5, 3);做了以下试验:

1.插入123.45678,最后查询得到的结果为99.999;
2.插入123.456,最后查询结果为99.999;
3.插入12.34567,最后查询结果为12.346;

所以,在使用浮点型的时候,还是要注意陷阱的,要以插入数据库中的实际结果为准。

字符串数据类型

MySQL数据类型含义
char(n)固定长度,最多255个字符
varchar(n)可变长度,最多65535个字符
tinytext可变长度,最多255个字符
text可变长度,最多65535个字符
mediumtext可变长度,最多2的24次方-1个字符
longtext可变长度,最多2的32次方-1个字符
  1. char(n)和varchar(n)中括号中n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。
  2. 同时char和varchar最大的区别就在于char不管实际value都会占用n个字符的空间,而varchar只会占用实际字符应该占用的空间+1,并且实际空间+1<=n。
  3. 超过char和varchar的n设置后,字符串会被截断。
  4. char的上限为255字节,varchar的上限65535字节,text的上限为65535。
  5. char在存储的时候会截断尾部的空格,varchar和text不会。
  6. varchar会使用1-3个字节来存储长度,text不会。

其它类型

  1. enum(“member1″, “member2″, … “member65535″)
    enum 数据类型就是定义了一种枚举,最多包含65535个不同的成员。当定义了一个enum的列时,该列的值限制为列定义中声明的值。如果列声明包含NULL属性,则NULL将被认为是一个有效值,并且是默认值。如果声明了NOT NULL,则列表的第一个成员是默认值。

  2. set(“member”, “member2″, … “member64″)
    set 数据类型为指定一组预定义值中的零个或多个值提供了一种方法,这组值最多包括64个成员。值的选择限制为列定义中声明的值。

对数据库的操作(增删查改):

查看所有数据库: SHOW DATAbaseS;

使用数据库: USE 数据库名;

创建数据库并指定编码,如不指定编码可能会有乱码问题,比如汉字不能存,当然建表指定也行,但是建库时指定一劳永逸:

CREATE DATAbase test DEFAULT CHARACTER SET utf8

删除数据库: DROP DATAbase 数据库名;

切换数据库: use test;

对表结构的操作
创建表:

create table 表名 (

字段名1 类型 (宽度) 约束条件,

字段名2 类型(宽度) 约束条件,

字段名3 类型(宽度) 约束条件,

.......

);

CREATE TABLE student (
    id INT(10)  primary key,
    name VARCHAR (10),
    age INT (10) NOT NULL,
    gander varchar(2)
);

CREATE TABLE course (
  id INT (10)  primary key,
  name VARCHAR (10) ,
  t_id INT (10) 
) ;

CREATE TABLE `teacher` (
  id INT (10)  primary key,
  name VARCHAR (10) 
);

CREATE TABLE `scores` (
  s_id INT  primary key,
  score INT (10),
  c_id INT (10) 
) ;

查看当前数据库中所有表: SHOW TABLES;

查看表结构: DESC 表名;
或者:describe create table 表名

删除表: DROP table 表名;

修改表有5个操作,但前缀都是一样的:ALTER TABLE 表名...(不重要)

  • 修改表之添加列: ALTER TABLE 表名 add (列名 列类型,...,列名 列类型);

    ALTER TABLE student add (address VARCHAR(20),hobby VARCHAR(20))
    
  • 修改表之修改列类型: ALTER TABLE 表名 MODIFY 列名 列的新类型;

    ALTER TABLE student MODIFY hobby int;
    
  • 修改表之列名称列类型一起修改: ALTER TABLE 表名 CHANGE 原列名 新列名 列名类型;

    ALTER TABLE student CHANGE hobby newHobby VARCHAR(15);
    
  • 修改表之删除列: ALTER TABLE 表名 DROP 列名;

    ALTER TABLE student drop newHobby;
    
  • 修改表之修改表名: ALTER TABLE 表名 RENAME TO 新表名

    ALTER TABLE student RENAME to stu;
    
4、DML(数据操作语言)语法(重要)

该语言用来对表记录操作(增、删、改)。

4.1 插入数据(一次插入就是插入一行)
insert into 表名 (列名1,列名2,列名3) values (列值1,列值2,列值3);
insert into  stu (id,name,age,gander) values (2,'李华',19,'男');

说明:

  1. 在数据库中所有的字符串类型,必须使用单引号。
  2. (列名1,列名2,列名3)可省略,表示按照表中的顺序插入。但不建议采取这种写法,因为降低了程序的可读性。
4.2 修改记录

修改某列的全部值:
update 表名 set 列名1=列值1(,列名2=列值2);

UPDATE stu set age=22;
UPDATE stu set age=23,name='张楠';

这样就全修改了,所以往往就要加条件。

UPDATE stu set age=23,name='张楠' where id = 1;

修改(某行或者多行记录的)列的指定值:
update 表名 set 列名1=列值1 where 列名2=列值2 or 列名3=列值3;

运算符:=、!=、<>、<、>、>=、<=、between...and、in(…)、is null、not、or、and,其中in(…)的用法表示集合。
例如:update 表名 set 列名1=列值1 where 列名2=列值2 or 列名2=列值22
用in(…)写成update 表名 set 列名1=列值1 where 列名2 in(列值2,列值3)

4.4 删除数据(删除整行)

delete from 表名 (where 条件);
不加where条件时会删除表中所有的记录,所以为了防止这种失误操作,很多数据库往往都会有备份。


总结 以上就是今天要讲的内容,本文仅仅简单介绍了p数据库的简单了解和使用,而数据库提供了大量能使我们快速便捷地处理数据的函数和方法,后期会跟进
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/324582.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号