sql查询表中某一列所有数据_Java从入门到入土day23 MySql数据库

75839f30bf3981ed7fb7a1a257379221.png

啊。。。。。昨日没更新,昨日只顾着去看奥特曼了。奥特曼也太好看了!!!

啊。。。。。前日没更新,前日只顾着去玩狼人杀了。狼人杀也太好玩了!!!

25cd9b0707382904b7077acc98d86f49.png

正文分割线


一、安装MySql

百度搜索安装MySql就行,我装得是5.3.

二、数据库小知识

1、数据库分类:关系型数据库和非关系型数据库

数据库分类数据之间的关系数据库举例结构用法储存
关系型数据库专注于数据与数据之间的关系,或者表与表之间的关系MYSQL Oracle SQLServer(微软) DB2(微软) pgSQL表和表的结构编写SQL语句更多以文件的形式来进行储存
非关系型数据库不关注数据和数据之间的关系,它更看重数据的储存Redis Memcache HBase MongoDBkey-value不需要编写SQL语句更多是以内存为主,文件为辅

2、表

表是专门用来放置数据的一种文件,有点像Excel表格,表中的数据以行和列来进行储存。

3、SQL结构化查询语言

结构化查询语言(Structured Query Language),它跟JAVA一样,同样是一种编程语言,只不过它是专门用来和关系型数据库进行交互的一种语言。

95fbb3030110c669c98514910bac8ac8.png

4、RDBMS

Relational Database Management System (关系型数据库管理系统)

这种管理系统的责任:负责对数据库中的表进行 数据的读写

我们现在常用的说法: 数据库 等于 RDBMS

也就是:MYSQL ORACLE DB2 SQLSERVER ……

79792b97dffc0a1f6e15d3d46f822c9b.png

5、储存引擎

数据库的储存引擎就像汽车中的引擎一样,储存引擎是驱动数据库进行储存的发动机一样。它决定了数据如何储存,如何获取,如何控制事务,如何控制外键等一系列的功能

那么在MySQL中常见的储存引擎:InnoDB和Mylsam两者有什么区别?其中的外键约束和事务将在后面的内容介绍

储存引擎表的储存方式数据库事务CRUD(增删改查)性能外键约束
InnoDB将一张表划分为2个文件:XXX.frm (表的表结构文件) XXX.ibd (数据和索引文件)支持低(相对)支持
MyIsam将一张表划分为3个文件:XXX.frm (表的表结构文件) XXX.MYD (数据文件) XXX.MYI (索引文件)不支持非常高(相对)不支持

6、SQL语句的4个分类:把SQL语句分成了4种

DDL数据库定义语言:负责数据库的创建,修改,删除,设置表结构、存储过程和视图

DML数据库操作语言:数据库表的新增,修改和删除

DQL数据库查询语言:查询表中的数据

DCL数据库控制语言:创建管理用户,给用户授权

7、SQL语句标识符(可以理解为Excel中首行的标题)的硬性命名规则

首字符不能是数字和符号,除了下划线(_),@,#以外。

后续字符不能嵌入空格或其他字符,字符只能用下划线(_),@,#,$。

不能使用SQL的关键字

SQL语句,不区分大小写

8、软性书写规则(就是不这样写程序也可以执行,不过最好这样写)

所有单词都小写,单词之间使用_进行分割

如遇到一些关键字,需要作为字段名,需要使用 TAB键,上方的波浪键进行转义

见名知意

合法的例如:user_name login_name gender age

三、SQL数据类型

1、数值类型

d0202095f55daf228c6bfe6d465d7c5a.png

2、时间和日期类型

488fa98433b083d98f0eb69fc761a7c8.png

3、字符串类型

138f941c1fdb0958a2a16dfa23cd4371.png

注意:char 和 varcher 是常用的2种字符类型

char(10) 的特点:数据库需要提前在硬盘上 分配 10个字符的空间,不管10个字符的空间有没有内容,因为它是定长字符

varchar(10)的特点:有多少个字符就分配多少空间,但是最大空间不得超过10,因为它是可变长度的字符类型! 一个中文,占2个字节,一个英文,占1个字节

四、DDL语言(数据库定义语言)

1、下面就进行数据库SQL语句的实战:请确保你已经安装好数据库了,一般来说高版本都会兼容低版本的,所以我用5.6,假如你使用这个及其以上的应该都没问题。

安装完成以后打开MySQL的应用程序

f2635b3c69d4180d702ef5b98bf58df6.png

点开以后输入密码就行,输入错误就会自动退出。正确的话如图所示

e71bf13b7ed7568204bb20acf8dcf29b.png

然后你就可以开始输入SQL的指令了。

2、数据库的创建

    create database 数据库名称;
    create database woniuxy;
    //数据库默认采用latin (拉丁字符集) 中文放进去,就会乱码!可以在创建数据库的时候设置字符集
    create database 数据库名称 character set 'UTF8MB4'

a37d63436eb70f41622dc85597a33523.png

一个语句必须以;结尾才算结束,要不然就只是换行不会执行。一般我们创建数据库的时候都会顺便设置编码集,现在用UTF8MB4是现在比较常用的,相当于Java中的UTF-8。数据库就相当于文件夹,数据库中的表就相当于excel文件,我们平时使用得是表文件。数据库相当于存放表文件的文件夹。

3、显示所有数据库

show databases

feeea2bcaf9f4727618d2c107533cc39.png

我有这么多,但是假如你刚装的MySQL的话。可能没这么多。

4、修改数据库的编码集

    alter database 数据库名称 character set 'utf8mb4';
    alter database woniuxy character set 'utf8mb4';

d778b6dca3d2f3f15db166a13529790d.png

这里用大小写都是一样的效果,所以才说尽量用小写,不过你的SQL关键字可以用大写用来和其他变量进行区分。

5、删除数据库

    drop database 数据库的名称;
    drop database j75;

d3ef00231a792a0788a4a8202a41642a.png

删除数据库会把这个数据库中所有的表都删除了,这个操作非常危险,一般说的删库跑路就是这个意思。

6、操作表的时候要先选择数据库

    use 数据库的库名;
    use woniuxy;

bc0a0aa051fa0091640009e06d776daa.png

先切换到该数据库中再进行表文件的操作。

7、创建数据库的表

    create table 表的表名 (字段列表); //字段列表:字段名 数据类型 字段约束

    create table goods_info (
    id bigint primary key auto_increment,
    goods_name varchar(60) not null,
    goods_type int not null,
    goods_price decimal(10,2) unsigned not null,
    goods_desc varchar(200) null
    );

85da009d6a12f512b6c7e53ad65ba608.png

看不懂其中的端倪?别担心,后面会一一讲的。

8、表中添加1列

    alter table 表的表名 add column 新的字段名 数据类型 [字段约束];
    alter table goods_info add column made_day date comment '生产日期';

9942414abc8f9e4e03322a8ad63a3579.png

9、删除一列

    alter table 表的表名 drop 列的列名;
    alter table goods_info drop made_day;

dc1989cc96ccc24d13305b6307c60b20.png

当你语法输错了就会出现上面的提示,下面的那个写对了就会提示OK

10、删除表

    drop table 表的表名;
    drop table goods_info;

e9a1239e4ef310784da936700260705a.png

这是删除整个表,删除操作一定要谨慎!

五、数据库字段

1、字段约束:对字段的值做出某些要求。这里的字段约束就是上面建表时的字段约束。当你进行约束之后,假如添加的数据不符合字段约束就会报错。

主键约束:每个表中都需要有一列是唯一的,好比:你们的书,每一页都有一个唯一的页码。通常该列固定为:id列 用:Primary Key

非空约束:表示某一列的值,不能为NULL 用:NULL NOT NULL

唯一约束:表示某一列的值,不能重复 例如:登陆名 UNIQUE KEY

自增约束:表示某一列的值,需要自动增长,但是只能放在数值列上 AUTO_INCREMENT

外键约束:表示某一列的值,可能是其他表的主键 用:foreign key

非负约束:表示某一列的值,不能是负数 用:unsigned

默认约束:表示某一列的值,可以有默认值 用default

字段约束:[NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [UNIQUE [KEY]] [PRIMARY KEY]

[FOREIGN KEY] [UNSIGNED] [COMMENT ‘注释的内容’]

2、主键的要求:表中至少应该有1个主键,原因是我们要保证 实体的完整性

主键的特点:不具备任何的业务含义,主键的内容一定不能改变(稳定性),主键不是越多越好,有1-2就好 当然一般来讲都是只有1个.

例如:

身份证能不作为主键?电话号码能不作为主键? 不能

3、实体的完整性

讲的是我们存入到数据库中的 每个Java实体都是完整,而且不重复的个体;就是我们得保证每一行总有一些东西是不一样。这样我们后面寻找数据的时候才能找得到。

保证实体完整性的办法:加主键k,在某些字段添加 唯一约束

4、列的完整性

将的是如何保证每一列都是具有一定的含义的,是完整,不是NULL的。就是保证每一列都有数据。

保证列完整性的办法:给列加非NULL约束,给列添加默认约束 比如:密码 默认值 123456

5、数据库三大范式(这里的文字有一些抽象,我引用了这位大佬的解释)

数据库设计三大范式 - Ruthless - 博客园​www.cnblogs.com
57195ebf7453bb65e2dab7af7c1ca4a9.png

第一条:列具有原子性 列一定要划分到不可划分(最小)为止

eg:收货地址(address) 四川省成都市高新区孵化园9999号楼99999楼99999号

在设计数据库的时候,我们不能笼统地设置收货地址,而是应该分为省 市 区 街道 详细地址。

第二条:表中所有列,都必须与主键有一定的关系 (建立在:遵循第一范式的基础上)

主键:代表的实体

第三条:表中所有列,都必须与主键有直接相关(而不是间接相关) (建立在:遵循第一,二范式的基础上)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值